1. 程式人生 > >三個評價線性迴歸演算法的標準MSE、RMSE、MAE

三個評價線性迴歸演算法的標準MSE、RMSE、MAE

            在分類演算法中,我們首先將資料集分成訓練資料集和測試資料集,用訓練資料集去訓練我們的分類模型,用測試資料集的輸入特徵去預測,將預測的結果與測試資料集的真實結果對比,得出模型的準確率。

對於線性迴歸演算法:

 

上面的衡量標準是與樣本數m有關的

對於均方誤差(MSE)來說還有一個量綱上的問題,改進後會得到均方根誤差(RMSE)

   

 

以上就是三個評價線性迴歸演算法的標準

mean_squared_error是均方誤差(MSE)

mean_absolute_error是絕對值誤差(MAE)

   R平方模型衡量的是我們訓練出的模型對比y等於y的均值這個基準模型的效果是怎麼樣

    

使用sklearn提供的包

 

三個評價線性迴歸標準的程式碼實現

import numpy as np
from math import sqrt


def accuracy_score(y_true, y_predict):
    """計算y_true和y_predict之間的準確率"""
    assert len(y_true) == len(y_predict), \
        "the size of y_true must be equal to the size of y_predict"

    return np.sum(y_true == y_predict) / len(y_true)


def mean_squared_error(y_true, y_predict):
    """計算y_true和y_predict之間的MSE"""
    assert len(y_true) == len(y_predict), \
        "the size of y_true must be equal to the size of y_predict"

    return np.sum((y_true - y_predict)**2) / len(y_true)


def root_mean_squared_error(y_true, y_predict):
    """計算y_true和y_predict之間的RMSE"""

    return sqrt(mean_squared_error(y_true, y_predict))


def mean_absolute_error(y_true, y_predict):
    """計算y_true和y_predict之間的MAE"""
    assert len(y_true) == len(y_predict), \
        "the size of y_true must be equal to the size of y_predict"

    return np.sum(np.absolute(y_true - y_predict)) / len(y_true)


def r2_score(y_true, y_predict):
    """計算y_true和y_predict之間的R Square"""

    return 1 - mean_squared_error(y_true, y_predict)/np.var(y_true)