gpt4 book ai didi

python - lm.score( ) 中的 R 平方 0.0 是什么意思?

转载 作者:行者123 更新时间:2023-12-03 18:54:35 33 4
gpt4 key购买 nike

关于这个page , R^2 定义为:

The coefficient R^2 is defined as (1 - u/v), where u is the residual sum of squares ((y_true - y_pred) ** 2).sum() and v is the total sum of squares ((y_true - y_true.mean()) ** 2).sum(). The best possible score is 1.0 and it can be negative (because the model can be arbitrarily worse). A constant model that always predicts the expected value of y, disregarding the input features, would get a R^2 score of 0.0.

我无法理解行行:

A constant model that always predicts the expected value of y, disregarding the input features, would get a R^2 score of 0.0.

除了此常数模型给出 y_true.mean() 的情况之外,常数模型如何将 R^2 给出为 0.0?

谢谢。

最佳答案

因此,如果您拟合一个常数模型(即所有预测值都为 1),它就是一个仅截距模型,其中截距是均值,因为这解释了最大的方差。

因此,根据您提供的公式,R 恰好为零。在预测变量或模型没有零预测值的情况下,它会给出接近零(甚至负)的 R^2。

我们可以在下面手动进行这个计算。

首先是数据集:

import pandas as pd
from sklearn.datasets import load_iris
from sklearn.metrics import r2_score
from sklearn import linear_model
iris = load_iris()
df = pd.DataFrame(data= iris['data'],
columns= iris['feature_names'] )

我们拟合 a 模型并计算残差:

mdl_full = linear_model.LinearRegression()
mdl_full.fit(df[['petal width (cm)']],df['petal length (cm)'])
pred = mdl.predict(df[['petal width (cm)']])
resid_full = np.linalg.norm(df['petal length (cm)'] - pred) ** 2

只用截距拟合模型:

mdl_constant = linear_model.LinearRegression()
mdl_constant.fit(X = np.repeat(0,150).reshape(-1, 1),y=df['petal length (cm)'])
pred = mdl_constant.predict(df[['petal width (cm)']])
resid_constant = np.linalg.norm(df['petal length (cm)'] - pred) ** 2

我们可以手动计算 r^2:

(1 - resid_full / resid_constant)
0.9265562307373204

这正是您从 .score 得到的:

mdl_full.score(df[['petal width (cm)']],df['petal length (cm)'])
0.9265562307373204

因此您可以查看完整模型是否与常量模型完全相同,它给出的 r 平方为 0。您可以使用 X = 1、X=2 等重新拟合常量模型,但它给出的结果基本相同.

关于python - lm.score( ) 中的 R 平方 0.0 是什么意思?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60472661/

33 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com