机器学习基础:统计学角度了解模型评价目的
作者头像
  • 互联网金融动态
  • 2020-05-13 09:49:22 1

大家好,我是一名Python数据分析师,希望通过分享我的转行经历,帮助大家更好地理解和应用人工智能技术。为此,我编写了“人工智能四部曲”系列,其中包括《15天学会Python编程》、《每天10分钟,用Python学数据分析》、《Python数据可视化实战》以及《33天搞定机器学习》。

本文是《33天搞定机器学习》的第二部分前半部分内容,主要讨论残差学习,欢迎大家订阅。

回归模型性能评估指标

回归模型的性能评估通常需要考虑多个指标,如RMSE(均方根误差)、MAE(平均绝对误差)、MSE(均方误差)和R2score(决定系数)。然而,在量纲不同的情况下,RMSE、MAE和MSE难以全面衡量模型效果。这时就需要用到R2score。在实际应用中,我们经常会遇到各种问题,接下来我们将深入探讨R2_score的相关内容。

准备知识

在理解R2_score的计算方法之前,我们需要先掌握一些基本的统计学概念。

回归平方和(SSR)

SSR反映了自变量与因变量之间的相关程度,具体来说,它是估计值与平均值之间误差的平方和。

残差平方和(SSE)

SSE反映了模型的拟合程度,具体来说,它是估计值与真实值之间误差的平方和。

总离差平方和(SST)

SST反映了平均值与真实值之间的差异,具体来说,它是平均值与真实值之间误差的平方和。

R2_score 计算公式

R2_score,即决定系数,用来衡量因变量的全部变异可以通过回归关系被自变量解释的比例。其计算公式如下:

[ R^2 = 1 - frac{SSE}{SST} ]

进一步简化后:

[ R^2 = 1 - frac{sum(yi - hat{y}i)^2}{sum(y_i - bar{y})^2} ]

其中,分子是均方误差(MSE),分母是方差。R2_score可以简单理解为将均值作为误差基准,比较预测误差是否大于或小于这个基准误差。

  • 当R2_score = 1时,说明样本中的预测值和真实值完全一致,没有误差,表示回归分析中自变量对因变量的解释非常准确。
  • 当R2_score = 0时,说明分子等于分母,预测值与均值无差别。
  • R2_score可以是负数,表示模型效果甚至不如直接使用均值预测。

R2_score 的使用方法

根据上述公式,我们可以手动计算R2score,也可以直接调用sklearn库中的r2score函数。

```python from sklearn.metrics import meansquarederror, r2_score import numpy as np

假设 ytest 是真实值,ypred 是预测值

mse = meansquarederror(ytest, ypred) r2 = 1 - mse / np.var(y_test)

或者直接使用sklearn库

r2 = r2score(ytrue, y_pred) ```

注意事项

  1. R² 主要应用于线性模型,但也适用于某些非线性模型。
  2. R² 并不能完全反映模型的预测能力,例如当观测值的取值范围较窄时,即使R²较高,也不代表模型在其他情况下的表现一定优秀。
  3. 数据集样本量越大,R² 越高,因此在不同数据集间比较模型时,建议使用校正后的R²(Adjusted R²),它可以对额外增加的非显著变量给予惩罚。

希望这些内容对大家有所帮助,如有任何疑问,欢迎留言交流!

    本文来源:图灵汇
责任编辑: : 互联网金融动态
声明:本文系图灵汇原创稿件,版权属图灵汇所有,未经授权不得转载,已经协议授权的媒体下载使用时须注明"稿件来源:图灵汇",违者将依法追究责任。
    分享
统计学模型角度目的机器了解评价基础学习
    下一篇