不依赖机器学习库的情况下,代码实现R-squared的计算
时间: 2024-12-13 16:24:36 浏览: 2
如果你不打算使用机器学习库,比如`sklearn`,你可以手动编写代码来计算R-squared(决定系数)。其公式是:
\[ R^2 = 1 - \frac{\sum_{i=1}^{n}(y_i - \hat{y}_i)^2}{\sum_{i=1}^{n}(y_i - \bar{y})^2} \]
其中:
- \( n \) 是样本数量
- \( y_i \) 是实际观测值
- \( \hat{y}_i \) 是预测值
- \( \bar{y} \) 是所有观测值的平均值
以下是不依赖库的简单实现:
```python
def calculate_r_squared(y_true, y_pred):
n = len(y_true)
# 平均值
mean_y = sum(y_true) / n
ss_total = sum((y_true[i] - mean_y)**2 for i in range(n))
# 预测误差平方和
ss_residual = sum((y_true[i] - y_pred[i])**2 for i in range(n))
# 计算R-squared
r_squared = 1 - (ss_residual / ss_total)
return r_squared
# 示例
y_true = [1, 2, 3, 4, 5]
y_pred = [1.5, 2.0, 3.1, 3.9, 4.8]
r_squared_value = calculate_r_squared(y_true, y_pred)
print(f"R-squared value: {r_squared_value}")
```
在这个代码中,我们首先计算总平方和(总变异性),然后计算残差平方和(预测误差的平方和),最后使用上述公式计算R-squared。
阅读全文