Python3——sklearn中迴歸模型的六種評估規則

評價迴歸模型的好壞需要計算真實值與預測值之間的誤差關係,sklearn爲我們提供了6種迴歸模型的評估規則,分別是

1.可釋方差分數(explain variance score)

2.平均絕對誤差(mean absolute error)

3.均方誤差(mean squared error)

4.均方對數誤差(mean squared logarithmic error),適用於具有指數增長的趨勢的目標。

5.中值絕對誤差(median absolute error),該函數不支持多輸出。

6.R^{2}決定係數分數(R^{2} score)

通常,函數以 _score 結尾返回一個值來最大化,越高越好。

            函數 _error 或 _loss 結尾返回一個值來 minimize (最小化),越低越好。

假設共有n個樣本,真實值是y_i,預測值是\hat{y_i}

1.可釋方差分數(explain variance score)

explained_variance_score(y_true, y_pred, sample_weight=None, multioutput='uniform_average')

                              其中 multioutput : 有兩個取值,分別是 ['raw_values', 'uniform_average']

                              “raw_values”:在多輸出的情況下返回每個輸出的誤差集合。

                              “uniform_average”:在多輸出的情況下返回所有輸出的誤差均值。

                                                                     EVS = 1-\frac{var(y_i-\hat{y_i})}{var(y_i)}

模型的可釋方差分數值爲1,模型越差值越小。

 

2.平均絕對誤差(mean absolute error)

mean_absolute_error(y_true, y_pred, sample_weight=None, multioutput='uniform_average')

                                                                       MAE = \frac{1}{n}\sum_{i=1}^{n}\left | y_i-\hat{y_i}\right |

平均絕對誤差是非負值,模型越MAE越接近

3.均方誤差(mean squared error)

mean_squared_error(y_true, y_pred, sample_weight=None, multioutput='uniform_average')

注意:區別於均方差(標準差)!!!標準差,也稱均方差,定義爲方差的算術平方根,反映組內個體間的離散程度。

                                                                       MSE = \frac{1}{n}\sum_{i=1}^{n}{(y_i-\hat{y_i})}^{2}

均方誤差是非負值,模型越MSE越接近

4.均方對數誤差(mean squared logarithmic error)

mean_squared_log_error(y_true, y_pred, sample_weight=None, multioutput='uniform_average')

                                                                   MSLE = \frac{1}{n}\sum_{i=1}^{n}{(\log (y_i+1)-\log (\hat{y_i}+1))}^{2}

均方對數誤差是非負值,模型越MSLE越接近

5.中值絕對誤差(median absolute error)

median_absolute_error(y_true, y_pred)

MedAE = median(\left | y_i-\hat{y_i}\right |,...\left | y_n-\hat{y_n}\right |)

中值絕對誤差是非負值,模型越MSE越接近

6.R^{2}決定係數分數(R^{2}(coefficient of determination) score)

r2_score(y_true, y_pred, sample_weight=None, multioutput='uniform_average')

                                                                   R^2 = 1-\frac{\sum _{i=0}^{n}{(y_i-\hat{y_i})^2}}{\sum _{i=0}^{n}{(y_i-\bar{y_i})^2}}

模型的R^{2}決定係數分數值爲1,常數模型值爲0,模型越差值越小。

 

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