Bootstrap

机器学习线性回归之回归模型评价指标

为什么不把这些评价指标直接作为优化的目标函数,特别是MSLE这种特别适合于某中特殊场景的指标?
∙ \bullet 开方均方误差RMSE(Rooted Mean Squared Error)
R M S E ( y , y ^ ) = 1 N ∑ i = 1 N ( y i − y ^ i ) 2 RMSE(y, \hat y) = \sqrt{\frac{1}{N}\sum_{i=1}^{N} (y_{i} - \hat y_{i})^2} RMSE(y,y^)=N1i=1N(yiy^i)2
∙ \bullet 平均绝对值误差MAE(Mean Absolute Error)
M A E ( y , y ^ ) = 1 N ∑ i = 1 N ∣ ( y i − y ^ i ) ∣ MAE(y, \hat y) = \frac{1}{N} \sum_{i=1}^{N} |(y_{i} - \hat y_{i})| MAE(y,y^)=N1i=1N(yiy^i)
∙ \bullet 绝对误差中值MedAE(Median Absolute Error)中值的依据是序号,还是值
M e d A E ( y , y ^ ) = m e d i a n ( ∣ y 1 − y ^ 1 ∣ , . . . , ∣ y N − y ^ N ∣ ) MedAE(y, \hat y) = median(|y_{1} - \hat y_{1}|,...,|y_{N} - \hat y_{N}|) MedAE(y,y^)=median(y1y^1,...,yNy^N)
∙ \bullet 平均平方log误差MSLE(Mean Squared Logarithmic Error)
M S L E ( y , y ^ ) = 1 N ∑ i = 1 N ( l o g ( 1 + y i ) − l o g ( 1 + y ^ i ) ) 2 MSLE(y,\hat y) = \frac{1}{N} \sum_{i=1}^{N}(log(1+y_{i}) - log(1+\hat y_{i}))^2 MSLE(y,y^)=N1i=1N(log(1+yi)log(1+y^i))2
  log函数在自变量较小时,函数值变化较快,自变量较大时,函数值变化较为平缓,这非常符合人类对价格类数值的敏感变化,当价格在10元量级时,残差为1元,人类会觉得残差较大,而价格在10000元量级时,残差为1元,人类会觉得残差较小。前提条件应该是log的底大于1,而不是属于区间(0,1),这样函数是单调递增的。上式中的log要加1,应该是要确保自变量大于等于1。PPT上的原 话 ,不好理解 :当y呈指数增长时可以使用(如计数、一年的平均销量…)

∙ \bullet R 2 R^2 R2分数( R 2 R^2 R2 Score) 既考虑了预测值和真值之间的差异,也考虑了问题本身之间的差异(这也是scikit-learn线性回归模型的缺省评价标准)。最佳分数为1,越小越不好,肯能为负值。
S S r e s ( y , y ^ ) = 1 N ∑ i = 1 N ( y i − y ^ i ) 2 SS_{res}(y, \hat y) = \frac{1}{N} \sum_{i=1}^{N}(y_{i} - \hat y_{i})^2 SSres(y,y^)=N1i=1N(yiy^i)2 S S t o t ( y ) = 1 N ∑ i = 1 N ( y i − y ‾ i ) 2 SS_{tot}(y) = \frac{1}{N} \sum_{i=1}^{N}(y_{i} - \overline y_{i})^2 SStot(y)=N1i=1N(yiyi)2 R 2 ( y , y ^ ) = 1 − S S r e s ( y , y ^ ) S S t o t ( y ) R^2(y, \hat y) = 1 - \frac{SS_{res}(y, \hat y)}{SS_{tot}(y)} R2(y,y^)=1SStot(y)SSres(y,y^)
∙ \bullet 已解释的方差分数(Explained variance score):最佳分数位1,越小越不好,应该也可以为负吧?
e x p l a i n e d _ v a r i a n c e ( y , y ^ ) = 1 − V a r ( y − y ^ ) V a r ( y ) explained\_variance(y, \hat y) = 1 - \frac{Var(y-\hat y)}{Var(y)} explained_variance(y,y^)=1Var(y)Var(yy^)
∙ \bullet Scikit-Learn中有三种评价模型性能的方式
  1.estimator的score方法,每个学习器都有score方法,提供一个缺省的评估方法(回归为 R 2 R^2 R2分数)。
  2.Metric:mettrics模块实现了一些函数,用来评估预测误差。
  3.Scoring参数:使用交叉验证评估模型的工具有Scoring参数。

∙ \bullet Scikit-Learn中的metrics的回归评价指标
在这里插入图片描述
∙ \bullet Scikit-Learn中的Scoring参数
在这里插入图片描述
同metrics一一对应

;