评估回归模型
您发布的链接包含我建议的许多技术,但另外绘制学习曲线会有所帮助。这不仅可以帮助您查看绝对性能,还可以帮助您了解您离最佳性能还有多远。
学习曲线:如果您绘制交叉验证 (cv) 错误和训练集错误率与训练集大小的关系,您可以学到很多东西。如果两条曲线以低错误率相互接近,那么你做得很好。
如果看起来曲线开始相互接近并且都朝向/保持低位,那么您需要更多数据。
如果 cv 曲线仍然很高,但训练集曲线仍然很低,那么您的情况是高方差的。您可以获取更多数据,也可以使用正则化来提高泛化能力。
如果 cv 保持在高位并且训练集曲线达到它,那么你就有高偏差。在这种情况下,您想为模型添加细节。
有多种方法可以在估计中定义模型的性能标准。大多数人使用模型对数据的拟合程度。因此,在回归的情况下,它将是“模型解释了多少方差”。但是,当您执行变量选择(例如通过 LASSO)时,您需要小心此类回归,您需要控制模型中包含的参数数量。可以使用解释方差的交叉验证版本,这可能会给出无偏估计模型的性能。
首先,我认为您应该使用术语“回归”或“预测”而不是“估计” - 后者是指模型参数的统计推断(假设某种参数形式),而您似乎更关心预测因变量的幂。现在,根据我的咨询经验,最常用的模型性能度量——除了你提到的最简单的“距离指标”——是实际平均绝对/平方误差和系数。当然,您可以使用一些自定义损失函数,具体取决于特定的研究/业务环境。
参考scikit-learn 文档(基于 Python 的机器学习包),r2_score 和 explain_variance_score 是流行的选择。与诸如 mean_squared_error 或 mean_absolute_error 之类的距离度量不同,这些指标表明预测的好坏(接近 1 => 更好的预测)。[顺便说一句,如果使用距离测量,我会推荐 RMSE(均方根误差)而不是 MSE(均方误差),以便可以将幅度与预测进行比较]
或者,您也可以使用 Pearson 相关系数(对于线性模型)或更好地使用 Spearman 等级相关系数(因为这不假设线性模型并且对异常值不太敏感)来计算回归预测值和真实目标变量值之间的相关系数)。
John Yetter的回复中建议的学习曲线也是一个好方法,但上述指标可能更容易评估性能。