10×10交叉验证 sklearn 代码
时间: 2023-08-08 09:02:12 浏览: 90
交叉验证是一种用来评估机器学习模型性能的方法,其中10×10交叉验证指的是将数据集分成10个子集,每次使用9个子集作为训练集,剩余的1个子集作为测试集,重复这个过程10次,每次都选择不同的训练集和测试集,最后将每次的评估结果求平均得到模型的性能评估值。
在sklearn库中,可以使用cross_val_score函数来实现10×10交叉验证。下面是一个示例代码:
```python
from sklearn.model_selection import cross_val_score
from sklearn import datasets
from sklearn import svm
# 加载数据集
iris = datasets.load_iris()
# 创建支持向量机模型
clf = svm.SVC(kernel='linear', C=1)
# 使用10×10交叉验证评估模型性能
scores = cross_val_score(clf, iris.data, iris.target, cv=10)
# 输出每次交叉验证的评估结果
print("每次交叉验证的评估结果:")
for i, score in enumerate(scores):
print(f"第{i+1}次交叉验证得分:{score:.2f}")
# 输出平均评估结果
print(f"\n平均得分:{scores.mean():.2f}")
```
在上述代码中,首先通过`from sklearn.model_selection import cross_val_score`导入cross_val_score函数,然后使用`datasets.load_iris()`加载了一个经典的鸢尾花数据集作为示例数据。接着创建了一个支持向量机模型`svm.SVC(kernel='linear', C=1)`。
然后调用`cross_val_score(clf, iris.data, iris.target, cv=10)`进行10×10交叉验证,其中`clf`是我们创建的模型,`iris.data`是数据集特征数据,`iris.target`是数据集的目标标签,`cv=10`表示要进行10次交叉验证。
最后,通过遍历得到的`scores`数组,可以按顺序输出每次交叉验证得到的评估结果,并利用`scores.mean()`求得平均得分。
阅读全文