前言:
分类问题的评价指标是准确率,而回归问题的评价指标就是MAE, MAPE, MSE, RMSE, R2_Score,SMAPE这几种误差。
当然回归问题就是预测。现在假设:
在此基础上,先看看这几种误差具体的公式,想看scikit-learn实现,直接最后。
目录
1、MSE 均方误差(Mean Square Error)2、RMSE 均方根误差(Root Mean Square Error)3、MAE 平均绝对误差(Mean Absolute Error)4、MAPE 平均绝对百分比误差(Mean Absolute Percentage Error)5、R_Squared6、SMAPE 对称平均绝对百分比误差(Symmetric Mean Absolute Percentage Error)7、scikit-learn中实现:1、MSE 均方误差(Mean Square Error)
2、RMSE 均方根误差(Root Mean Square Error)
就是上面的MSE加了个根号,这样数量级上比较直观,比如RMSE=2,可以认为回归效果相比真实值平均相差2
3、MAE 平均绝对误差(Mean Absolute Error)
4、MAPE 平均绝对百分比误差(Mean Absolute Percentage Error)
5、R_Squared
看看分类算法的衡量标准就是正确率,而正确率又在0~1之间,最高百分之百,最低0。很直观,而且不同模型一样的。那么线性回归有没有这样的衡量标准呢?答案是有的。那就是R_Squared,也就R方。
6、SMAPE 对称平均绝对百分比误差(Symmetric Mean Absolute Percentage Error)
7、scikit-learn中实现:
这些评价指标基本都在 sklearn 包中都封装好了,可直接调用。安装 sklearn, 完整的名字是 scikit-learn。
pip install -U scikit-learn
# MSE, MAE, R2, RMSEimport numpy as npfrom sklearn.metrics import mean_squared_error #MSEfrom sklearn.metrics import mean_absolute_error #MAEfrom sklearn.metrics import r2_score#R 2#调用mean_squared_error(y_test,y_predict)mean_absolute_error(y_test,y_predict)np.sqrt(mean_squared_error(y_test,y_predict)) # RMSE就是对MSE开方即可r2_score(y_test,y_predict)
我试了一下,MAPE 在V0.23.1中还不能直接调用,下面是自己写的。
# MAPE和SMAPEdef mape(y_true, y_pred):return np.mean(np.abs((y_pred - y_true) / y_true)) * 100def smape(y_true, y_pred):return 2.0 * np.mean(np.abs(y_pred - y_true) / (np.abs(y_pred) + np.abs(y_true))) * 100# 调用mape(y_true, y_pred)smape(y_true, y_pred)
参考文献:
1: /qq_41870157/article/details/104699118.
2: /p/382eba2629fe.
3: /p/9ee85fdad150.
如果觉得《scikit-learn实现回归问题的评估指标:MSE MAE MAPE RMSE R-Squared SMAPE》对你有帮助,请点赞、收藏,并留下你的观点哦!