关于网格搜索和超参数, 运行以后, 有2个问题?

来源:4-6 网格搜索与k近邻算法中更多超参数

Ivan8612668

2020-11-04

请教bobo老师, 为什么使用sklearn里面的gridSearch, 设置参数如下图:

grid_search = GridSearchCV(knn_clf, param_grid, cv = 3, n_jobs = -1, verbose=2)

跑出来的结果是:
estimator=KNeighborsClassifier(algorithm=‘auto’, leaf_size=30, metric=‘minkowski’,
metric_params=None, n_jobs=None, n_neighbors=5, p=2,
weights=‘uniform’),

但是, grid_search.best_params_ 跑出来的结果确是:
{‘n_neighbors’: 3, ‘p’: 3, ‘weights’: ‘distance’}
图片描述

问题1. 为啥结果不一致?
问题2. 为什么verbose 怎么设置, 运行中打印的log还是什么少. 如下:

Fitting 3 folds for each of 60 candidates, totalling 180 fits
[Parallel(n_jobs=-1)]: Using backend LokyBackend with 4 concurrent workers.
[Parallel(n_jobs=-1)]: Done  17 tasks      | elapsed:    8.0s
[Parallel(n_jobs=-1)]: Done  90 tasks      | elapsed:  1.3min
CPU times: user 1.43 s, sys: 1.29 s, total: 2.72 s
Wall time: 3min 43s
[Parallel(n_jobs=-1)]: Done 180 out of 180 | elapsed:  3.7min finished
写回答

1回答

liuyubobobo

2020-11-06

问题 1:

参考这里:http://coding.imooc.com/learn/questiondetail/156266.html

fit 后展示的参数不是训练结果的参数。在你的截图中,要看训练出的 best_estimator_ 的参数。请看下面截图我标蓝的地方。

//img.mukewang.com/szimg/5fa49b26094debf011710733.jpg


问题2

我测试了一下,最新版本的 sklearn 的 GridSearchCV 的 verbose 打印出来的信息就是这么少了。


继续加油!:)

1
3
liuyubobobo
回复
Ivan8612668
是默认值。
2020-12-01
共3条回复

Python3入门机器学习 经典算法与应用  

Python3+sklearn,兼顾原理、算法底层实现和框架使用。

5893 学习 · 2454 问题

查看课程