機器學習|線性迴歸三大評價指標實現『MAE, MSE, MAPE』(Python語言描述)

對於迴歸預測結果,通常會有平均絕對誤差、平均絕對百分比誤差、均方誤差等多個指標進行評價。這裏,我們先介紹最常用的3個:

平均絕對誤差(MAE)
就是絕對誤差的平均值,它的計算公式如下:
MAE(y,y^)=1n(i=1nyy^) MAE(y,\hat{y}) = \frac{1}{n}(\sum_{i = 1}^{n}\left | y - \hat{y} \right |)
其中,yiy_{i} 表示真實值,y^i\hat y_{i} 表示預測值,nn 則表示值的個數。MAE 的值越小,說明預測模型擁有更好的精確度。我們可以嘗試使用 Python 實現 MAE 計算函數:

import numpy as np

def mae_value(y_true, y_pred):
    """
    參數:
    y_true -- 測試集目標真實值
    y_pred -- 測試集目標預測值
    
    返回:
    mae -- MAE 評價指標
    """
    
    n = len(y_true)
    mae = sum(np.abs(y_true - y_pred))/n
    return mae

均方誤差(MSE)
它表示誤差的平方的期望值,它的計算公式如下:
MSE(y,y^)=1ni=1n(yiy^)2 {MSE}(y, \hat{y} ) = \frac{1}{n} \sum_{i=1}^{n} (y_i - \hat{y})^{2}

其中,yiy_{i} 表示真實值,y^i\hat y_{i} 表示預測值,nn 則表示值的個數。MSE 的值越小,說明預測模型擁有更好的精確度。同樣,我們可以嘗試使用 Python 實現 MSE 計算函數:

import numpy as np

def mse_value(y_true, y_pred):
    """
    參數:
    y_true -- 測試集目標真實值
    y_pred -- 測試集目標預測值
    
    返回:
    mse -- MSE 評價指標
    """
    
    n = len(y_true)
    mse = sum(np.square(y_true - y_pred))/n
    return mse

平均絕對百分比誤差 MAPEMAPE

MAPEMAPEMADMAD 的變形,它是一個百分比值,因此比其他統計量更容易理解。例如,如果 MAPEMAPE55,則表示預測結果較真實結果平均偏離 55%MAPEMAPE 的計算公式如下:
MAPE(y,y^)=i=1nyiy^iyin×100 {MAPE}(y, \hat{y} ) = \frac{\sum_{i=1}^{n}{|\frac{y_{i}-\hat y_{i}}{y_{i}}|}}{n} \times 100

其中,yiy_{i} 表示真實值,y^i\hat y_{i} 表示預測值,nn 則表示值的個數。MAPEMAPE 的值越小,說明預測模型擁有更好的精確度。使用 Python 實現 MSE 計算函數:

import numpy as np

def mape(y_true, y_pred):
    """
    參數:
    y_true -- 測試集目標真實值
    y_pred -- 測試集目標預測值
    
    返回:
    mape -- MAPE 評價指標
    """
    
    n = len(y_true)
    mape = sum(np.abs((y_true - y_pred)/y_true))/n*100
    return mape

參考

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章