总第241篇/张俊红
在人工智能算法大数据时代,会有各种各样的预测模型,那怎么来评判一个预测模型的准确度呢?这一篇就来聊聊常用的一些评价指标。
所谓的预测准确度其实就是预测值和实际值之间的相近程度,预测值和实际值之间越接近,说明预测准确度越高。我们用y_{hat}表示模型的预测值,y表示模型的真实值。
1.MSE
MSE是Mean Square Error的缩写,表示均方误差,具体公式如下:
该公式表示每个预测值与实际值之间距离的平方和,值越大,表示误差越大。
2.RMSE
RMSE表示均方根误差,是对MSE的开根号,有点类似方差与标准差的区别。人们对均方差和方差一样没有直观的理解,不知道均方差=100时到底是准确度高还是低。所以就有了均方根误差,可以将均方根误差和实际值之间去比较,就可以对预测准确度有个直观的理解。
比如实际值基本在10左右,均方根误差是5,那么就可以感受到,预测值差不多会有一半的误差。而如果要是看均方误差25的话,可能就不太好理解。
3.MAE
MAE是Mean Absolute Error的缩写,表示平均绝对误差,公式如下:
平均绝对误差就是把均方误差中对预测值与实际值之间的差值求平方改成了求绝对值。与RMSE有点类似。
4.MAPE
MAPE是Mean Absolute Percentage Error的缩写,表示平均绝对百分比误差,公式如下:
MAPE对预测的准确度表示就更直观了,有点类似于增幅的概念。用预测值与实际值之间的差去与实际值相比,看其中的占比有多大。
5.Python实现
是不是想问,那上面这些指标用Python怎么计算呢?往下看:
MSE的计算在Sklearn中有现成的函数可以调用,代码如下:
fromsklearnimportmetricsmse=metrics.mean_squared_error(y_test,y_pre)
RMSE直接对MSE的结果开根号即可,代码如下:
importnumpyasnprmse=np.sqrt(mse)
MAE的计算在Sklearn中也有现成的函数可以调用,代码如下:
fromsklearnimportmetricsmae=metrics.mean_absolute_error(y_test,y_pre)
MAPE的计算需要我们自己写代码来实现,不过也比较简单,具体代码如下:
defmape(y_true,y_pred):returnnp.mean(np.abs((y_pred-y_true)/y_true))*100mape=mape(y_true,y_pred)
以上就是关于模型准确度常用的评价指标以及Python实现代码。
如果觉得《关于模型预测结果好坏的几个评价指标》对你有帮助,请点赞、收藏,并留下你的观点哦!