GridSearchCV是用来调参的
但是某次发现他调节出来的参数并不是最佳参数。代码如下:
import numpy as np
import pandas as pd
import matplotlib.pyplot as plt
from sklearn.neighbors import KNeighborsClassifier
from sklearn.datasets import load_wine
from sklearn.model_selection import train_test_split
%matplotlib inline
data = load_wine()
X_train,X_test,y_train,y_test = train_test_split(data['data'],data['target'],random_state = 0)
#以下是用GridSearchCV调参:
from sklearn.model_selection import GridSearchCV
knn = KNeighborsClassifier()
gsc = GridSearchCV(knn,param_grid={"n_neighbors":[i for i in range(1,22)]})
gsc.fit(X_train,y_train)
gsc.best_estimator_
结果为:
KNeighborsClassifier(algorithm='auto', leaf_size=30, metric='minkowski',
metric_params=None, n_jobs=None, n_neighbors=1, p=2,
weights='uniform')
最佳k值为1

本文探讨了使用GridSearchCV进行参数调优时遇到的问题,即得到的最佳参数与实际最佳参数不符。问题源于GridSearchCV仅使用训练集进行搜索,而手动调参会考虑测试集的性能。因此,两种方法的最优解可能不一致。作者提出疑问,GridSearchCV的准确率计算方式,并指出理解其工作原理的重要性。
最低0.47元/天 解锁文章
355

被折叠的 条评论
为什么被折叠?



