【笔记】KNN之网格搜索与k近邻算法中更多超参数
网格搜索与k近邻算法中更多超参数
网格搜索与k近邻算法中更多超参数
网络搜索
前笔记中使用的for循环进行的网格搜索的方式,我们可以发现不同的超参数之间是存在一种依赖关系的,像是p这个超参数,只有在 weights="uniform"才有意义
在sklearn中有一种封装好的网格搜索,grid search
我们首先设置一个数组,其内容可以当成字典来看待
对于第一组参数而言
'weights':["uniform"],
'n_nrightbors':[i for i in range (1,11)]
对于第二组参数而言
'weights':['distance'],
'n_neightbors':[i for i in range(1,11)],
'p': [i for i in range (1,6)]
这样我们就定义好了我们需要的参数的集合,我们也不难发现,超参数的依赖被我们通过这个集合中放在同一个字典中,来表示这种依赖关系

先创建出一个默认的不传任何参数的KNeighborsClassifier(),然后我们创建出一个knn_clf,通过调用sklearn中的网格搜索方法
from sklearn.model_selection import GridSearchCV
待加载进来之后,再创建一个对应的实例对象,其中我们需要传入两个参数
grid_search = GridSearchCV(knn_clf, param_grid)
然后我们就要基于训练数据集来尝试的寻找最佳的模型(fit操作)
grid_search.fit(X_train,y_train)

使用grid_search.best_estimator_即可查看到最佳的模型所对应的参数

与之前结果不一样的原因是因为网格搜索的方式更加的复杂,还有交叉验证的方式参与其中,准确度更高
其他的情况还有

我们要想拿到最佳参数对应的分类器可以直接
knn_clf = grid_search.best_estimator_
这样我们就可以直接使用knn_clf来进行预测了
结果:
knn_clf.predict(X_test)
准确率:
knn_clf.score(X_test, y_test)
GridSearchCV中的重要参数
n_jobs参数
在并行处理的时候,是可以给你的计算机来分配几个核来处理,默认为1,可以直接传入-1,代表直接将全部的核心都用于操作
verbose参数
这是一个输出参数,可以在你运行的情况下进行输出运行的情况,其可以传入一个整数,值越大,信息越详细

更多的超参数
事实上,knn还有更多的超参数
比如更多的距离定义
●向量空间余弦相似度Cosine Similarity
●调整余弦相似度Adjusted Cosine Similarity
●皮尔森相关系数Pearson Correlation Coefficient
●Jaccard相似系数Jaccard Coefficient
我们可以修改metric来更改对距离的定义,其默认的是明科夫斯基距离

