术语准确度和验证准确度之间有什么区别

Doo*_*Sea 8 python lstm keras

我使用Keras的LSTM构建了一个模型,可以检测Stack溢出上的两个问题是否重复.当我运行模型时,我在时代看到了类似的东西.

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
Run Code Online (Sandbox Code Playgroud)

我试图理解这些术语的含义.以上哪个值是我的模型的准确性.我对机器学习比较陌生,所以任何解释都会有所帮助.

Pri*_*usa 22

在培训机器学习模型时,您要避免的主要内容之一就是过度拟合.这是当您的模型很好地拟合训练数据时,但它无法概括并对之前从未见过的数据做出准确的预测.

为了确定他们的模型是否过度拟合,数据科学家使用一种称为交叉验证的技术,他们将数据分成两部分 - 训练集和验证集.训练集用于训练模型,而验证集仅用于评估模型的性能.

训练集指标让你看到你的模型是如何在它的培训方面取得进展,但它是在验证集,让你得到你模型的质量的衡量指标 - 如何以及它是能够基于数据做出新的预测它以前没有见过.

考虑到这一点,损失和acc是训练集的损失和准确度的度量,而val_loss和val_acc是验证集上的损失和准确度的度量.

目前,您的模型在训练集上的准确度为~86%,在验证集上的准确度为~84%.这意味着您可以期望您的模型在新数据上的准确率达到约84%.

我注意到,当您的纪元从23到25时,您的acc指标会增加,而您的val_acc指标会降低.这意味着您的模型更适合训练集,但正在失去预测新数据的能力,表明您的模型开始适应噪音并开始过度拟合.

这是对验证指标以及如何解释它们的快速解释.