• 机器学习基础 | 回归模型评估指标


    回归模型中常用的评估指标可以分如下几类:

    • MAE系列,即由Mean Absolute Error衍生得到的指标;
    • MSE系列,即由Mean Squared Error衍生得到的指标;
    • R²系列;
      注:在英语中,error和deviation的含义是一样的,所以Mean Absolute Error也可以叫做Mean Absolute Deviation(MAD),其他指标同理可得;

    MAE系列

    MAE全称Mean Absolute Error(平均绝对误差)。
    更多参考
    设N为样本数量,第(i)个样本的实际值为(y_i),预测值为(y'_i),那么MAE的定义如下

    [MAE = frac{1}{N}sum^N_{i=1}|y_i-y'_i| ]

    由MAE衍生可以得到:

    • Mean Absolute Pencentage Error(MAPE,平均绝对百分比误差),相当于加权版的MAE.

    [MAPE = frac{1}{N}sum^N_{i=1}iggl|frac{y_i-y'_i}{y_i}iggr| ]

    MAPE可以看做是MAE和MPE(Mean Percentage Error)综合而成的指标

    [MPE = frac{1}{N}sum^N_{i=1}frac{y_i-y'_i}{y_i} ]

    从MAPE公式中可以看出有个明显的bug——当实际值(y_i=0)时就会得到无穷大值(实际值(|y_i|<1)时也会过度放大误差)。为了避免这个bug,MAPE一般用于实际值不会为0的情形。

    Sungil Kima & Heeyoung Kim(2016)提出MAAPE(mean arctangent absolute percentage error) 方法,在保持MAPE的算法思想下克服了上面那个bug(更多参考 A new metric of absolute percentage error for intermittent demand forecasts,Sungil Kima & Heeyoung Kim, 2016).

    [MAAPE = frac{1}{N}sum^N_{i=1}arctaniggl(iggl|frac{y_i-y'_i}{y_i}iggr|iggr) ]

    考虑Absolute Error (|y_i-y'_i|)可能存在Outlier的情况,此时Median Abosulte Error(MedAE, 中位数绝对误差)可能是更好的选择。

    [MedAE=underset{i=1,...,N}{median}|y_i-y'_i| ]

    MSE系列

    MSE全称Mean Squared Error(均方误差),也可以称为Mean Squared Deviation (MSD).
    更多参考

    [MSE = frac{1}{N}sum^N_{i=1}|y_i-y'_i|^2 ]

    由MSE可以衍生得到均方根误差(Root Mean Square Error, RMSE, 或者RMSD)
    更多参考

    [RMSE=sqrt{MSE} = sqrt{frac{1}{N}sum^N_{i=1}|y_i-y'_i|^2} ]

    RMSE可以进行归一化(除以全距或者均值)从而得到归一化的均方根误差(Normalized Root Mean Square Error, NRMSE).
    (NRMSE = frac{RMSE}{y_{max}-y_{min}})
    或者
    (NRMSE = frac{RMSE}{overline{y}})

    RMSE还有其他变式:

    • RMSLE(Root Mean Square Logarithmic Error)

    [RMSLE = sqrt{frac{1}{N}sum^N_{i=1}igl|log(y_i+1)-log(y'_i+1)igr|^2} ]

    • RMSPE(Root Mean Square Percentage Error)

    [RMSPE=sqrt{frac{1}{N}sum^N_{i=1}iggl|frac{y_i-y'_i}{y_i}iggr|^2} ]

    对于数值序列出现长尾分布的情况,可以选择MSLE(Mean squared logarithmic error,均方对数误差),对原有数据取对数后再进行比较(公式中+1是为了避免数值为0时出现无穷值).

    [MSLE = frac{1}{N}sum^N_{i=1}igl|log(y_i+1)-log(y'_i+1)igr|^2 ]

    R²系列

    R²(R squared, Coefficient of determination),中文翻译为“决定系数”或者“拟合优度”,反映的是预测值对实际值的解释程度.
    注意:R²和相关系数的平方不是一回事(只在简单线性回归条件下成立)

    [egin{aligned} R^2 & = 1-frac{SS_{res}}{SS_{tot}} \ & = 1-frac{sum^N_{i=1}(y_i-y'_i)^2}{sum^N_{i=1}(y_i-overline{y})^2} \ end{aligned} ]

    其中(overline{y}=frac{1}{N}sum^N_{i=1}y_i),总平方和(SS_{tot})= 回归平方和(SS_{reg})+残差平方和(SS_{res}).
    (SS_{tot} = sum^N_{i=1}(y_i-y'_i)^2)
    (SS_{res} = sum^N_{i=1}(y_i-overline{y})^2)
    (SS_{reg} = sum^N_{i=1}(y'_i-overline{y})^2)

    回归模型中,增加额外的变量会提升R²,但这种提升可能是虚假的,因此提出矫正的R²(Adjusted R²,符号表示为(R^2_{adj})或者(overline{R}^2))来对模型中的变量个数进行“惩罚”((R^2_{adj} leq R^2))。

    [R^2_{adj} = 1-(1-R^2)frac{N-1}{N-1-P} ]

    公式中(P)表示回归模型中变量(特征)的个数。和(R^2)计算方式很相近的另一个指标是Explained Variance Score.

    (e_i = y_i-y'_i, overline{e}=frac{1}{N}sum^N_{i=1}e_i),则有

    [egin{aligned} explained_variance & = 1-frac{var(y-y')}{var(y)} \ & = 1-frac{sum^N_{i=1}(e_i-overline{e})^2}{sum^N_{i=1}(y_i-overline{y})^2} \ end{aligned} ]

    更多关于R²参考 :

    综上,在选用评价指标时,需要考虑:

    • 数据中是否有0,如果有0值就不能用MPE、MAPE之类的指标;
    • 数据的分布如何,如果是长尾分布可以选择带对数变换的指标,中位数指标比平均数指标更好;
    • 是否存在极端值,诸如MAE、MSE、RMSE之类容易受到极端值影响的指标就不要选用;
    • 得到的指标是否依赖于量纲(即绝对度量,而不是相对度量),如果指标依赖量纲那么不同模型之间可能因为量纲不同而无法比较;

    更多关于指标选择可以参考A Survey of Forecast Error Measures(2013) 这篇文章。

    参考资料:

    本博客所有文章仅用于学习、研究和交流目的,欢迎非商业性质转载。

    转载请注明作者及出处

  • 相关阅读:
    《区块链100问》第51集:区块链资产有匿名性
    《区块链100问》第52集:区块链资产能去中心化记账
    《区块链100问》第53集:区块链资产不可复制
    day 5 模块导入、常用模块os shutil sys commands subprocess hashlib json pickle zipfile traceback random datetime pathlib
    apache中配置php支持模块模式、cgi模式和fastcgi模式的实验
    day3--集合、文件操作、字符编码与转换、函数(递归,lambda,filter,map)、字典排序
    练习题目 :if for while else range、xrange、zip
    解决mySQL占用内存超大问题
    my.cnf重要配置参数说明
    chattr与lsattr命令详解
  • 原文地址:https://www.cnblogs.com/dataxon/p/12540191.html
Copyright © 2020-2023  润新知