預測問題評價指標:MAE、MSE、R-Square、MAPE和RMSE

MAE、MSE、R-Square、MAPE和RMSE

以上是對於預測問題的評價指標。

1.平均絕對誤差(Mean Absolute Error, MAE)

在這裏插入圖片描述
誤差越大,該值越大。

2.均方誤差(Mean Squared Error, MSE)

在這裏插入圖片描述
誤差越大,該值越大。

SSE(和方差)與MSE之間差一個係數n,即SSE = n * MSE,二者效果相同。

3.均方根誤差(Root Mean Square Error, RMSE)

是MSE的算數平均根
在這裏插入圖片描述
誤差越大,該值越大。

4.平均絕對百分比誤差(Mean Absolute Percentage Error, MAPE)

在這裏插入圖片描述
注意:當真實值有數據等於0時,存在分母0除問題,該公式不可用。

5.確定係數(R-Square or R2)

首先,殘差平方和爲:
在這裏插入圖片描述
總平均值爲:
在這裏插入圖片描述
得到R2表達式爲:
在這裏插入圖片描述
R2用於度量因變量的變異中可由自變量解釋部分所佔的比例,取值範圍是 0~1,R2越接近1,表明迴歸平方和佔總平方和的比例越大,迴歸線與各觀測點越接近,用x的變化來解釋y值變化的部分就越多,迴歸的擬合程度就越好。
所以R2也稱爲擬合優度(Goodness of Fit)的統計量。

yi表示真實值,y^i表示預測值,y¯i表示樣本均值。得分越高擬合效果越好。

Python代碼:實現各評價指標

import numpy as np
from sklearn import metrics

# MAPE需要自己實現
def mape(y_true, y_pred):
    return np.mean(np.abs((y_pred - y_true) / y_true))

y_true = np.array([1.0, 5.0, 4.0, 3.0, 2.0, 5.0, -3.0])
y_pred = np.array([1.0, 4.5, 3.8, 3.2, 3.0, 4.8, -2.2])

# MSE
print('MSE:',metrics.mean_squared_error(y_true, y_pred)) # 0.2871428571428571
# RMSE
print('RMSE:',np.sqrt(metrics.mean_squared_error(y_true, y_pred))) # 0.5358571238146014
# MAE
print('MAE:',metrics.mean_absolute_error(y_true, y_pred)) # 0.4142857142857143
# MAPE
print('MAPE:',mape(y_true, y_pred)) # 0.1461904761904762
## R2-score
from sklearn.metrics import r2_score
y_true = [3, -0.5, 2, 7]
y_pred = [2.5, 0.0, 2, 8]
print('R2-score:',r2_score(y_true, y_pred)) # 0.9486081370449679
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章