sklearn库交叉验证
时间: 2023-11-27 18:46:54 浏览: 78
使用sklearn的cross_val_score进行交叉验证实例
交叉验证是一种评估统计分析模型的方法,它可以最大限度地利用有限的数据样本来进行模型训练和测试。在sklearn库中,交叉验证可以通过KFold、StratifiedKFold、LeaveOneOut等函数来实现。其中,KFold函数将数据集分成k个连续的折叠,每个折叠都用于一次测试,其余的k-1个折叠用于训练。StratifiedKFold函数与KFold函数类似,但它确保每个折叠中的类别比例与整个数据集中的类别比例相同。LeaveOneOut函数是一种特殊的k-fold交叉验证,其中k被设置为数据集的大小,每次测试只使用一个样本,其余的样本用于训练。
下面是一个使用KFold函数进行交叉验证的例子:
```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
kf = KFold(n_splits=5)
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]
clf = svm.SVC(kernel='linear', C=1).fit(X_train, y_train)
print("Accuracy: {:.2f}%".format(clf.score(X_test, y_test)*100))
```
该例子将数据集分成5个折叠,每个折叠用于一次测试,其余的4个折叠用于训练。在每次测试中,使用线性核的支持向量机分类器对训练集进行训练,并计算测试集的准确率。
阅读全文