# -*- coding: utf-8 -*- from sklearn.linear_model import * from sklearn.metrics import r2_score def getPredict(X, y, X_test, Y_test): # 请在此添加代码 完成本关任务 # # ********** Begin *********# # ********** End **********#
时间: 2025-05-04 14:53:26 浏览: 27
### 如何使用 `sklearn` 实现线性回归并评估 R² 分数
在 Python 中,可以利用 `scikit-learn` 库中的 `LinearRegression` 类来构建线性回归模型,并通过计算 R² 分数来评估其性能。以下是具体方法:
#### 数据准备
首先需要加载数据集并将数据划分为训练集和测试集。这可以通过 `train_test_split` 函数完成。
```python
from sklearn.model_selection import train_test_split
from sklearn.datasets import load_boston # 加载波士顿房价数据作为示例
data = load_boston()
X = data.data
y = data.target
# 将数据划分为训练集和测试集
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2, random_state=42)
```
#### 构建线性回归模型
接着实例化 `LinearRegression` 并拟合训练数据。
```python
from sklearn.linear_model import LinearRegression
model = LinearRegression() # 创建线性回归模型对象
model.fit(X_train, y_train) # 训练模型
```
#### 预测与评估
使用训练好的模型对测试集进行预测,并通过 `score` 方法或单独调用 `r2_score` 来获取 R² 分数值。
```python
from sklearn.metrics import r2_score
# 对测试集进行预测
predictions = model.predict(X_test)
# 使用 score 方法直接获得 R² 分数
r2_direct = model.score(X_test, y_test)
# 或者手动计算 R² 分数
r2_manual = r2_score(y_test, predictions)
print(f"Direct R² Score: {r2_direct}") # 输出直接得分结果[^2]
print(f"Manual R² Score: {r2_manual}") # 手动计算的得分结果[^3]
```
上述代码展示了如何基于 `LinearRegression` 进行基本操作以及评价指标的获取方式。
---
### 关于 Ridge 回归扩展说明
如果存在多重共线性问题,则可考虑采用岭回归(Ridge Regression),它通过对损失函数加入 L2 正则项缓解此现象的影响[^1]。同样地,在 `scikit-learn` 中也有对应的类支持该功能——即 `Ridge` 模型。
```python
from sklearn.linear_model import Ridge
ridge_model = Ridge(alpha=1.0) # alpha 是正则强度参数
ridge_model.fit(X_train, y_train)
# 测试集上的表现
ridge_r2 = ridge_model.score(X_test, y_test)
print(f"Ridge Model R² Score: {ridge_r2}")
```
以上便是针对线性回归及其改进版本的应用介绍。
---
阅读全文