KFold交叉验证实例
时间: 2024-10-18 08:19:15 浏览: 17
交叉验证神经网络matlab
在Python中,我们可以使用`sklearn.model_selection.KFold`来实现KFold交叉验证。下面是一个简单例子[^1]:
```python
from sklearn.model_selection import KFold
from sklearn.linear_model import LinearRegression
import numpy as np
# 假设我们有一个模拟的学生考试分数数据
np.random.seed(0)
n_samples = 100
X = np.random.rand(n_samples, 1)
y = 3 + X + np.random.randn(n_samples, 1)
# 创建KFold实例,假设我们将数据分为5个子集(Folds)
kf = KFold(n_splits=5, shuffle=True, random_state=42)
# 对于每个训练集-测试集对,训练模型并评估
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 = LinearRegression()
model.fit(X_train, y_train)
score = model.score(X_test, y_test)
print(f"Test set R² score: {score:.3f}")
```
在这个例子中,数据被分为5个相等大小的部分,依次作为测试集,其余部分作为训练集。这样可以得到5次独立的模型评估结果,从而更稳健地估计模型的整体性能。
阅读全文