关于模型预测结果好坏的几个评价指标
總第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中有現成的函數可以調用,代碼如下:
from?sklearn?import?metrics mse?=?metrics.mean_squared_error(y_test,?y_pre)RMSE直接對MSE的結果開根號即可,代碼如下:
import?numpy?as?np rmse?=?np.sqrt(mse)MAE的計算在Sklearn中也有現成的函數可以調用,代碼如下:
from?sklearn?import?metrics mae?=?metrics.mean_absolute_error(y_test,?y_pre)MAPE的計算需要我們自己寫代碼來實現,不過也比較簡單,具體代碼如下:
def??mape(y_true,?y_pred):?return?np.mean(np.abs((y_pred?-?y_true)?/?y_true))?*?100 mape?=?mape(y_true,?y_pred)以上就是關于模型準確度常用的評價指標以及Python實現代碼。
總結
以上是生活随笔為你收集整理的关于模型预测结果好坏的几个评价指标的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 英雄杀真李逵怎么过(英雄联盟赛事官网)
- 下一篇: 讲讲Print里面还有什么参数可以设置