应用k折交叉验证的线性回归问题的Python代码
时间: 2024-01-22 09:21:10 浏览: 23
下面是应用 k 折交叉验证的线性回归问题的 Python 代码,其中 k 可以根据具体情况进行调整:
```python
import numpy as np
from sklearn.model_selection import KFold
from sklearn.linear_model import LinearRegression
# 生成数据集
X = np.random.rand(100, 10)
y = np.random.rand(100)
# 定义 k 折交叉验证对象
kf = KFold(n_splits=5)
# 定义线性回归模型对象
lr = LinearRegression()
# 进行 k 折交叉验证
for train_index, test_index in kf.split(X):
# 将数据集分为训练集和测试集
X_train, X_test = X[train_index], X[test_index]
y_train, y_test = y[train_index], y[test_index]
# 训练模型
lr.fit(X_train, y_train)
# 测试模型并输出结果
print("训练集 R^2 score: ", lr.score(X_train, y_train))
print("测试集 R^2 score: ", lr.score(X_test, y_test))
```
在上述代码中,我们首先生成了一个 $100 \times 10$ 的数据集,然后定义了一个 `KFold` 对象实现 5 折交叉验证。接着,我们定义了一个线性回归模型对象 `lr`,并在循环中对每一折数据进行训练和测试。最后,我们输出了每一折数据的训练集和测试集的 $R^2$ 分数。