参考学习:回归算法的评估指标 - 简书 (jianshu.com)
1.平均绝对值误差(mae)
MAE_1 = np.mean(abs(y_test - prediction))
print(MAE_1)
[out]:3.3446655035987476
使用sklearn.metrics模块:
from sklearn.metrics import mean_absolute_error
MAE_2 = mean_absolute_error(y_test,prediction)
print(MAE_2)
[out]:3.3446655035987476
2.均方误差
python方法:
MSE_1 = np.mean((y_test - prediction)**2)
print(MSE_1)
[out]:19.831323672063235
使用sklearn.metrics模块:
from sklearn.metrics import mean_squared_error
MSE_2 = mean_squared_error(y_test,prediction)
print(MSE_2)
[out]:19.831323672063235
3.均方根误差
python方法:
RMSE_1 = np.sqrt(np.mean((y_test - prediction)**2))
print(RMSE_1)
[out]:4.45323743719816
使用sklearn.metrics模块:
sklearn.metrics模块中没有直接计算均方根误差的函数,所以需要先计算均方误差,然后再开根号。
from sklearn.metrics import mean_squared_error
RMSE_2 = np.sqrt(mean_squared_error(y_test,prediction))
print(RMSE_2)
[out]:4.45323743719816
4.可决系数
越接近于1,说明模型的效果越好,越接近于0,说明的模型效果越差,当然也存在负值,此时说明模型的效果非常的差。
python方法:
R_1 = 1 - np.mean((y_test - prediction)**2)/np.mean((y_test - np.mean(y_test)**2))
print(R_1)
[out]:0.7836295385076281
使用sklearn.metrics模块
from sklearn.metrics import r2_score
R_2 = r2_score(y_test,prediction)
print(R_2)
[out]:0.7836295385076281
小结:
1 2 3 可以准确的计算出预测结果和真实的结果的误差大小,但却无法衡量模型的好坏程度。但是这些指标可以指导我们的模型改进工作,如调参,特征选择等。
4 的结果可以很清楚的说明模型的好坏,该值越接近于1,表明模型的效果越好。该值越接近于0,表明模型的效果越差。