KNN

现在,如果我们有一个分类任务。需要用到scikit-learn库的分类器对象。

分类器要完成的任务是,给定一种鸢尾花卉的测量数据,为这种花卉分类。最简单的分类器是近邻分类器。近邻算法搜索训练集,寻找与用作测试的新个体最相似的观测记录。

讲到这里,弄清楚训练集和测试集这两个概念很重要。如果确实只有一个数据集,也没关系,重要的是不要使用同一份数据同时用于训练和测试。鉴于此,把数据集分为两部分:一部分专门用于训练算法,另一部分用于验证算法。

因此,在讲解后面的内容之前,我们先把Iris数据集分为两部分。最好是先打乱数组各元素的顺序,然后再切分,因为数据往往是按特定顺序采集的,比如Iris数据集就是按照种类进行排序的。我们用NumPy的random.permutation( )函数打乱数据集的所有元素。打乱后的数据集依旧包含150条不同的观测数据,其中前140条用作训练集,剩余10条用于测试集。

在我们将数据集划分为两部分之后,我们就可以使用KNN算法了。导入KneighborsClassifier,调用分类器的构造函数,然后使用fit( )函数对其进行训练。

我们用140条观测数据训练knn分类器,得到了预测模型。我们随后将验证它的效果。分类器应该能够正确预测测试集中10条观测数据所对应的类别。要获取预测结果,可直接在预测模型knn上调用predict( )函数。最后,将预测结果与y_test中的实际值进行比较。

我们可以看到,只有一个数据预测错误了,错误率仅为10%。我们可以在用萼片测量数据绘制的2D散点图中,画出决策边界。

我们可以看到散点图中,有小块区域伸入到其他决策边界之中。我们再使用花瓣数据绘制的散点图中,一样可以画出决策边界。

如图所示,我们使用花瓣数据描述鸢尾花卉的特征,也一样能够得到相应的决策边界。

Diabetes数据集

scikit-learn库提供了多个数据集,其中就有Diabetes(糖尿病)数据集。人们首次使用它是在2004年。从那时起,人们拿它作为例子,广泛应用于各种预测模型的研究和评估中。

从这个数据集加载数据前,先要从scikit-learn库中导入datasets模块。然后调用load_diabetes( )函数加载数据集,我们也可以将它存储在一个变量diabetes中。该数据集包含了442位病人的生理数据以及一年之后的病情发展情况,后者即为目标值。前10列数据表示生理数据,分别表示以下特征:1.年龄 2.性别 3.体质指数 4.血压 5.S1~S6(六种血清的化验数据)。

我们调用data属性就可以获取到测量数据。查看数据集,就会发现这些数据和我们想象中的数据差别很大。例如我们来看一下第一位病人的10个数据。

这些数据是经过特殊处理得到的。10个数据中的每一个都做了均值中心化处理,然后又用标准差乘以个数数量调整了数值范围。验证就会发现任何一列的所有数值之和为1,比如对年龄这一列求和,我们会发现它的总和近似为1。

即使这些数据因为经过规范化处理,所以难以读懂,但是我们只需要知道它们表示10个生理特征就可以了,这些数据照样对我们很有帮助。

表明疾病进展的数据,用target属性就可以得到啦!我们接下来预测得到的结果必须也要与之相符。

这样我们就得到了442个介于25到346之间的整数数据。下面我们将要用这些数据进行我们的实验环节。

