python分类器分5类_Python机器学习之K近邻分类器
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近邻分类器相关推荐
- python根据品种散点图鸢尾花_python机器学习入门到精通--实战分析(三)
利用sklearn分析鸢尾花 前面两篇文章提到了机器学习的入门的几个基础库及拓展练习,现在我们就对前面知识点进行汇总进行一个简单的机器学习应用,并构建模型. 练习即假定一名植物专家收集了每一朵鸢尾花的 ...
- 机器学习 —— 基础整理(三)生成式模型的非参数方法: Parzen窗估计、k近邻估计;k近邻分类器...
本文简述了以下内容: (一)生成式模型的非参数方法 (二)Parzen窗估计 (三)k近邻估计 (四)k近邻分类器(k-nearest neighbor,kNN) (一)非参数方法(Non-param ...
- K近邻分类器(李飞飞CS231n学习笔记---lecture2:K最近邻算法)
在讲解K近邻分类器之前,我们先来看一下最近邻分类器(Nearest Neighbor Classifier),它也是K = 1时的K近邻分类器. 目录 最近邻分类器 定义 存在问题 K近邻分类器(KN ...
- 图片分类-K近邻分类器
你可以注意到当我们做预测的时候,如果仅仅用最近的图片的是远远不够的.其实,我们更常用的是k近邻分类器.这个思想非常简单.代替寻找训练集中最近的图片,我们会寻找k个最相近的图片,并且让他们再测试图片上投 ...
- k近邻分类器的使用:简单例子
#k近邻分类器的简单例子 from sklearn.neighbors import KNeighborsClassifier #创建一组数据x和它对应的标签y: x = [[0], [1], [2] ...
- python分类器鸢尾花怎么写_python机器学习基础教程-鸢尾花分类
一: 环境准备: 1.导入的库: importnumpy as npimportmatplotlib.pyplot as pltimportpandas as pdimport mglearn 2.导 ...
- python分类器鸢尾花怎么写_python机器学习基础教程:鸢尾花分类
首先导入必要的库: import numpy as np import matplotlib.pyplot as plt import pandas as pd import mglearn 复制代码 ...
- python 随机森林调参_Python机器学习实践:随机森林算法训练及调参-附代码
原标题:Python机器学习实践:随机森林算法训练及调参-附代码 文章发布于公号[数智物语] (ID:decision_engine),关注公号不错过每一篇干货. 来源 | 博客园 作者 | 战争热诚 ...
- python随机森林变量重要性_python机器学习之随机森林(七)
机器学习之随机森林,供大家参考,具体内容如下 1.Bootstraping(自助法) 名字来自成语"pull up by your own bootstraps",意思是依靠你自己 ...
最新文章
- R二项分布检验:双尾二项检验(Two-tailed Binomial Test)、左尾二项检验(Left-tailed Binomial Test)、右尾二项检验
- 诺基亚7plus更新android10,诺基亚发布第五次Android 10更新 诺基亚7+可升级
- n分频器 verilog_基于Verilog的分频器实现
- leetcode24. 两两交换链表中的节点
- [VJ][bfs]Catch That Cow
- C# WebApi Xml序列化问题解决方法:“ObjectContent`1”类型未能序列化内容类型“application/xml;charset=utf-8“的响应正文。...
- 运维必读:避免故障、拒绝背锅的 10 大原则!
- JVM的4种垃圾回收算法、垃圾回收机制与总结
- 【Git/Github学习笔记】Git常用命令(版本回退)
- 高仿爱鲜蜂购物应用源码
- 前后端通吃,vue大全Mark一下
- 工程量清单软件测试,输变电工程量清单投标标准化应用软件BQB2017基本操作方法...
- 金三银四找工作,真没你想的那么难!
- 有备无患!DBS高性价比方案助力富途证券备份上云
- 嵌入式UI架构设计漫谈
- CentOS6实验模板机搭建
- 图形学(7)反走样技术
- 新手使用xc3s50an-dk@liuger 开发板
- 《富爸爸,穷爸爸》书摘二
- 汉诺塔游戏《算法很美》