首页 > 试题广场 >

计算回归分析的R-squared

[编程题]计算回归分析的R-squared
  • 热度指数:72 时间限制:C/C++ 1秒,其他语言2秒 空间限制:C/C++ 256M,其他语言512M
  • 算法知识视频讲解
实现一个函数来计算回归分析中的 R^2 值(决定系数)。R^2 是一个统计指标,用于评估回归模型的拟合优度,表示模型解释因变量变异性的程度。

R^2 的计算公式为:

R^2 = 1 - \frac{SSR}{SST}

其中:
- SSR (Sum of Squared Residuals):残差平方和 \sum (y_{true} - y_{pred})^2
- SST (Total Sum of Squares):总平方和 \sum (y_{true} - y_{mean})^2
- y_{mean}:真实值的平均值

输入描述:
输入为两个numpy数组,分别表示真实值和预测值。


输出描述:
返回一个浮点数,表示R平方值,结果保留3位小数。
示例1

输入

[1, 2, 3, 4, 5]
[1.1, 2.2, 2.9, 3.8, 5.0]

输出

0.990

备注:
1.对应的输入、输出已给出,您只用实现核心功能函数即可。
2.支持numpy、scipy、pandas、scikit-learn库。
import numpy as np

def r_squared(y_true, y_pred):
    ssr = sum((y_pred - y_true)**2)
    mean_value = np.mean(y_true)
    sst = 0
    for y in y_true:
        sst += (y-mean_value)**2
    res = 1 - ssr/sst
    return round(res,3)
    
if __name__ == "__main__":
    y_true = np.array(eval(input()))
    y_pred = np.array(eval(input()))
    print(f"{r_squared(y_true, y_pred):.3f}")

发表于 2025-04-21 16:35:33 回复(0)