【问题标题】:Understanding Coefficient of Determination了解确定系数
【发布时间】:2020-09-16 01:27:33
【问题描述】:

我正在通过documentation 了解确定系数,从文档中我了解到确定系数不过是 R x R(相关系数)

所以我从 kaggle.com 获取房价数据集并开始尝试以更好地理解,这是我的代码

取相关系数

test_data=pd.read_csv(r'\house_price\test.csv')
_d=test_data.loc[:,['MSSubClass','LotFrontage']]
_d.fillna(0,inplace=True)
_d.corr()

现在,像这样取确定系数

from sklearn.metrics import r2_score
r2_score(_d['MSSubClass'],_d['LotFrontage'])

为此,我得到了值 -0.9413195412943647

理想情况下不应该是 0.060531252961 吗?如-0.246031 x -0.246031 = 0.060531252961

【问题讨论】:

    标签: scikit-learn statistics pearson-correlation multicollinearity coefficient-of-determination


    【解决方案1】:

    关注文档:https://scikit-learn.org/stable/modules/model_evaluation.html#r2-score

    r2_score 定义为:

    df.corr方法在哪里(具有皮尔逊相关性):

    所以让我们构建一个例子:

    x   y
    1   1
    1   0
    0   0
    1   1
    

    相关性:4*(1+0+0+1) - 3*2 / sqrt(4*(3-9)*4*(2-4)) = 8-6/ sqr(-24*4*-8) = 2/sqr(-24*4*-8) R2 在哪里:1-((0)^2+(1)^2+(0)^2+(0)^2) / (1-0.75)^2+(1-0.75)^2+(0 - 0.75)^2 +(1-0.75)^2

    希望有帮助

    【讨论】:

    【解决方案2】:

    您所引用的“文档”只是一篇描述 R2 众多变体之一的博文。我建议阅读官方scikit-learn 文档以了解它们在r2_score 中的实现。

    简而言之,0 值意味着模型与仅预测目标变量的期望值(即均值)的模型没有任何不同。另一方面,值为 1 意味着该模型是完美的,其预测没有错误。但是,这是与您提供的博文所述的主要区别,您会看到它允许负值,因为模型的性能可能比简单地预测目标变量的预期值更差。

    这就是scikit-learnr2_score 在您的案例中告诉您的:您拟合的模型更差,即平均产生更高的误差,而不是仅仅预测房价的平均值。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2010-11-01
      • 1970-01-01
      • 2011-09-10
      • 1970-01-01
      • 1970-01-01
      • 2012-02-16
      • 2011-07-24
      • 1970-01-01
      相关资源
      最近更新 更多