如何解释机器学习模型的损失和准确率

当我使用 Theano 或 Tensorflow 训练我的神经网络时,它们会在每个周期报告一个名为“损失”的变量。

我应该如何解释这个变量?较高的损失是好还是坏,或者它对我的神经网络的最终表现(准确率)意味着什么?


回答:

损失值越低,模型越好(除非模型对训练数据过拟合)。损失是在训练验证集上计算的,其解释是模型在这两个集合上的表现如何。与准确率不同,损失不是百分比。它是训练或验证集中每个样本错误的总和。

在神经网络的情况下,损失通常是分类和回归的负对数似然残差平方和。然后,自然地,学习模型的主要目标是通过改变权重向量值来减少(最小化)损失函数相对于模型参数的值,通过不同的优化方法,如神经网络中的反向传播。

损失值暗示了某个模型在每次优化迭代后的表现好坏。理想情况下,人们希望损失在每次或几次迭代后减少。

模型的准确率通常是在模型参数学习并固定后确定的,且没有进行学习。然后将测试样本输入模型,并记录模型所犯的错误数量(零一损失),在与真实目标进行比较后计算出误分类的百分比。

例如,如果测试样本数量为1000,模型正确分类了其中的952个,那么模型的准确率为95.2%。

enter image description here

在减少损失值时也有一些微妙之处。例如,你可能会遇到过拟合的问题,在这种情况下,模型“记住”了训练样本,对测试集变得不太有效。过拟合也发生在你没有使用正则化、模型非常复杂(自由参数W的数量很大)或数据点N的数量非常低的情况下。

Related Posts

使用LSTM在Python中预测未来值

这段代码可以预测指定股票的当前日期之前的值,但不能预测…

如何在gensim的word2vec模型中查找双词组的相似性

我有一个word2vec模型,假设我使用的是googl…

dask_xgboost.predict 可以工作但无法显示 – 数据必须是一维的

我试图使用 XGBoost 创建模型。 看起来我成功地…

ML Tuning – Cross Validation in Spark

我在https://spark.apache.org/…

如何在React JS中使用fetch从REST API获取预测

我正在开发一个应用程序,其中Flask REST AP…

如何分析ML.NET中多类分类预测得分数组?

我在ML.NET中创建了一个多类分类项目。该项目可以对…

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注