Scikit learn 理解决定系数

Scikit learn 理解决定系数,scikit-learn,statistics,pearson-correlation,multicollinearity,coefficient-of-determination,Scikit Learn,Statistics,Pearson Correlation,Multicollinearity,Coefficient Of Determination,我通过阅读文献来理解决定系数,从文献中我了解到决定系数只不过是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

我通过阅读文献来理解决定系数,从文献中我了解到决定系数只不过是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一样,您所引用的“文档”只是一篇描述R2众多变体之一的博客文章。我建议阅读官方的
scikit learn
文档,以了解它们在中的实现

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


这就是在你的案例中,scikit learn的r2评分告诉你的:你适合的模型比仅仅预测房价的平均值更糟糕,即平均产生更高的误差。

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

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

这就是在您的案例中,scikit learn的
r2_分数告诉您的:您适合的模型比仅预测房价平均值更糟糕,即平均产生更高的误差。

以下文档:

r2_分数定义为:

其中,
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

希望对以下文档有所帮助:

r2_分数定义为:

其中,
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


希望这会有所帮助

因此,根据文件确定的相关关系定义是错误的,你的意思是,我认为在你的链接中有两个不同的主题,一个是R2,另一个是相关系数。因此,根据文件确定的相关关系定义是错误的,这就是你的意思吗?我想在你的链接中有两个不同的主题,一个是R2,另一个是相关系数