sklearn的常见四种评价尺度
在sklearn中包含四种评价尺度,分别为mean_squared_error、mean_absolute_error、explained_variance_score 和 r2_score。
做回归分析,常用的误差主要有均方误差根(RMSE)和R-平方(R2)。
(1)MSE:数理统计中均方误差是指参数估计值与参数真值之差平方的期望值,记为MSE。MSE可以评价数据的变化程度,MSE的值越小,说明预测模型描述实验数据具有更好的精确度。与此相对应的,还有均方根误差RMSE等。
(2)RMSE:预测值与真实值的误差平方根的均值。
(3)R2方法:将预测值跟只使用均值的情况下相比,看能好多少。其区间通常在(0,1)之间。
如何理解R2
R2通俗地理解为使用均值作为误差基准,看预测误差是否大于或者小于均值基准误差。
R2_score = 1,样本中预测值和真实值完全相等,没有任何误差,表示回归分析中自变量对因变量的解释越好。
R2_score = 0。此时分子等于分母,样本的每项预测值都等于均值。
模型越好:r2→1
模型越差:r2→0
0表示还不如不预测,直接取均值的情况,而1表示所有预测跟真实结果完美匹配的情况。
python实现方式:
1、利用Python的误差值实现
from sklearn.metrics import mean_squared_error
1-mean_squared_error(y_test,y_pred)/ np.var(y_test)
2、利用sklearn.metrics.r2_score实现
from sklearn.metrics import r2_score
print("\n决定系数R^2=",r2_score(y_test, y_pred))
注意事项
1、R²一般用在线性模型中(非线性模型也可以用)
2、R²不能完全反映模型预测能力的高低,某个实际观测的自变量取值范围很窄,但此时所建模型的R²很大,但这并不代表模型在外推应用时的效果肯定会很好。
3、数据集的样本越大,R²越大,因此,不同数据集的模型结果比较会有一定的误差,此时可以使用Adjusted R-Square (校正决定系数),能对添加的非显著变量给出惩罚:
4、决定系数一般用在回归模型的评价中;
5、因为分类模型的预测值只有0,1,在分类模型中非 0 即 1,这样利用公式计算时对模型`的评测结果是不合适的。