分類問題的評價指標是准確率,那么回歸算法的評價指標就是MSE,RMSE,MAE、R-Squared。
MSE和MAE適用於誤差相對明顯的時候,大的誤差也有比較高的權重,RMSE則是針對誤差不是很明顯的時候;MAE是一個線性的指標,所有個體差異在平均值上均等加權,所以它更加凸顯出異常值,相比MSE;
RMSLE: 主要針對數據集中有一個特別大的異常值,這種情況下,data會被skew,RMSE會被明顯拉大,這時候就需要先對數據log下,再求RMSE,這個過程就是RMSLE。對低估值(under-predicted)的判罰明顯多於估值過高(over-predicted)的情況(RMSE則相反)
1、MSE(Mean Squared Error)均方誤差
用 真實值-預測值 然后平方之后求和平均。線性回歸用MSE作為損失函數
y_preditc=reg.predict(x_test) #reg是訓練好的模型 mse_test=np.sum((y_preditc-y_test)**2)/len(y_test) #跟數學公式一樣的
2、RMSE(Root Mean Squared Error)均方根誤差
這不就是MSE開個根號么。有意義么?其實實質是一樣的。只不過用於數據更好的描述。
例如:要做房價預測,每平方是萬元(真貴),我們預測結果也是萬元。那么差值的平方單位應該是 千萬級別的。那我們不太好描述自己做的模型效果。怎么說呢?我們的模型誤差是 多少千萬?。。。。。。於是干脆就開個根號就好了。我們誤差的結果就跟我們數據是一個級別的,在描述模型的時候就說,我們模型的誤差是多少萬元。
rmse_test=mse_test ** 0.5
3、MAE (Mean absolute Error)平均絕對誤差
mae_test=np.sum(np.absolute(y_preditc-y_test))/len(y_test)
4、R-Squared
對於回歸類算法而言,只探索數據預測是否准確是不足夠的。除了數據本身的數值大小之外,我們還希望我們的模型能夠捕捉到數據的”規律“,比如數據的分布規律,單調性等等,而是否捕獲了這些信息並無法使用MSE來衡量。
來看這張圖,其中紅色線是我們的真實標簽,而藍色線是我們的擬合模型。這是一種比較極端,但的確可能發生的 情況。這張圖像上,前半部分的擬合非常成功,看上去我們的真實標簽和我們的預測結果幾乎重合,但后半部分的 擬合卻非常糟糕,模型向着與真實標簽完全相反的方向去了。對於這樣的一個擬合模型,如果我們使用MSE來對它 進行判斷,它的MSE會很小,因為大部分樣本其實都被完美擬合了,少數樣本的真實值和預測值的巨大差異在被均 分到每個樣本上之后,MSE就會很小。但這樣的擬合結果必然不是一個好結果,因為一旦我的新樣本是處於擬合曲 線的后半段的,我的預測結果必然會有巨大的偏差,而這不是我們希望看到的。所以,我們希望找到新的指標,除 了判斷預測的數值是否正確之外,還能夠判斷我們的模型是否擬合了足夠多的,數值之外的信息。
方差的本質是任意一個值和樣本均值的差異,差異越大,這些值所帶的信息越多。在R2和EVS中,分子是真實值和預測值之差的差值,也就是我們的模型沒有捕獲到的信息總量,分母是真實標簽所帶的信息量,所以兩者都衡量 1 - 我們的模型沒有捕獲到的信息量占真實標簽中所帶的信息量的比例,所以,兩者都是越接近1越好
化簡上面的公式 ,分子分母同時除以m,那么分子就變成了我們的均方誤差MSE,下面分母就變成了方差
在R2中,分子是真實值和預測值之差的差值,也就是我們的模型沒有捕獲到的信息總量,分母是真實標簽所帶的信息量,所以兩者都衡量 1 - 我們的模型沒有捕獲到的信息量占真實標簽中所帶的信息量的比例,所以,兩者都是越接近1越好。
如果結果是 0,說明模型擬合效果很差;
如果結果是 1,說明模型無錯誤
三種調用方式:
- 第一種是直接從metrics中導入r2_score,輸入預測值和真實值后打分。
- 第二種是直接從線性回歸LinearRegression的接口score來進行調用。
- 第三種是在交叉驗證中,輸入"r2"來調用。EVS有兩 種調用方法,可以從metrics中導入,也可以在交叉驗證中輸入”explained_variance“來調用。
5.RMSLE(Root Mean Squared Logarithmic Error)
假如真實值為1000,若果預測值是600,那么RMSE=400, RMSLE=0.510
假如真實值為1000,若預測結果為1400, 那么RMSE=400, RMSLE=0.336
可以看出來在均方根誤差相同的情況下,預測值比真實值小這種情況的錯誤比較大,即對於預測值小這種情況懲罰較大。
當數據當中有少量的值和真實值差值較大的時候,使用log函數能夠減少這些值對於整體誤差的影響。
假設下圖:圖的最低點是真實值:3,從圖來看,越偏離真實值,誤差越大。但偏左邊和偏右邊誤差增長幅度不一樣,所以對於skew數據有效。
Scikit-learn中的各種衡量指標
from sklearn.metrics import mean_squared_error #均方誤差 from sklearn.metrics import mean_absolute_error #平方絕對誤差 from sklearn.metrics import r2_score#R square #調用 mean_squared_error(y_test,y_predict) mean_absolute_error(y_test,y_predict) r2_score(y_test,y_predict)
參考文獻:
【1】回歸評價指標MSE、RMSE、MAE、R-Squared
【2】回歸模型的幾個評價指標