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)

原文地址:https://www.cnblogs.com/lyr999736/p/10665572.html

时间: 2024-07-29 18:01:20

KNN算法网格搜索最优参数的相关文章

grid搜索最优参数

GridSearchCV 详细地址:http://scikit-learn.org/stable/modules/generated/sklearn.grid_search.GridSearchCV.html#examples-using-sklearn-grid-search-gridsearchcv 具体实例: # -*- coding: utf-8 -*- """ Created on Mon Jun 15 15:30:30 2015 @author: Chaofn &

【scikit-learn】网格搜索来进行高效的参数调优

 内容概要? 如何使用K折交叉验证来搜索最优调节参数 如何让搜索参数的流程更加高效 如何一次性的搜索多个调节参数 在进行真正的预测之前,如何对调节参数进行处理 如何削减该过程的计算代价 1. K折交叉验证回顾? 交叉验证的过程 选择K的值(一般是10),将数据集分成K等份 使用其中的K-1份数据作为训练数据,另外一份数据作为测试数据,进行模型的训练 使用一种度量测度来衡量模型的预测性能 交叉验证的优点 交叉验证通过降低模型在一次数据分割中性能表现上的方差来保证模型性能的稳定性 交叉验证可以用

机器学习 libsvm交叉验证与网格搜索(参数选择)

首先说交叉验证. 交叉验证(Cross validation)是一种评估统计分析.机器学习算法对独立于训练数据的数据集的泛化能力(generalize), 能够避免过拟合问题. 交叉验证一般要尽量满足: 1)训练集的比例要足够多,一般大于一半 2)训练集和测试集要均匀抽样 交叉验证主要分成以下几类: 1)Double cross-validation Double cross-validation也称2-fold cross-validation(2-CV),作法是将数据集分成两个相等大小的子集

libsvm交叉验证与网格搜索(参数选择)

首先说交叉验证.交叉验证(Cross validation)是一种评估统计分析.机器学习算法对独立于训练数据的数据集的泛化能力(generalize), 能够避免过拟合问题.交叉验证一般要尽量满足:1)训练集的比例要足够多,一般大于一半2)训练集和测试集要均匀抽样 交叉验证主要分成以下几类: 1)Double cross-validationDouble cross-validation也称2-fold cross-validation(2-CV),作法是将数据集分成两个相等大小的子集,进行两回

吴裕雄 python 机器学习——模型选择参数优化暴力搜索寻优GridSearchCV模型

import scipy from sklearn.datasets import load_digits from sklearn.metrics import classification_report from sklearn.linear_model import LogisticRegression from sklearn.model_selection import train_test_split from sklearn.model_selection import GridS

KNN算法与Kd树

最近邻法和k-近邻法 下面图片中只有三种豆,有三个豆是未知的种类,如何判定他们的种类? 提供一种思路,即:未知的豆离哪种豆最近就认为未知豆和该豆是同一种类.由此,我们引出最近邻算法的定义:为了判定未知样本的类别,以全部训练样本作为代表点,计算未知样本与所有训练样本的距离,并以最近邻者的类别作为决策未知样本类别的唯一依据.但是,最近邻算法明显是存在缺陷的,比如下面的例子:有一个未知形状(图中绿色的圆点),如何判断它是什么形状? 显然,最近邻算法的缺陷--对噪声数据过于敏感,为了解决这个问题,我们可

KNN算法介绍

KNN算法全名为k-Nearest Neighbor,就是K最近邻的意思. 算法描述 KNN是一种分类算法,其基本思想是采用测量不同特征值之间的距离方法进行分类. 算法过程如下: 1.准备样本数据集(样本中每个数据都已经分好类,并具有分类标签):2.使用样本数据进行训练:3.输入测试数据A:4.计算A与样本集的每一个数据之间的距离:5.按照距离递增次序排序:6.选取与A距离最小的k个点:7.计算前k个点所在类别的出现频率:8.返回前k个点出现频率最高的类别作为A的预测分类. 主要因素 训练集(或

调参必备---GridSearch网格搜索

什么是Grid Search 网格搜索? Grid Search:一种调参手段:穷举搜索:在所有候选的参数选择中,通过循环遍历,尝试每一种可能性,表现最好的参数就是最终的结果.其原理就像是在数组里找最大值.(为什么叫网格搜索?以有两个参数的模型为例,参数a有3种可能,参数b有4种可能,把所有可能性列出来,可以表示成一个3*4的表格,其中每个cell就是一个网格,循环过程就像是在每个网格里遍历.搜索,所以叫grid search) Simple Grid Search:简单的网格搜索 以2个参数的

人工智能--第二天--KNN算法

一.概述 1.概念:K近邻(k-Nearest Neighbor, 简称KNN)算法是一种非常简单的机器学习监督算法. 2.主要思想:即时给定一个训练数据集,对于新的数据样本,在训练集中找到与该样本最邻近的k个样本,统计这k个样本的多数所属类,就把这个样本归结到这个所属类中. 3.根据维基百科的图解进行分析 如上图所示,有红色三角形,蓝色正方形俩类数据,图中绿色的圆点代表带分类的数据,下面我们根据k近邻算法给绿色圆点进行分类 如果k=3,绿色圆点最近邻的三个点是 2红 1 蓝,结果显而易见,少数