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. CentOS 5.5 挂载windows ntfs 文件系统
  2. python-MySQLdb-练习
  3. 患者信息可视化及关联规则可视化
  4. Google 的 QUIC 华丽转身成为下一代网络协议: HTTP/3.0
  5. 图:DFS(深度优先搜索)图解分析代码实现
  6. 阿里云mysql强制走索引_MYSQL中常用的强制性操作(例如强制索引)
  7. linux主机ftp传输文件效率,FTP和TCP的文件传输效率对比测试分析
  8. 硬件基础 —— 二极管
  9. “一个千古绝伦的大智者”莱布尼茨
  10. Flask笔记-session安全问题(避免任务重复提交)
  11. Linux终端下打印带颜色的信息
  12. python编程胡牌将是什么意思_OpenCV+Python识别车牌和字符分割的实现
  13. get请求中params参数的使用
  14. Web下的整体测试 --性能测试及优化思路
  15. 西门子200Smart modbus RTU 双主站程序 西 门子200Smart modbus RTU 程序封装赋值即用,配置详细说明
  16. opencv矩阵转eigen_矩阵迹运算介绍及C++/OpenCV/Eigen的三种实现
  17. SPI驱动SX1278模块1-网关.SPI头文件,c文件,sx1278头文件和c文件,主函数
  18. Django应用与分布式路由
  19. Three.js加载动画模型并控制播放
  20. 项目经理职业生涯的五道坎

热门文章

  1. 系统工程原理(持续更新):3.方法论--霍尔“三维结构”模型
  2. iOS App托管和分发搭建
  3. 西游记中人物对应PMP项目管理中的角色分析
  4. 博弈论基础知识: 巴什博奕+斐波那契博弈+威佐夫博奕+尼姆博弈(及Staircase)
  5. Poj1704:staircase nim【博弈】
  6. java格式化mac地址,java格式化mac地址(加分隔符,去分隔符)
  7. ATM维护人员教大家正确使用银行卡和取款机
  8. 三相电流滞环跟踪PWM控制
  9. amd处理器更新zen4服务器芯片,AMD Zen4接口AM5曝光:改用LGA触点式、告别脆弱的针脚...
  10. 用python实现多线程爬取影视网站全部视频方法【笔记】