python实现5折交叉验证
时间: 2023-07-13 19:22:35 浏览: 88
下面是一个简单的Python实现5折交叉验证的示例代码:
```python
from sklearn.model_selection import KFold
from sklearn.linear_model import LinearRegression
from sklearn.datasets import load_boston
# 加载数据集
boston = load_boston()
X = boston.data
y = boston.target
# 定义5折交叉验证
kf = KFold(n_splits=5, shuffle=True, random_state=42)
# 定义模型
model = LinearRegression()
# 进行交叉验证
scores = []
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]
# 训练模型
model.fit(X_train, y_train)
# 评估模型
score = model.score(X_test, y_test)
scores.append(score)
# 输出交叉验证结果
print('交叉验证结果:', scores)
print('平均得分:', sum(scores) / len(scores))
```
该示例代码使用了scikit-learn库中的KFold函数来实现5折交叉验证。在每一轮交叉验证中,将数据集分为训练集和测试集,使用训练集训练模型,使用测试集评估模型。最后将5轮的评估结果取平均作为最终的交叉验证结果。
阅读全文