from
1. 数据集分割
iris
2.参数调优
网格搜索+交叉验证
param_grid
![b4e167fe1fe14cdaf82ca125d1ea15f9.png](https://i-blog.csdnimg.cn/blog_migrate/6beb3b862d908bca0fcf62315db86e66.jpeg)
我们发现上述代码中,grid_search.best_score_和scores.mean()的输出值不同,这是因为二者通过交叉验证划分训练集和验证集的方式不同。因此,可以通过Kfold()来限定分割方式(如下所示),这样交叉验证的得分结果相同。
from sklearn.model_selection import KFold
kfold = KFold(n_splits=5,random_state=0)
grid_search = GridSearchCV(SVC(), param_grid, cv=kfold)
grid_search.fit(X_trainval, y_trainval)
print('训练验证集上交叉验证的得分:', grid_search.best_score_)
scores = cross_val_score(grid_search, X_trainval, y_trainval, cv=kfold)
print('训练验证集上交叉验证的得分:',scores.mean())
![3dcf8150ea58ab0eb9fcf8735de5cd44.png](https://i-blog.csdnimg.cn/blog_migrate/f81df336a954d49465aaed6e74b88d87.png)
for循环
best_score
![548bc794837c6524a47e9657c3ca6149.png](https://i-blog.csdnimg.cn/blog_migrate/0c1f8abf7ae7ab23095740d39b7db0a3.jpeg)