KNN算法网格搜索最优参数

Posted lyr999736

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了KNN算法网格搜索最优参数相关的知识,希望对你有一定的参考价值。

主要用到 sklearn.model_selection包下的GridSearchCV类。

总共分为几步:

         a.创建训练集和测试集

      b.创建最优参数字典

      c.构建GridSearchCV对象

      d.进行数据训练

      e.得出最优超参数

a.创建训练集和测试集

import numpy as np
from sklearn.neighbors import KNeighborsClassifier
from sklearn import datasets
from sklearn.model_selection import train_test_split
from sklearn.model_selection import GridSearchCV

digits = datasets.load_digits()

x = digits.data
y = digits.target

x_train,x_test,y_train,y_test = train_test_split(x,y,test_size=0.2,random_state=666)

 

 b.创建最优参数字典

param_digits =[
    {
        ‘weights‘:[‘uniform‘],
        ‘n_neighbors‘:[i for i in range(1,11)]
    },
    {
        ‘weights‘:[‘distance‘],
        ‘n_neighbors‘:[i for i in range(1,6)],
        ‘p‘:[i for i in range(1,6)]
    }
]

 c.构建GridSearchCV对象

knn_grid = KNeighborsClassifier()

grid_search = GridSearchCV(knn_grid,param_digits,n_jobs=-1,verbose=2)#n_job指的是所用的核数,也就是多线程执行,当等于-1时,也就是等于你的计算机的核数,verbose越大,打印的信息越详细

 d.进行数据训练

grid_search.fit(x_train,y_train)

e.得出最优超参数 

param = grid_search.best_params_

print(param)

 

以上是关于KNN算法网格搜索最优参数的主要内容,如果未能解决你的问题,请参考以下文章

R语言构建catboost模型:构建catboost模型并基于网格搜索获取最优模型参数(Select hyperparameters)计算特征重要度

机器学习超参数调优

带有 SVM 回归的 Scikit-learn 网格搜索

从0开始的机器学习——knn算法篇

机器学习-kNN-寻找最好的超参数

R语言使用e1071包中的svm函数构建支持向量机SVM模型使用tune.svm函数基于网格搜索(10折交叉验证)对RBF核函数的gamma参数和cost参数进行参数寻优使用最优参数构建最终模型