機器學習|線性迴歸三大評價指標實現『MAE, MSE, MAPE』(Python語言描述)
阿新 • • 發佈:2019-01-04
對於迴歸預測結果,通常會有平均絕對誤差、平均絕對百分比誤差、均方誤差等多個指標進行評價。這裡,我們先介紹最常用的3個:
平均絕對誤差(MAE)
就是絕對誤差的平均值,它的計算公式如下:
其中,
表示真實值,
表示預測值,
則表示值的個數。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 的值越小,說明預測模型擁有更好的精確度。同樣,我們可以嘗試使用 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
平均絕對百分比誤差 。
是
的變形,它是一個百分比值,因此比其他統計量更容易理解。例如,如果
為
,則表示預測結果較真實結果平均偏離
。
的計算公式如下:
其中, 表示真實值, 表示預測值, 則表示值的個數。 的值越小,說明預測模型擁有更好的精確度。使用 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
參考: