回归模型的评估指标和调用方法

       这里评估指标一般用于对经过训练集训练后的模型来使用的,以各项指标的评估得分来比较模型的性能。因为模型上线后,一般的未知样本的标签是较难得到的。

       这里注意要与参数估计中的公式区分开,虽然有些参数估计的公式用到了诸如MSE的方法,但只是方法相同,用处却不一样。

       回归模型的评估指标有平均绝对值误差均方误差均方根误差R平方值Huber损失Log-Cosh损失函数

平均绝对值误差

也称L1损失(MAE)是预测值与真实值之差的绝对值,计算公式如下:
回归模型的标准差怎么求 回归模型标准差公式_sklearn

以下是sklearn中调用MAE的示例代码:

from sklearn.metrics import mean_absolute_error
mean_absolute_error(y_test,y_pred)
均方误差

也称L2损失(MSE)是指的参数估计值与参数真实值之差平方的期望值。MSE是衡量平均误差的一种较方便的方法,可以用来评价数据的变化程度。MSE的值越小,说明预测模型描述实验数据具有越好的精确度,计算公式如下:
回归模型的标准差怎么求 回归模型标准差公式_回归模型的标准差怎么求_02

以下是sklearn中调用MAE的示例代码:

from sklearn.metrics import mean_squared_error
mean_squared_error(y_test,y_pred)

但存在一些问题,假设误差回归模型的标准差怎么求 回归模型标准差公式_模型评估_03的单位是万,则MSE的单位就万的平方。会带来量纲上的影响。因此采用下面的均方根误差。

均方根误差(RMSE)是MSE的平方根,计算公式如下:

回归模型的标准差怎么求 回归模型标准差公式_机器学习_04

       以下是sklearn中调用RMSE的示例代码:

from sklearn.metrics import mean_squared_error
Pred_Error = mean_squared_error(y_test,y_pred)
Sqrt(Pred_Error)

上述的三个评价指标均方误差、

均方对数差损失(Mean Squared Log Error,MSLE)

回归模型的标准差怎么求 回归模型标准差公式_sklearn_05

R平方值(R-Squared)

反映了回归模型在多大程度上解释了因变量的变化,或者说模型对观测值的拟合程度如何。计算公式如下:
回归模型的标准差怎么求 回归模型标准差公式_模型评估_06

式中分子回归模型的标准差怎么求 回归模型标准差公式_回归模型的标准差怎么求_07表示模型预测产生的错误。分母回归模型的标准差怎么求 回归模型标准差公式_模型评估_08就是将回归模型的标准差怎么求 回归模型标准差公式_模型评估_09替换为回归模型的标准差怎么求 回归模型标准差公式_回归模型的标准差怎么求_10。表示使用模型回归模型的标准差怎么求 回归模型标准差公式_回归模型的标准差怎么求_11预测产生的错误。可以将模型回归模型的标准差怎么求 回归模型标准差公式_回归模型的标准差怎么求_11称为Baseline Model称为最基本的模型(类似于瞎猜吧,用均值做预测值,和样本特征无关)

R平方值是评价回归算法性能较好的评价方式。

以下是sklearn中调用R平方值的示例代码:

from sklearn.metrics import r2_score
r2_score(y_test,y_pred)
Adjusted R-Square(校正决定系数)
Huber损失(Huber loss)

回归模型的标准差怎么求 回归模型标准差公式_回归模型的标准差怎么求_13

Log-Cosh损失函数(Log-Cosh loss)

回归模型的标准差怎么求 回归模型标准差公式_模型评估_14

回归模型的标准差怎么求 回归模型标准差公式_sklearn_15趋于0时退化成了L1损失,当回归模型的标准差怎么求 回归模型标准差公式_sklearn_15趋于无穷时则退化为L2损失。回归模型的标准差怎么求 回归模型标准差公式_sklearn_15决定了模型处理局外点的行为,当残差大于回归模型的标准差怎么求 回归模型标准差公式_sklearn_15时使用L1损失,很小时则使用更为合适的L2损失来进行优化。Huber损失函数克服了L1损失和L2损失的缺点,不仅可以保持损失函数具有连续的导数,同时可以利用L2损失梯度随误差减小的特性来得到更精确的最小值,也对局外点具有更好的鲁棒性。但Huber损失函数的良好表现得益于精心训练的超参数回归模型的标准差怎么求 回归模型标准差公式_sklearn_15。Log-Cosh损失拥有Huber损失的所有优点,并且在每一个点都是二次可导的,这在很多机器学习模型中是十分必要的。

更多的回归指标请参照sklearn回归指标