【笔记】KNN之网格搜索与k近邻算法中更多超参数的更多相关文章
- 网格搜索与K近邻中更多的超参数
目录 网格搜索与K近邻中更多的超参数 一.knn网格搜索超参寻优 二.更多距离的定义 1.向量空间余弦相似度 2.调整余弦相似度 3.皮尔森相关系数 4.杰卡德相似系数 网格搜索与K近邻中更多的超参数 ...
- GridSearchCV网格搜索得到最佳超参数, 在K近邻算法中的应用
最近在学习机器学习中的K近邻算法, KNeighborsClassifier 看似简单实则里面有很多的参数配置, 这些参数直接影响到预测的准确率. 很自然的问题就是如何找到最优参数配置? 这就需要用到 ...
- 1.K近邻算法
(一)K近邻算法基础 K近邻(KNN)算法优点 思想极度简单 应用数学知识少(近乎为0) 效果好 可以解释机器学习算法使用过程中的很多细节问题 更完整的刻画机器学习应用的流程 图解K近邻算法 上图是以 ...
- 机器学习(四) 机器学习(四) 分类算法--K近邻算法 KNN (下)
六.网格搜索与 K 邻近算法中更多的超参数 七.数据归一化 Feature Scaling 解决方案:将所有的数据映射到同一尺度 八.scikit-learn 中的 Scaler preprocess ...
- 一看就懂的K近邻算法(KNN),K-D树,并实现手写数字识别!
1. 什么是KNN 1.1 KNN的通俗解释 何谓K近邻算法,即K-Nearest Neighbor algorithm,简称KNN算法,单从名字来猜想,可以简单粗暴的认为是:K个最近的邻居,当K=1 ...
- 机器学习——KNN算法(k近邻算法)
一 KNN算法 1. KNN算法简介 KNN(K-Nearest Neighbor)工作原理:存在一个样本数据集合,也称为训练样本集,并且样本集中每个数据都存在标签,即我们知道样本集中每一数据与所属分 ...
- Python3入门机器学习 - k近邻算法
邻近算法,或者说K最近邻(kNN,k-NearestNeighbor)分类算法是数据挖掘分类技术中最简单的方法之一.所谓K最近邻,就是k个最近的邻居的意思,说的是每个样本都可以用它最接近的k个邻居来代 ...
- 02-18 scikit-learn库之k近邻算法
目录 scikit-learn库之k近邻算法 一.KNeighborsClassifier 1.1 使用场景 1.2 代码 1.3 参数详解 1.4 方法 1.4.1 kneighbors([X, n ...
- KNN K~近邻算法笔记
K~近邻算法是最简单的机器学习算法.工作原理就是:将新数据的每一个特征与样本集中数据相应的特征进行比較.然后算法提取样本集中特征最相似的数据的分类标签.一般来说.仅仅提取样本数据集中前K个最相似的数据 ...
随机推荐
- 通过css实现幻灯片效果
html: css: .box { border: 0px solid white; width: 1520px; height: 480px; margin: 0 auto; position: a ...
- Leetcode No.66 Plus One(c++实现)
1. 题目 1.1 英文题目 Given a non-empty array of decimal digits representing a non-negative integer, increm ...
- EF Core3.1 CodeFirst动态自动添加表和字段的描述信息
前言 我又来啦.. 本篇主要记录如何针对CodeFirst做自动添加描述的扩展 为什么要用这个呢.. 因为EF Core3.1 CodeFirst 对于自动添加描述这块 只有少部分的数据库支持.. 然 ...
- Docker部署Mysq集群
1.PXC(Percona XtraDB Cluster) 速度慢 但能保证强一致性 适用于保存价值较高的数据 数据同步是双向的 在任一节点写入数据 都会同步到其他所有节点 在任何节点上都能同时读写 ...
- C语言:赋值
#include <stdio.h> //=赋值运算符 //具有方向性,只能将赋值号右边的表达式的值给左边的变量 //赋值语句具有计算功能,赋值号右边可以是常量,变量或表达式都可以 //赋 ...
- VS Code 下载安装并设置中文面板显示
下载: 下载地址:https://code.visualstudio.com/ 微软在2015年4月30日Build 开发者大会上正式宣布了 Visual Studio Code 项目:一个运行于 M ...
- 我的第一个MVC程序(SpringMVC的环境搭建与实例运用)
做一个完整点的mvc框架的搭建流程吧 Spring包含jar包下载 SpingMVC是基于Spring的一种关于web的解决方案,所以,使用springMVC,首先要准备有关Spring的一些jar包 ...
- python + mysql 实现表删除数据
实例如下: import pymysqldef Delete_From(): #打开数据库链接 db = pymysql.connect("localhost","roo ...
- python -- 模块与类库
一.模块 模块(Module)是由一组类.函数和变量组成的,模块文件的扩展名是.py或.pyc 在使用模块之前,需要先使用import语句导入这个模块. 语法格式如下: import 模块名 from ...
- springboot-2-IOC容器的基本注解
@Configuration 告诉springboot这是一个配置类,用于补充IOC容器, 示例: @Configuration //告诉springboot这是一个配置类,作为IOC容器的自定义补充 ...