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 (最小化),越低越好。

Python3——sklearn中回归模型的六种评估规则_第1张图片

假设共有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,模型越差值越小。

 

你可能感兴趣的:(机器学习,Python)