分类模型的评估指标和调用方法

错误率与精度:

错误率表示分类错误的样本数占样本总数的比例,精度表示分类正确的样本数占样本总数的比例。

查准率、查全率

查准率(precision)、查全率(recall,召回率)与F1:在推荐系统、信息检索、Web搜索中需求较大。

对于二分类问题,可以通过样本预测类别和真实类别组合为下列的分类结构混淆矩阵(confusion matrix)

回归模型的标准差怎么求 回归模型标准差公式_机器学习_20

其中查准率回归模型的标准差怎么求 回归模型标准差公式_模型评估_21与查全率回归模型的标准差怎么求 回归模型标准差公式_模型评估_22分别定义为:
回归模型的标准差怎么求 回归模型标准差公式_模型评估_23
查准率回归模型的标准差怎么求 回归模型标准差公式_模型评估_21与查全率回归模型的标准差怎么求 回归模型标准差公式_模型评估_22为一对矛盾的度量,一般情况下,查准率较高时,查全率较低。我们可以将查准率理解为“不可冤枉一个好人”,查全率理解为“宁可错杀一千,不可放过一人”

P-R曲线

在很多情况下,可以根据分类器的预测结果对样本进行排序,排在最前面的是学习器认为“最可能”是正例的样本,排在最后的则是认为“最不可能”的样本。按此顺序逐个对样本作为正例进行预测,则每次可以计算出当前的查准率、查全率。进而得到下面的P-R曲线

对于线性模型来说,可以设置一个阈值,当模型输出大于阈值时,判定为正例。然后不断提高模型阈值,每次阈值都会对应一个Precision和Recall。这样就可以画出P-R曲线

回归模型的标准差怎么求 回归模型标准差公式_sklearn_26

当需要对比两个学习器的性能时

  • 若一个学习器的P-R曲线被另一个学习器的曲线完全“包住”,则可断言后者的性能优于前者
  • 当曲线发生交叉
  • 比较曲线下面积大小—但不太容易计算
  • 比较平衡点(Break-Even Point,BEP):当查准率=查全率的取值,但过于简化
  • 常用的F1度量
    回归模型的标准差怎么求 回归模型标准差公式_模型评估_27

当P=R时,F1达到最大值。最大值为1,最小值为0.

例如,在商品推荐系统中,为了尽可能少打扰用户,更希望推荐内容确实是用户感兴趣的,此时查准率更重要;在逃犯信息检索系统中,更希望尽可能少漏掉逃犯,此时查全率更重要。

回归模型的标准差怎么求 回归模型标准差公式_机器学习_28的一般形式——回归模型的标准差怎么求 回归模型标准差公式_模型评估_29
回归模型的标准差怎么求 回归模型标准差公式_sklearn_30
以下情形中,进行多次训练/测试,每次得到一个混淆矩阵;或是在多个数据集上进行训练/测试,希望估计算法的“全局”性能;或是执行多分类任务。我们得到多个二分类混淆矩阵,希望可以综合考察查准率和查全率。

  • 现在各混淆矩阵上分别计算出查准率和查全率,记为回归模型的标准差怎么求 回归模型标准差公式_回归模型的标准差怎么求_31,再计算平均值,这样就得到**“宏查准率”(macro-P)“宏查全率”(macro-R),以及“宏F1”(macro-F1)**。

回归模型的标准差怎么求 回归模型标准差公式_sklearn_32

  • 或者先计对混淆矩阵各元素进行平均,得到回归模型的标准差怎么求 回归模型标准差公式_模型评估_33,再基于平均值计算出**“宏查准率”(macro-P)“宏查全率”(macro-R),以及“宏F1”(macro-F1)**。
    回归模型的标准差怎么求 回归模型标准差公式_sklearn_34
ROC与AUC

真正例率:真实正例被预测为正例的比例回归模型的标准差怎么求 回归模型标准差公式_机器学习_35

假正例率:真实反例被预测为正例的比例 回归模型的标准差怎么求 回归模型标准差公式_模型评估_36

sklearn调用方式:

Logistic损失(Logistic loss)

回归模型的标准差怎么求 回归模型标准差公式_机器学习_37

负对数似然损失(Negative Log Likelihood loss)
交叉熵损失(Cross Entropy loss)

       Logistic损失用于解决每个类别的二分类问题,为了方便数据集把最大似然转化为负对数似然,而得到负对数似然损失,交叉熵损失从两个类别扩展到M个类别,交叉熵损失在二分类时应当是负对数似然损失。
更多的分类指标请参照[sklearn分类指标](

参考资料

R-squared or coefficient of determination