You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

sklearn.metrics中r2_score返回异常值的技术咨询

关于sklearn中r2_score结果异常的问题解答
  • 你完全用错了r2_score的参数逻辑:这个函数的标准调用是r2_score(y_true, y_pred),第一个参数必须是真实标签值,第二个是模型输出的预测值,不是随便把x和y两个数组互换传入。你之前的两次调用都是把特征和真实值直接当真实值/预测值传,完全不符合R²的计算场景,结果自然无意义。

  • 线性回归模型的score()方法是正确的:它内部会自动用输入的特征x生成预测值y_pred,然后计算r2_score(y, y_pred),这和Excel趋势线的R²计算逻辑一致,所以得到的0.5778是合理的。

  • 正确的r2_score调用示例:

from sklearn.linear_model import LinearRegression
from sklearn.metrics import r2_score

# 假设x是特征数据,y是真实标签
model = LinearRegression()
model.fit(x, y)
y_pred = model.predict(x)

# 正确计算R²
proper_r2 = r2_score(y, y_pred)
# 这个结果会和model.score(x, y)完全一致,也就是你看到的0.5778
  • 你之前两次调用的问题解析:
    • r2_score(y, x):把y当真实值,x当预测值,相当于用特征x去拟合标签y,这和你的建模目标完全相反,拟合度极低所以R²只有0.0148
    • r2_score(x, y):把x当真实值,y当预测值,拟合效果远差于均值基准,所以R²为负(R²为负表示模型性能不如直接用均值预测,完全不符合数据规律)

内容的提问来源于stack exchange,提问作者Stefan_E

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.03 07:09:39