了解决定系数
Understanding Coefficient of Determination
我通过 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
您引用的 "documentation" 只是一篇描述 R2 众多变体之一的博文。我建议阅读官方 scikit-learn
文档以了解它们在 r2_score
中的实现。
简而言之,值为 0 意味着该模型与仅预测目标变量的期望值(即平均值)的模型没有任何不同。另一方面,值为 1 意味着模型是完美的,其预测没有错误。但是,这是与您提供的博文状态的主要区别,您会看到它允许负值,因为模型的性能可能比简单地预测目标变量的预期值更差。
这就是 scikit-learn
的 r2_score
在您的情况下告诉您的内容:您拟合的模型更糟糕,即平均产生更高的误差,而不是仅仅预测房价。
遵循文档: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
希望对您有所帮助
我通过 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
您引用的 "documentation" 只是一篇描述 R2 众多变体之一的博文。我建议阅读官方 scikit-learn
文档以了解它们在 r2_score
中的实现。
简而言之,值为 0 意味着该模型与仅预测目标变量的期望值(即平均值)的模型没有任何不同。另一方面,值为 1 意味着模型是完美的,其预测没有错误。但是,这是与您提供的博文状态的主要区别,您会看到它允许负值,因为模型的性能可能比简单地预测目标变量的预期值更差。
这就是 scikit-learn
的 r2_score
在您的情况下告诉您的内容:您拟合的模型更糟糕,即平均产生更高的误差,而不是仅仅预测房价。
遵循文档: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
希望对您有所帮助