回归类算法的模型评估一直是一个难点,但回归和分类其实是相似的法则,就是找真是标签和预测值的差异,只不过分类算法中,我们只需要判断是否预测了正确的分类,而在回归算法中,需要从是否预测了正确的数值,和是否拟合了足够的信息两个角度来评判回归效果。

是否预测了正确的数值

1、均方误差(MSE mean squared error)

sklearn.metrics.mean_squared_error()

cross_val_score(scoring='neg_mean_squared_error') - 负均方误差

2、绝对均值误差(MAE mean absolute error)

sklearn.metrics.mean_absolute_error()

cross_val_score(scoring='neg_mean_absulute_error')

是否拟合了足够的信息

除了数值本身的大小之外,我们还希望模型能捕捉到数据的规律,比如数据分布、单调性等,这些是MSE无法衡量的。

R^2=1-RSS/TSS

sklearn.metrics.r2_score()

cross_val_score(scoring="r2")

reg.score() #默认返回r2

总结

虽然MSE和MAE可以评估模型的相对好坏,但这两个指标是无界的,可以无限大,但R2是[0,1]范围内的一个数值,所以对于回归模型的评估指标,R2更常用,越接近1越好。

此外,Sklearn中还有很多评估指标,可以通过 sklearn.metrics.SCORERS.keys() 来查看所有。

本文为 陈华 原创,欢迎转载,但请注明出处:http://www.ichenhua.cn/read/292