Python 3.x 网格搜索

Python 3.x 网格搜索,python-3.x,scikit-learn,knn,Python 3.x,Scikit Learn,Knn,我正在使用python实现KNN,它正在工作 现在我得到一个错误: 没有名为“sklearn.grid\u搜索”的模块 当我将程序包更改为sklean.model_selection时,我收到另一个错误: “GridSearchCV”对象没有属性“grid\u分数” 这是我的密码: 从sklearn.grid\u搜索导入GridSearchCV 从sklearn.neighbors导入KNeighborsClassifier 将matplotlib.pyplot作为plt导入 #定义应搜索的参数

我正在使用python实现KNN,它正在工作

现在我得到一个错误:

没有名为“sklearn.grid\u搜索”的模块

当我将程序包更改为sklean.model_selection时,我收到另一个错误:

“GridSearchCV”对象没有属性“grid\u分数”

这是我的密码:

从sklearn.grid\u搜索导入GridSearchCV
从sklearn.neighbors导入KNeighborsClassifier
将matplotlib.pyplot作为plt导入
#定义应搜索的参数值
#对于python 2,k_range=range(1,31)
#实例化模型
knn=KNeighborsClassifier(n_作业=-1)
k_范围=列表(范围(1,31))
打印(k_范围)
#创建参数网格:将参数名称映射到应搜索的值
#只是一本python字典
#关键字:参数名
#值:应搜索该参数的值的列表
#参数网格的单个键值对
参数网格=dict(n_邻居=k_范围)
打印(参数网格)
#实例化网格
grid=GridSearchCV(knn,参数网格,cv=10,评分=‘准确度’)
#用数据拟合网格
网格拟合(X,y)
#查看完整结果(命名元组列表)
grid.grid_分数_
#检查第一个元组
#我们将对列表进行切片,并使用点符号和[]选择其元素
打印('参数')
打印(grid.grid\u分数[0]。参数)
#在使用参数的10倍cv期间,10个精度分数的数组
打印(“”)
打印('简历验证分数')
打印(grid.grid\u分数[0]。cv\u验证\u分数)
#10分的平均值
打印(“”)
打印('平均验证分数')
打印(网格。网格分数[0]。平均值验证分数)
#仅创建平均分数列表
#列出理解以循环查看grid.grid\u分数
网格平均分数=[网格中结果的结果平均值验证分数网格平均分数]
打印(网格平均分数)
#绘制结果
#这与我们上面生成的相同
plt.plot(k_范围、网格平均分数)
plt.xlabel('KNN'的K值)
plt.ylabel(“交叉验证精度”)
#检查最佳模型
#在所有参数中获得的单个最佳分数(k)
打印(网格最佳分数)
#包含用于生成该分数的参数(k)的字典
打印(网格最佳参数)
#实际模型对象符合这些最佳参数
#显示默认参数
我们没有具体说明:

打印(网格最佳估计值)
尝试以下方法:

from sklearn.model_selection import GridSearchCV
参考链接

在较新版本中是
cv\u结果