利用python决策树分析iris数据及树状图绘制
利用python决策树分析iris数据及树状图绘制
- 数据说明
- 数据划分
- 模型训练及评估
- 模型训练代码
- 模型大致评估
- 树状图绘制
- Graphviz安装配置及入门
- 代码汇总
- 基地部门公众号
数据说明
数据来源:https://archive.ics.uci.edu/ml/index.php
4个变量,分别为:
'feature_names': ['sepal length (cm)', 'sepal width (cm)', 'petal length (cm)', 'petal width (cm)']
分类类标有:
'setosa', 'versicolor', 'virginica'
三种花型import matplotlib.pyplot as plt import numpy as np from sklearn.datasets import load_iris from sklearn.tree import DecisionTreeClassifier #载入数据 iris=load_iris()
如果下载的数据是txt文件存储的,类似如下图,需要对分类标签数值化,用到函数LabelEncoder进行标签编码:
import pandas as pd from sklearn.tree import DecisionTreeClassifier import sklearn.preprocessing as sp from sklearn.model_selection import train_test_split import numpy as np data=pd.read_table(r'G:\机器学习\书籍阅读\python爬虫\iris.txt',sep=',',header=None) #数据导入 category = pd.Categorical(data[4]) lab = sp.LabelEncoder() #标签编码器 type_d = lab.fit_transform(data[4]) #用标签编码器对样本编码 X=list(zip(data[0],data[1],data[2],data[3]))
数据划分
方法一
利用Numpy库中的concatenate()函数,对数据进行选择。#没有一一列举,举一个使用方法 train_data=np.concatenate((np.array(X)[0:40,:],np.array(X)[50:90,:],np.array(X)[100:140,:]),axis=0)
方法二
导入模块,随机选择多少比例from sklearn.model_selection import train_test_split X_tr,X1_te,type_tr,type1_te= train_test_split(X, type_d,test_size=0.2) #训练集占80%,测试集占20%
模型训练及评估
模型训练代码
clf=DecisionTreeClassifier()
clf.fit(X_tr, type_tr)
score=clf.score(X1_te,type1_te) #正确率
pre_data=clf.predict(X1_te) #对测试集数据,预测其类别标签
模型大致评估
检测数据与预测数据比较
方法一:cop=sum(type1_te==pre_data) #求出模型预测测试集正确个数
方法二:#使用循环结构求解模型预测测试集正确个数 for i in range(len(pre_data)):if pre_data[i]==type1_te[i]:a=1compare.append(a)else:a=0compare.append(a)
性能评估
#输出准确率,召回率,F特征值和支持度 from sklearn import metrics from sklearn.tree import export_graphviz # 导入的是一个函数 a=metrics.classification_report(type1_te,pre_data) b=metrics.confusion_matrix(type1_te,pre_data)
树状图绘制
Graphviz安装配置及入门
安装包下载:graphviz-2.38.msi
with open('G:/机器学习/书籍阅读/iris.dot', 'w', encoding='utf-8') as f:f = export_graphviz(clf, out_file=f,filled=True,rounded=True) #filled=True,rounded=True :前面一个设置是填充颜色,后面一个是圆形框
使用下面这个软件打开iris.dot文件
决策树的效果图
代码汇总
"决策树"
#分类及回归树(CART)、ID3算法、C4.5算法,随机森林算法,梯度推进机(GBM)
import pandas as pd
from sklearn.tree import DecisionTreeClassifier
import sklearn.preprocessing as sp
from sklearn.model_selection import train_test_split
import numpy as np
data=pd.read_table(r'G:\机器学习\书籍阅读\python爬虫\iris.txt',sep=',',header=None)
category = pd.Categorical(data[4])
lab = sp.LabelEncoder() #标签编码器
type_d = lab.fit_transform(data[4]) #用标签编码器对样本编码
clf=DecisionTreeClassifier()
X=list(zip(data[0],data[1],data[2],data[3]))
#数据集划分 方法一
X_tr,X1_te,type_tr,type1_te= train_test_split(X, type_d,test_size=0.2)
#方法二划分数据集
train_data=np.concatenate((np.array(X)[0:40,:],np.array(X)[50:90,:],np.array(X)[100:140,:]),axis=0)
clf.fit(X_tr, type_tr)
score=clf.score(X1_te,type1_te)
pre_data=clf.predict(X1_te)
#检测数据与预测数据比较
#方法一
all=sum(type1_te==pre_data)
# 方法二
compare=[]
for i in range(len(pre_data)):if pre_data[i]==type1_te[i]:a=1compare.append(a)else:a=0compare.append(a)
#输出准确率,召回率,F特征值和支持度
from sklearn import metrics
from sklearn.tree import export_graphviz # 导入的是一个函数
a=metrics.classification_report(type1_te,pre_data)
b=metrics.confusion_matrix(type1_te,pre_data)
with open('G:/机器学习/书籍阅读/iris.dot', 'w', encoding='utf-8') as f:f = export_graphviz(clf, out_file=f,filled=True,rounded=True)
基地部门公众号
利用python决策树分析iris数据及树状图绘制相关推荐
- Tree Map:树状图——绘制COVID-19阵列图
Tree Map树状图, 可视化 饼状图用于表示每个数据在总体中的占比, 但当数据个体数量较多,规模差异较大时, 饼状图无法很好展现. 树状图是一种通过空间填充占比展示数据比率的可视化方式.能够很好的 ...
- word列表数据计算机,怎么把树状图的数据填成excel表格-谁会计算机啊,怎么把word里的表格数据转换成簇状......
excel中生成后的数据透视表如何把树形结构每层的空... 打开Word文档窗口,切换到"插入"功能区.在"插图"分组中单击"图表"按钮. ...
- MATLAB | 绘图复刻(三) | 分层聚类分析图:树状图+热图
好久不见啊,今天时绘图复刻第三期,这期画的比较难应该文章也不会太短... 前段时间发现公众号SCIPainter发布了一期名为<如何对基因和蛋白质的表达丰度进行相关性分析>,其中有一幅图很 ...
- MATLAB | 全网唯一,使用MATLAB绘制精致的环形树状图
绘制效果 请叫我平平无奇的绘图天才,这期一次性带来俩工具函数,分别是两层和三层的环形树状图,可以用来展示数据分类和层级: 理顺层级关系属实理得头秃,代码编写不易点个赞叭!! 由于工具函数过长,将被放在 ...
- Linux命令之pstree - 以树状图显示进程间的关系
2019独角兽企业重金招聘Python工程师标准>>> pstree命令以树状图显示进程间的关系(display a tree of processes).ps命令可以显示当前正在运 ...
- Java树状图展示的实现
Java树状图展示的实现 在项目中经常会遇到将数据以树状图的形式展现出来,如图: 有时候不仅要构建树结构,还要计算每个节点拥有的成员数量. 由于我们不能确定树的大小和层级就不能用常规的方法进行展示,我 ...
- MATLAB | 全网唯一,使用MATLAB绘制矩形树状图
绘制效果 全网唯一这四个字我都快说腻了,请叫我绘图小天才,又双叒叕写了一个工具函数发到了MATHWORKS,矩形树状图主要用于直观展示各个元素的分类和占比. 编写不易点个赞叭~~ 基本使用 需要准备一 ...
- 利用Python对NBA SportUV数据进行可视化及分析
利用Python对NBA SportUV数据进行可视化及分析 SportUV是2005年,由以色列计算机科学家Gal Oz和Miky Tamir 创立的,其实,最早这两位大牛是搞导弹跟踪和高级光学识别 ...
- 利用python简单分析抓包数据
利用python简单分析抓包数据 wireshark的数据 先读一行看看长啥样 import json data_file = r'E:\download\data.json' with open(d ...
最新文章
- ntrip获取源列表_Ntrip通讯协议怎么样?
- 解决java.sql.SQLException: Parameter number X is not an OUT parameter--转
- 最新:全球大型数据中心总数增至597个,是2015年数据中心数量的两倍
- Wget用法、参数解释的比较好的一个文章
- Flutter通过MethodChannel实现Flutter 与Android iOS 的双向通信
- 字符串过滤非数字c语言,【新手】【求思路】如何判断用户输入的字符串中是否含有非数字?...
- ADO.NET Entity Framework支持多Provider
- 水利水电水资源模拟试题3
- SPSS 相关系数例题、斯皮尔曼相关系数SPSS分析
- xp计算机定时关机怎么批销,(XP电脑定时自动关机命令.doc
- EditPlus中配置JSON格式化功能
- 徐思201771010132《面向对象程序设计(Java)》第十二周学习总结
- 像素测量工具_像素大厨PxCook for Mac(自动标注工具)中文免费版
- 面试题:搜狐百度 看1 复杂一点的面试题 笔试题
- python重装之前要卸载吗_关于fedroa下安全地卸载和重装python
- 关于结构化、半结构化、非结构化数据的理解
- 取消关闭计算机怎么弄,win7自动关机命令怎么设置和取消
- 【编译原理】Python语法分析LL(1)、LR(1)
- Argo CD系列视频图文版之安装 argocd 并运行示例
- 快速把照片做成MV,用什么软件好?抖音火爆效果制作
热门文章
- oracle biee catalog,Biee 迁移和刷新GUIDs
- 到底怎样刷牙才是正确的?
- ElementUI 消息提示组件Message
- SpringBoot 发送邮箱验证码(HTML模板)
- Color--颜色值以及颜色属性(学习记录)
- 带后台管理的超酷jquery+ajax幻灯相册php源码,带后台管理的超酷jQuery+ajax幻灯相册PHP源码...
- 相关的应用计算机辅助研究的论文,计算机辅助技术应用研究论文
- 2020年我国将研制出时速600公里高速磁浮样车
- 删除数组中的指定元素
- 使用Go语言ORM库worm访问PostgreSQL数据库