1. 程式人生 > 其它 >迴歸指標 - MSE均方誤差、RMSE均方根誤差、MAE平均絕對誤差、R2判別係數

迴歸指標 - MSE均方誤差、RMSE均方根誤差、MAE平均絕對誤差、R2判別係數

1.MSE - 均方誤差

\[MSE = \displaystyle\frac{1}{m}\sum_{i=1}^{m}(y_i - \hat{y_i})^2 \]

MSE是用 真實值 - 預測值 然後平方後求和平均,常用線性迴歸的損失函式

線上性迴歸時我們希望損失函式最小,從而判斷測試集的損失值有多少。

# 數學公式計算
MSE = np.sum((y_pred-y_test)**2)/len(y_test)
# scikit-learn對應的指標
from sklearn.metrics import mean_squared_error
from sklearn.linear_model import LinearRegression
reg = LinearRegression().fit(X_train,y_train)
y_pred = reg.predict(X_test)
# 呼叫mean_squared_error
MSE = mean_squared_error(y_test,y_pred)

2.RMSE - 均方根誤差

\[MSE = \sqrt{\displaystyle\frac{1}{m}\sum_{i=1}^{m}(y_i - \hat{y_i})^2} \]

RMSE在MSE基礎上開根號,更好的描述真實值和預測值的資料

常用於衡量模型預測結果的標準

# 接著上面的例子MSE開根號計算得到RMSE
RMSE = MSE ** 0.5

3.MAE - 平均絕對誤差

\[MAE = \displaystyle\frac{1}{m}\sum_{i=1}^{m}|(y_i - \hat{y_i})| \]

平均誤差的絕對值

常用來反映預測值誤差的實際情況(風險度)

# 數學公式計算	
MAE = np.sum(np.absolute(y_pred-y_test))/len(y_test)
# scikit-learn對應的指標 
from sklearn.metrics import mean_absolute_error
# 呼叫mean_absolute_error
MAE = mean_absolute_error(y_test, y_pred)

4.R2 - 判別係數

\[R^2 = 1 - \frac{SS_{residual}}{SS_{total}}=\frac{\sum_{i}(y_i - f_i)^2}{\sum_{i}(y_i - \bar{y})^2},其中\bar{y}是觀資料的平均值:\bar{y} = \frac{1}{n}\sum_{i=1}^{n}y_i \]

其中f是擬合(或建模)值,y是真實值,SSR(Sum of squares of the regression)是殘差平方和,由預測資料與標籤均值之間差值的平方和構,SST(Total sum of squares)是實際值和均值之間的差值的平方和

判定係數R2測量了迴歸直線對預測資料擬合的程度,即:

1 - 模型沒有捕獲到的資訊量佔真實標籤重所帶的資訊量的比例,所以,兩者越接近1越好

調整R2考慮新增更多預測變數(特徵)來改善模型

# 3種呼叫方式
# 方式1:從sklearn.metrics匯入r2_score
from sklearn.metrics import r2_score
# 呼叫r2_score
r2 = r2_score(y_test, y_pred)
# 方式2:使用線性迴歸LinearRegression的score方法
reg = LinearRegression().fit(X_train,y_train)
# 呼叫score
r2 = reg.score(X_test,y_test)
# 方式3:從sklearn.metrics匯入r2_score
from sklearn.metrics import explained_variance_score
r2 = explained_variance_score(y_test, y_pred)

5.在哪裡使用哪個指標來確定機器學習模型的效能?

  • MAE:通常用於在連續變數資料上測量效能。它對異常值不是很敏感,因為它不會懲罰錯誤。

  • MSE:最常用的指標之一,當資料集包含大量噪聲時,它最沒用。但當資料集包含異常值(太高或太低)時,它最有用。

  • RMSE:在RMSE中,誤差在平均之前先平方,這意味著RMSE為更大的錯誤分配更高的權重。這表明當存在大錯誤並且它們會極大地影響模型的效能時,RMSE更有用。RMSE比MSE更廣泛用於評估迴歸模型於其他隨機模型的效能,因為它的因變數(Y軸)具有相同的單位。

  • R2: R2評估效能最容易讓人一目瞭然地瞭解你的模型的效能。

總體來說,MAE、MSE 和 RMSE 的值越低,意味著迴歸模型的準確度越高。然而,R 平方值越高被認可越高。

相關參考:

迴歸指標

https://www.jianshu.com/p/9ee85fdad150

https://www.cnblogs.com/nxf-rabbit75/p/10415812.html

https://medium.com/analytics-vidhya/mae-mse-rmse-coefficient-of-determination-adjusted-r-squared-which-metric-is-better-cd0326a5697e

https://www.studytonight.com/post/what-is-mean-squared-error-mean-absolute-error-root-mean-squared-error-and-r-squared

https://towardsdatascience.com/which-evaluation-metric-should-you-use-in-machine-learning-regression-problems-20cdaef258e

https://en.wikipedia.org/wiki/Coefficient_of_determination