迴歸指標 - MSE均方誤差、RMSE均方根誤差、MAE平均絕對誤差、R2判別係數
阿新 • • 發佈:2021-10-20
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