平均絕對誤差(MAE)
平均絕對誤差(Mean Absolute Error, MAE)是衡量模型預測誤差的一種方法,通常用于回歸分析。它表示的是預測值與真實值之間差的絕對值的平均數。計算公式如下:
M A E = 1 N ∑ i = 1 N ∣ y i ? y ^ ∣ MAE=\frac{1}{N}\sum\limits_{i=1}^{N}|y_i-\hat{y}| MAE=N1?i=1∑N?∣yi??y^?∣,
其中 y i y_i yi?表示第 i i i個數據的預測值, y ^ \hat{y} y^?表示第 i i i個數據的真實值。
平均絕對誤差的特點是:
- 它是一個非負數,且MAE值越小,說明預測模型的效果越好。
- MAE 使用的是絕對值,因此它不會因為異常值而受到影響,這一點比均方誤差(Mean Squared Error, MSE)更有優勢。
- MAE的單位與原數據的單位相同,這使得它具有更好的解釋性。
MAE通常用于評估模型在預測連續值時的性能,例如在天氣預報、股票價格預測等領域。
均方誤差(MSE)
均方誤差(Mean Squared Error, MSE)是另一種衡量模型預測誤差的方法,常用于回歸分析。它是預測值與真實值之間差的平方的平均數。計算公式如下:
M S E = 1 N ∑ i = 1 N ( y i ? y ^ ) 2 MSE=\frac{1}{N}\sum\limits_{i=1}^{N}(y_i-\hat{y})^2 MSE=N1?i=1∑N?(yi??y^?)2。
均方誤差的特點是:
- 它是一個非負數,且MSE值越小,說明預測模型的效果越好。
- MSE 使用的是平方,因此它會對較大的誤差給予較大的權重,這意味著大的誤差會對MSE產生較大的影響。
- MSE的單位是原數據單位的平方,這使得它在解釋上不如平均絕對誤差直觀。
- MSE通常用于評估模型在預測連續值時的性能,特別是在關注較大誤差的情況下。與MAE相比,MSE對異常值更為敏感,因此在異常值較多的情況下,使用MSE可能會導致模型性能評估的不準確。
在實際應用中,MSE的一個優點是它在數學上更容易處理,特別是當涉及到梯度下降等優化算法時。此外,MSE是最小二乘法的基礎,這是一種常用的參數估計方法。
R 平方( R 2 R^2 R2)
R平方(R2或R2),也稱為決定系數,是衡量回歸模型擬合優度的一個統計量。它表示因變量的變異中有多少可以被自變量解釋。R平方的值范圍從0到1,或者以百分比形式表示從0%到100%。
R平方的計算通常基于均方誤差(MSE):
R 2 = 1 ? M S E m o d e l M S E n u l l R^2=1-\frac{MSE_{model}}{MSE_{null}} R2=1?MSEnull?MSEmodel??,
其中 M S E m o d e l MSE_{model} MSEmodel?表示模型的均方誤差, M S E n u l l MSE_{null} MSEnull?表示以實際值的均值作為 y ˉ \bar{y} yˉ?來計算的 MSE 值。
R平方的解釋如下:
𝑅^2=0
:表示模型沒有任何解釋能力,因變量的變異不能由自變量解釋。0<𝑅^{2}<1
:表示模型可以解釋因變量的一部分變異,R平方越接近1,模型的解釋能力越強。𝑅^2=1
:表示模型完美地解釋了因變量的所有變異。
雖然R平方是一個常用的統計量,但它也有一些局限性:
- R平方不告訴我們在實踐中模型的表現如何,它只是衡量了模型對數據的擬合程度。
- R平方不說明因果關系,即使R平方很高,也不能斷定自變量導致了因變量的變化。
- R平方對數據中的異常值非常敏感,因為異常值會增加模型的 MSE。
- R平方隨著自變量的增加而增加,即使這些自變量對模型沒有實際貢獻,因此可能會產生誤導。
在實際應用中,我們應該謹慎地使用R平方,并結合其他統計量和模型診斷工具來全面評估模型的性能。
可以借助sklearn
庫計算這些指標:
from sklearn.metrics import mean_absolute_error
from sklearn.metrics import mean_squared_error
from sklearn.metrics import r2_scoreX_actual = [5, -1, 2, 10]
Y_predict = [3.5, -0.9, 2, 9.9]
print('R Squared =', r2_score(X_actual, Y_predict))
print('MAE =', mean_absolute_error(X_actual, Y_predict))
print('MSE =', mean_squared_error(X_actual, Y_predict))