python分类器分5类_Python机器学习之K近邻分类器相关推荐

  1. python根据品种散点图鸢尾花_python机器学习入门到精通--实战分析(三)

    利用sklearn分析鸢尾花 前面两篇文章提到了机器学习的入门的几个基础库及拓展练习,现在我们就对前面知识点进行汇总进行一个简单的机器学习应用,并构建模型. 练习即假定一名植物专家收集了每一朵鸢尾花的 ...

  2. 机器学习 —— 基础整理(三)生成式模型的非参数方法: Parzen窗估计、k近邻估计;k近邻分类器...

    本文简述了以下内容: (一)生成式模型的非参数方法 (二)Parzen窗估计 (三)k近邻估计 (四)k近邻分类器(k-nearest neighbor,kNN) (一)非参数方法(Non-param ...

  3. K近邻分类器(李飞飞CS231n学习笔记---lecture2:K最近邻算法)

    在讲解K近邻分类器之前,我们先来看一下最近邻分类器(Nearest Neighbor Classifier),它也是K = 1时的K近邻分类器. 目录 最近邻分类器 定义 存在问题 K近邻分类器(KN ...

  4. 图片分类-K近邻分类器

    你可以注意到当我们做预测的时候,如果仅仅用最近的图片的是远远不够的.其实,我们更常用的是k近邻分类器.这个思想非常简单.代替寻找训练集中最近的图片,我们会寻找k个最相近的图片,并且让他们再测试图片上投 ...

  5. k近邻分类器的使用:简单例子

    #k近邻分类器的简单例子 from sklearn.neighbors import KNeighborsClassifier #创建一组数据x和它对应的标签y: x = [[0], [1], [2] ...

  6. python分类器鸢尾花怎么写_python机器学习基础教程-鸢尾花分类

    一: 环境准备: 1.导入的库: importnumpy as npimportmatplotlib.pyplot as pltimportpandas as pdimport mglearn 2.导 ...

  7. python分类器鸢尾花怎么写_python机器学习基础教程:鸢尾花分类

    首先导入必要的库: import numpy as np import matplotlib.pyplot as plt import pandas as pd import mglearn 复制代码 ...

  8. python 随机森林调参_Python机器学习实践:随机森林算法训练及调参-附代码

    原标题:Python机器学习实践:随机森林算法训练及调参-附代码 文章发布于公号[数智物语] (ID:decision_engine),关注公号不错过每一篇干货. 来源 | 博客园 作者 | 战争热诚 ...

  9. python随机森林变量重要性_python机器学习之随机森林(七)

    机器学习之随机森林,供大家参考,具体内容如下 1.Bootstraping(自助法) 名字来自成语"pull up by your own bootstraps",意思是依靠你自己 ...

最新文章

  1. R二项分布检验:双尾二项检验(Two-tailed Binomial Test)、左尾二项检验(Left-tailed Binomial Test)、右尾二项检验
  2. 诺基亚7plus更新android10,诺基亚发布第五次Android 10更新 诺基亚7+可升级
  3. n分频器 verilog_基于Verilog的分频器实现
  4. leetcode24. 两两交换链表中的节点
  5. [VJ][bfs]Catch That Cow
  6. C# WebApi Xml序列化问题解决方法:“ObjectContent`1”类型未能序列化内容类型“application/xml;charset=utf-8“的响应正文。...
  7. 运维必读:避免故障、拒绝背锅的 10 大原则!
  8. JVM的4种垃圾回收算法、垃圾回收机制与总结
  9. 【Git/Github学习笔记】Git常用命令(版本回退)
  10. 高仿爱鲜蜂购物应用源码
  11. 前后端通吃,vue大全Mark一下
  12. 工程量清单软件测试,输变电工程量清单投标标准化应用软件BQB2017基本操作方法...
  13. 金三银四找工作,真没你想的那么难!
  14. 有备无患!DBS高性价比方案助力富途证券备份上云
  15. 嵌入式UI架构设计漫谈
  16. CentOS6实验模板机搭建
  17. 图形学(7)反走样技术
  18. 新手使用xc3s50an-dk@liuger 开发板
  19. 《富爸爸,穷爸爸》书摘二
  20. 汉诺塔游戏《算法很美》

热门文章

  1. 新旧《西游记》人物造型大PK (转)
  2. 神经网络算法有哪几种,神经网络有哪几种算法
  3. 冷冰:Android核心分析系列
  4. MATLAB如何修改默认设置
  5. Golang-Beego(go mod)
  6. 计算机平时测试零分,计算机二级最全攻略 就快考试了不看等什么呢!
  7. Koa2实现电影微信公众号前后端开发学习视频
  8. 2021年日本互联网服务业发展现状:ZHD和LINE 的合并将改变日本互联网行业格局[图]
  9. JMeter递增加压
  10. sql server访问Excel97-2003 Excel2007