网格搜索与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近邻算法中更多超参数的更多相关文章

  1. 网格搜索与K近邻中更多的超参数

    目录 网格搜索与K近邻中更多的超参数 一.knn网格搜索超参寻优 二.更多距离的定义 1.向量空间余弦相似度 2.调整余弦相似度 3.皮尔森相关系数 4.杰卡德相似系数 网格搜索与K近邻中更多的超参数 ...

  2. GridSearchCV网格搜索得到最佳超参数, 在K近邻算法中的应用

    最近在学习机器学习中的K近邻算法, KNeighborsClassifier 看似简单实则里面有很多的参数配置, 这些参数直接影响到预测的准确率. 很自然的问题就是如何找到最优参数配置? 这就需要用到 ...

  3. 1.K近邻算法

    (一)K近邻算法基础 K近邻(KNN)算法优点 思想极度简单 应用数学知识少(近乎为0) 效果好 可以解释机器学习算法使用过程中的很多细节问题 更完整的刻画机器学习应用的流程 图解K近邻算法 上图是以 ...

  4. 机器学习(四) 机器学习(四) 分类算法--K近邻算法 KNN (下)

    六.网格搜索与 K 邻近算法中更多的超参数 七.数据归一化 Feature Scaling 解决方案:将所有的数据映射到同一尺度 八.scikit-learn 中的 Scaler preprocess ...

  5. 一看就懂的K近邻算法(KNN),K-D树,并实现手写数字识别!

    1. 什么是KNN 1.1 KNN的通俗解释 何谓K近邻算法,即K-Nearest Neighbor algorithm,简称KNN算法,单从名字来猜想,可以简单粗暴的认为是:K个最近的邻居,当K=1 ...

  6. 机器学习——KNN算法(k近邻算法)

    一 KNN算法 1. KNN算法简介 KNN(K-Nearest Neighbor)工作原理:存在一个样本数据集合,也称为训练样本集,并且样本集中每个数据都存在标签,即我们知道样本集中每一数据与所属分 ...

  7. Python3入门机器学习 - k近邻算法

    邻近算法,或者说K最近邻(kNN,k-NearestNeighbor)分类算法是数据挖掘分类技术中最简单的方法之一.所谓K最近邻,就是k个最近的邻居的意思,说的是每个样本都可以用它最接近的k个邻居来代 ...

  8. 02-18 scikit-learn库之k近邻算法

    目录 scikit-learn库之k近邻算法 一.KNeighborsClassifier 1.1 使用场景 1.2 代码 1.3 参数详解 1.4 方法 1.4.1 kneighbors([X, n ...

  9. KNN K~近邻算法笔记

    K~近邻算法是最简单的机器学习算法.工作原理就是:将新数据的每一个特征与样本集中数据相应的特征进行比較.然后算法提取样本集中特征最相似的数据的分类标签.一般来说.仅仅提取样本数据集中前K个最相似的数据 ...

随机推荐

  1. Postgresql:postgres命令行导入sql文件

    sql文件导入 psql -d jdbc -h localhost -p 5432 -U postgres -f /home/sql/test.sql #-d 数据库名称 #-h ip地址 #-p 端 ...

  2. [心得体会]Spring注解基本使用方法

    涨知识系列 Environment environment = context.getEnvironment(); 在Spring中所有被加载到spring中的配置文件都会出现在这个环境变量中, 其中 ...

  3. python 正则表达式 中级

    1.子表达式 将几个字符的组合形式看做一个大的字符,例如匹配IP地址,形如 127.0.0.1 答案一:p1='\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3}' pattern1 ...

  4. PHP实现的解汉诺塔问题算法示例

    问题描述: 相传在古印度圣庙中,有一种被称为汉诺塔(Hanoi)的游戏.该游戏是在一块铜板装置上,有三根杆(编号A.B.C),在A杆自下而上.由大到小按顺序放置64个金盘(如下图).游戏的目标:把A杆 ...

  5. 压力测试工具:apache bench(ab)

    作为php后端工程师,除了实现业务需求之外,需要考虑的就是自己写的服务,在大并发下是否能正常运行了,例如在我之前文章讲到的,在并发下,数据库查询可能会造成脏读幻读等情况,导致业务不正常. 但是,在一般 ...

  6. DawgCTF wp(re和crypto)

    简单写写思路,想看详解的..我脚本有些丢失了..师傅请移步. 挂了个vpn,算正式打这种国际赛,全是英文.上去打了两天,昨晚晚上划水了一晚上补作业...,re那时候写出来三道,Potentially ...

  7. MySQL基础篇(一)

    本文主要内容为MySQL的基础语句以及正则表达式等内容. 本文操作的数据库内容存在个人github:https://github.com/YuanGao-1/blog_demo.git init_sc ...

  8. 泛型(8)-Java7的"菱形"语法与泛型构造器

    正如泛型方法允许在方法签名中声明泛型形参一样,Java也允许在构造器签名中声明泛型形参,这样就产生了所谓的泛型构造器. package com.j1803;class Foo{ public < ...

  9. SpringBoot获取前端传递JSON的几种方法

    一.Json对象+@RequestBody接收 var val = {id: 1, name: "小明"}; $.ajax({ url: "/getJson", ...

  10. SpringBoot总结之属性配置

    一.SpringBoot简介 SpringBoot是spring团队提供的全新框架,主要目的是抛弃传统Spring应用繁琐的配置,该框架使用了特定的方式来进行配置,从而使开发人员不再需要定义样板化的配 ...