KNN实现鸢尾花分类

  • 一、导入相关库
  • 二、导入数据
    • 1.关于鸢尾花的数据
    • 2.删除Id(不需要的)数据
    • 3.分别利用花萼和花瓣的特征
  • 三、训练集及测试集
    • 1.花瓣
    • 2.花萼
  • 四、KNN算法
    • 1.花瓣
    • 2.花萼
    • 3.准确度结果
  • 五、数据可视化
    • 1.散点图
      • (1) 花萼
      • (2) 花瓣
    • 2.直方图
    • 3.小提琴图
    • 4.相关热力图

一、导入相关库

import numpy as np
import pandas as pd
import seaborn as sns
from matplotlib import pyplot as plt
from sklearn.linear_model import LogisticRegression
from sklearn.model_selection import train_test_split
from sklearn.neighbors import KNeighborsClassifier
from sklearn import svm
from sklearn import metrics
from sklearn.tree import DecisionTreeClassifier

二、导入数据

1.关于鸢尾花的数据


一共有150个数据

2.删除Id(不需要的)数据

iris.drop('Id',axis=1,inplace=True)

3.分别利用花萼和花瓣的特征

petal=iris[['PetalLengthCm','PetalWidthCm','Species']]
sepal=iris[['SepalLengthCm','SepalWidthCm','Species']]

三、训练集及测试集

1.花瓣

#花萼
train_p,test_p=train_test_split(petal,test_size=0.3,random_state=0)
train_x_p=train_p[['PetalWidthCm','PetalLengthCm']]
train_y_p=train_p.Species
test_x_p=test_p[['PetalWidthCm','PetalLengthCm']]
test_y_p=test_p.Species

2.花萼

train_s,test_s=train_test_split(sepal,test_size=0.3,random_state=0)
train_x_s=train_s[['SepalWidthCm','SepalLengthCm']]
train_y_s=train_s.Species
test_x_s=test_s[['SepalWidthCm','SepalLengthCm']]
test_y_s=test_s.Species

四、KNN算法

1.花瓣

model=KNeighborsClassifier()
model.fit(train_x_p,train_y_p)
prediction=model.predict(test_x_p)
print('The accuracy of the Petal is:',metrics.accuracy_score(prediction,test_y_p))

2.花萼

model=KNeighborsClassifier()
model.fit(train_x_s,train_y_s)
prediction=model.predict(test_x_s)
print('The accuracy of the Sepal is:',metrics.accuracy_score(prediction,test_y_s))

3.准确度结果

五、数据可视化

1.散点图

(1) 花萼

#花萼长度和宽度的关系,散点图
fig=iris[iris.Species=='Iris-setosa'].plot(kind='scatter',x='SepalLengthCm',y='SepalWidthCm',color='orange',label='Setosa')
iris[iris.Species=='Iris-versicolor'].plot(kind='scatter',x='SepalLengthCm',y='SepalWidthCm',color='blue',label='versicolor',ax=fig)
iris[iris.Species=='Iris-virginica'].plot(kind='scatter',x='SepalLengthCm',y='SepalWidthCm',color='green',label='virginica',ax=fig)
fig.set_xlabel("Sepal Length")
fig.set_ylabel("Sepal Width")
fig.set_title("Sepal Length VS Width")
fig=plt.gcf()
fig.set_size_inches(10,6)
plt.show()

(2) 花瓣

#花瓣的长度和宽度的关系,散点图
fig=iris[iris.Species=='Iris-setosa'].plot.scatter(x='PetalLengthCm',y='PetalWidthCm',color='orange',label='Setosa')
fig=iris[iris.Species=='Iris-versicolor'].plot.scatter(x='PetalLengthCm',y='PetalWidthCm',color='blue',label='versicolor',ax=fig)
fig=iris[iris.Species=='Iris-virginica'].plot.scatter(x='PetalLengthCm',y='PetalWidthCm',color='green',label='virginica',ax=fig)
fig.set_xlabel("Petal Length")
fig.set_ylabel("Petal Width")
fig.set_title("Petal Length VS Width")
fig=plt.gcf()
fig.set_size_inches(10,6)
plt.show()

2.直方图

#iris长度和宽度的分布,绘制直方图
iris.hist(edgecolor='black',linewidth=1.2)
fig=plt.gcf()
fig.set_size_inches(12,6)
plt.show()

3.小提琴图

#iris长度与宽度跟种类的关系,小提琴图
#小提琴图展示了数据随种类的长度跟密度。越窄的部分说明密度较低,越宽的部分说明数据密度高
plt.figure(figsize=(12,6))
plt.subplot(2,2,1)
sns.violinplot(x='Species',y='PetalLengthCm',data=iris)
plt.subplot(2,2,2)
sns.violinplot(x='Species',y='PetalWidthCm',data=iris)
plt.subplot(2,2,3)
sns.violinplot(x='Species',y='SepalLengthCm',data=iris)
plt.subplot(2,2,4)
sns.violinplot(x='Species',y='SepalWidthCm',data=iris)
plt.show()

4.相关热力图

