【笔记】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个最相似的数据 ...
随机推荐
- Docker:redis容器使用redis.conf启动失败,不报错
查看redis.conf配置信息 daemonize no :redis默认是不作为守护进程使用的,这也就是说为什么在你不修改配置文件时直接使用redis-server /redis/redis.co ...
- linux安装subversion
原文: https://www.cnblogs.com/liuxianan/p/linux_install_svn_server.html 安装 使用yum安装非常简单: yum install su ...
- 关于mysql binlog二进制
binlog 在mysql中,当发生数据变更时,都会将变更数据的语句,通过二进制形式,存储到binlog日志文件中. 通过binlog文件,你可以查看mysql一段时间内,对数据库的所有改动. 也可以 ...
- servlet核心技术2
一.Servet 与 JDBC 在Servlet中可以使用JDBC技术访问数据库,查询DB数据,然后生成显示页面,接收请求参数,然后对DB操作 为了方便重用和便于维护等目的,经常会采用DAO(Data ...
- RWLock——一种细粒度的Mutex互斥锁
RWMutex -- 细粒度的读写锁 我们之前有讲过 Mutex 互斥锁.这是在任何时刻下只允许一个 goroutine 执行的串行化的锁.而现在这个 RWMutex 就是在 Mutex 的基础上进行 ...
- ORB随便记一记
论文摘取 (这部分看的是泡泡机器人的翻译) 基于特征点.单目.完全自动初始化,基于PTAM框架. 相关工作 A.位置识别(大概是用于回环检测) bags of words FAB-map DBOW2 ...
- modelsim 独立仿真vivado的IP核及仿真脚本
Modelsim独立仿真vivado的IP 最近一直在做local dimming项目的FPGA硬件实现,算法的其中一步就是直方图统计,即数字图像的某一灰度级的像素数,这个直方图的源码找了半天才搞到, ...
- Hive——join的使用
Hive--join的使用 hive中常用的join有:inner join.left join .right join .full join.left semi join.cross join.mu ...
- uiautomator2 入门教程
一.前言 在 Android 自动化测试方面,Google 提供了一个基于 Java 开发的库 UiAutomator,基本上支持所有的 Android 事件操作,使用简单. 在此基础上,有大佬开发出 ...
- RHEL7配置端口转发和地址伪装
说明:这里是Linux服务综合搭建文章的一部分,本文可以作为Linux上使用firewalld做端口转发和地址伪装以及外网访问内网的参考. 注意:这里所有的标题都是根据主要的文章(Linux基础服务搭 ...