python线性回归的k折交叉验证
时间: 2024-04-16 09:22:52 浏览: 282
Python中的线性回归是一种常用的机器学习算法,用于建立一个线性模型来预测连续型的输出变量。而k折交叉验证是一种常用的模型评估方法,用于评估模型的性能和泛化能力。
在Python中,可以使用scikit-learn库来实现线性回归和k折交叉验证。下面是一个简单的示例代码:
```python
from sklearn.linear_model import LinearRegression
from sklearn.model_selection import cross_val_score, KFold
import numpy as np
# 创建一个线性回归模型
model = LinearRegression()
# 创建一个k折交叉验证对象
kfold = KFold(n_splits=5, shuffle=True, random_state=42)
# 加载数据集(假设X为特征矩阵,y为目标变量)
X = np.array([[1, 1], [1, 2], [2, 2], [2, 3]])
y = np.array([3, 4, 5, 6])
# 使用k折交叉验证评估线性回归模型
scores = cross_val_score(model, X, y, cv=kfold)
# 打印每次交叉验证的得分
for i, score in enumerate(scores):
print(f"Fold {i+1}: {score}")
# 打印平均得分
print(f"Average score: {np.mean(scores)}")
```
在上述代码中,首先导入了`LinearRegression`类和`cross_val_score`函数,分别用于创建线性回归模型和进行交叉验证。然后,创建了一个`KFold`对象来指定k折交叉验证的参数,如折数、是否打乱数据和随机种子等。接下来,加载了一个简单的数据集(特征矩阵X和目标变量y)。最后,使用`cross_val_score`函数对线性回归模型进行k折交叉验证,并打印每次交叉验证的得分和平均得分。
阅读全文