#相关性热力图
plt.figure(figsize=(12,6))
sns.heatmap(iris.corr(),annot=True,cmap='cubehelix_r')
plt.show()

KNN算法原理总结:K近邻算法,给定一个训练数据集,对新的输入实例,在训练数据集中找到与该实例最近邻的K(自己确定)个实例,这K个实例的多数属于某类,就把该输入实例分类到这个类(label)下

KNN实现鸢尾花分类--数据可视化--根据花萼及花瓣分类--sklearn相关推荐

  1. 数据可视化笔记1 数据可视化简介(简史、分类、功能、目标)

    文章目录 1.什么是数据可视化 2.为什么要数据可视化 3.数据可视化简史 4.数据可视化的分类 5.数据可视化的功能 6.数据可视化的目标 7.数据可视化工具 1.什么是数据可视化 数据可视化: 创 ...

  2. 数据可视化实战——1.展示多级分类数据

    文章目录 前言 一.数据筛选 二.数据处理 2.1 数据来源统计 2.2 分级数据可视化 前言 大家好✨,这里是bio

  3. matlab鸢尾花的数据可视化,matplotlib可视化练习 -- 鸢尾花数据集

    matplotlib可视化练习 %matplotlib inline import matplotlib as mpl from matplotlib import pyplot as plt imp ...

  4. Python数据可视化seaborn(五) -- 分类统计图

    分类数据可视化 - 统计图 barplot() / countplot() / pointplot() import numpy as np import pandas as pd import ma ...

  5. 数据可视化(全彩)(大数据丛书,首次全面细致地梳理了可视化理论,方法、工具与应用案例。马匡六教授、石教英教授鼎力推荐,十二五国家重点图书出版规划项目)...

    大数据丛书 数据可视化(全彩)(大数据丛书,首次全面细致地梳理了可视化理论,方法.工具与应用案例.马匡六教授.石教英教授鼎力推荐,十二五国家重点图书出版规划项目) 陈为  沈则潜等编著 ISBN 97 ...

  6. python数据可视化实现步骤,Python 代码轻松实现数据可视化的5 种使用方法

    散点图 散点图非常适合展示两个变量之间的关系,因为你可以直接看到数据的原始分布. 如下面第一张图所示的,你还可以通过对组进行简单地颜色编码来查看不同组数据的关系.想要可视化三个变量之间的关系? 没问题 ...

  7. 数据可视化设计师必备的图表规范指南

    一.你在工作中是否会为了如何选用可视化图表而苦恼? 在企业大数据.后台管理面板.金融行业等与数据有关的UI设计中,数据可视化设计是必不可少而且非常重要. 但是很多设计师不懂可视化当中不同用途的图表规范 ...

  8. 基于html5的数据可视化实现方法研究,基于HTML5的数据可视化实现方法研究

    信息科技 Information Technology 基于HTML5的数据可视化实现方法研究 高科同济大学电子与信息学院,上海 201804摘要 HTML5的出现,为数据可视化提供了新的实现方法.本 ...

  9. 分形、大自然的分形几何、数据可视化、Python绘图

    分形.大自然的分形几何.数据可视化.Python绘图 中国传统中的『分形』 大自然的分形几何 数据可视化 本系列采用turtle.matplotlib.numpy这三个Python工具,以分形与计算机 ...

最新文章

  1. Windows 7运行命令大全
  2. Sprint(第十天11.23)
  3. swoole 简单的聊天室
  4. 查看网口命令_20个常用Linux命令
  5. 网易云信携手小天才电话手表 打造视频通话体验的行业标杆
  6. 如何使用PHP编写daemon process
  7. 三、项目经理的角色【PMP 】
  8. HDU 5763 Another Meaning KMP+DP
  9. c程序100例第3题
  10. FullScreen
  11. C# 真正完美的 汉字转拼音
  12. 用 VeraCrypt 加密闪存盘
  13. 用Python搓一个太阳系
  14. result returns more than one elements 解决办法
  15. Nanopore牛津纳米孔测16S学习笔记
  16. 魂武者服务器维护,《魂武者》8月16日停机更新公告
  17. 九度1001 A+B for Matrices
  18. Stack Overflow 上 250W 浏览量的一个问题:你对象丢了
  19. WPF三个必备框架的安装
  20. AIoT方案|机智云NFC “碰一碰”智慧家庭一碰配网解决方案

热门文章

  1. 清华大学计算机系毕业论文 android,计算机专业毕业论文完整版.doc
  2. 抖音引流微信11种方法
  3. 使用BeautifulSoup解析html入门
  4. 淘宝网大数据解决之道
  5. 数据结构c语言编程程序,图书管理程序(数据结构c语言实现增删改查)
  6. 默纳克服务器显示乱码,默纳克服务器如何查故障
  7. 写给迷茫的你:九年京东测试工程师的职业规划思考!
  8. 登录百度云会员账号后如何直接下载资源?
  9. linux达芬奇安装教程,达芬奇数字媒体片上系统的架构和Linux启动过程
  10. 【老生谈算法】matlab实现census算法源码——census算法