pythonk折交叉验证的代码
时间: 2024-03-02 16:46:45 浏览: 20
Python中的k折交叉验证是一种常用的模型评估方法,它将数据集分成k个子集,每次使用其中k-1个子集作为训练集,剩下的一个子集作为验证集,然后重复k次,每次选择不同的验证集。下面是一个简单的示例代码:
```python
from sklearn.model_selection import KFold
from sklearn import datasets
from sklearn import svm
# 加载数据集
iris = datasets.load_iris()
X = iris.data
y = iris.target
# 创建k折交叉验证对象
kfold = KFold(n_splits=5)
# 遍历每一折
for train_index, test_index in kfold.split(X):
# 划分训练集和测试集
X_train, X_test = X[train_index], X[test_index]
y_train, y_test = y[train_index], y[test_index]
# 训练模型
clf = svm.SVC(kernel='linear', C=1).fit(X_train, y_train)
# 在测试集上进行预测
accuracy = clf.score(X_test, y_test)
print("Accuracy:", accuracy)
```
在这个示例中,我们使用了sklearn库中的KFold类来实现k折交叉验证。首先,我们加载了一个经典的鸢尾花数据集,并将特征数据保存在X中,目标变量保存在y中。然后,我们创建了一个KFold对象,并指定了将数据集分成5个子集。接下来,我们使用split方法遍历每一折,得到训练集和测试集的索引。然后,我们根据索引从X和y中划分出对应的训练集和测试集。接着,我们使用训练集训练一个支持向量机分类器,并在测试集上进行预测,计算准确率并输出。