我已经使用Keras的LSTM构建了一个模型,该模型可以检测Stack Overflow上的两个问题是否重复。运行模型时,我会在时代中看到类似的东西。
Epoch 23/200
727722/727722 [==============================] - 67s - loss: 0.3167 - acc: 0.8557 - val_loss: 0.3473 - val_acc: 0.8418
Epoch 24/200
727722/727722 [==============================] - 67s - loss: 0.3152 - acc: 0.8573 - val_loss: 0.3497 - val_acc: 0.8404
Epoch 25/200
727722/727722 [==============================] - 67s - loss: 0.3136 - acc: 0.8581 - val_loss: 0.3518 - val_acc: 0.8391
我试图理解每个术语的含义。以上哪个值是我的模型的准确性。我是机器学习的新手,所以任何解释都会有所帮助。
答案 0 :(得分:13)
在训练机器学习模型时,您要避免的主要事情之一就是过拟合。这是您的模型很好地适合训练数据的时候,但是它不能对以前从未见过的数据进行概括和准确预测。
为了找出模型是否过度拟合,数据科学家使用了一种称为交叉验证的技术,该技术将数据分为两部分-训练集和验证集。训练集用于训练模型,而验证集仅用于评估模型的性能。
训练集上的指标可让您查看模型在训练方面的进展情况,而验证集上的指标可让您衡量模型的质量-能否做出新的预测基于之前从未见过的数据。
牢记这一点,损失和acc是训练集上损失和准确性的量度,而val_loss和val_acc是验证集合上损失和准确性的量度。
目前,您的模型在训练集上的准确度约为86%,在验证集上的准确度约为84%。这意味着您可以期望模型在新数据上的准确度达到〜84%。
我注意到,随着您的时代从23到25,您的acc指标会增加,而val_acc指标会减少。这意味着您的模型更适合训练集,但失去了对新数据进行预测的能力,这表明您的模型已开始适应噪声并且开始过拟合。
因此,这是有关验证指标及其解释方式的简要说明。
答案 1 :(得分:0)