评估回归模型

机器算法验证 回归 机器学习 估计 模型评估
2022-03-09 13:46:02

对于分类问题,我一直在使用神经网络,并使用混淆矩阵及其根据此资源 ( mirror ) 的度量来测量 I 类和 II 类错误,这非常简单。

当面临估计问题时,如何评估模型性能?假设没有类并且输出以真实形式解释。除了平均距离指标之外,这并不能提供太多洞察力。

4个回答

您发布的链接包含我建议的许多技术,但另外绘制学习曲线会有所帮助。这不仅可以帮助您查看绝对性能,还可以帮助您了解您离最佳性能还有多远。

学习曲线:如果您绘制交叉验证 (cv) 错误和训练集错误率与训练集大小的关系,您可以学到很多东西。如果两条曲线以低错误率相互接近,那么你做得很好。

如果看起来曲线开始相互接近并且都朝向/保持低位,那么您需要更多数据。

如果 cv 曲线仍然很高,但训练集曲线仍然很低,那么您的情况是高方差的。您可以获取更多数据,也可以使用正则化来提高泛化能力。

如果 cv 保持在高位并且训练集曲线达到它,那么你就有高偏差。在这种情况下,您想为模型添加细节。

有多种方法可以在估计中定义模型的性能标准。大多数人使用模型对数据的拟合程度。因此,在回归的情况下,它将是“模型解释了多少方差”。但是,当您执行变量选择(例如通过 LASSO)时,您需要小心此类回归,您需要控制模型中包含的参数数量。可以使用解释方差的交叉验证版本,这可能会给出无偏估计模型的性能。

首先,我认为您应该使用术语“回归”或“预测”而不是“估计” - 后者是指模型参数的统计推断(假设某种参数形式),而您似乎更关心预测因变量的幂。现在,根据我的咨询经验,最常用的模型性能度量——除了你提到的最简单的“距离指标”——是实际平均绝对/平方误差和系数。当然,您可以使用一些自定义损失函数,具体取决于特定的研究/业务环境。R2

参考scikit-learn 文档(基于 Python 的机器学习包),r2_score 和 explain_variance_score 是流行的选择。与诸如 mean_squared_error 或 mean_absolute_error 之类的距离度量不同,这些指标表明预测的好坏(接近 1 => 更好的预测)。[顺便说一句,如果使用距离测量,我会推荐 RMSE(均方根误差)而不是 MSE(均方误差),以便可以将幅度与预测进行比较]

或者,您也可以使用 Pearson 相关系数(对于线性模型)或更好地使用 Spearman 等级相关系数(因为这不假设线性模型并且对异常值不太敏感)来计算回归预测值和真实目标变量值之间的相关系数)。

John Yetter的回复中建议的学习曲线也是一个好方法,但上述指标可能更容易评估性能。