IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 人工智能 -> 决策树算法之鸢尾花特征分类可视化详解【机器学习】 -> 正文阅读

[人工智能]决策树算法之鸢尾花特征分类可视化详解【机器学习】

一.前言

1.1 本文原理

鸢尾花特征分类决策树算法可视化效果图如下:
在这里插入图片描述

决策树是一种常用的机器学习方法,它可以帮助我们解决分类和回归问题。该模型具有高度的可解释性。该模型符合人类的思维方式,是一种经典的树形结构。
熵:香农用“下降”一词来表示信息传输中不确定性的量化。降幅越大,不确定性越大,从这些信息中得出结论就越困难。
在这里插入图片描述
基尼系数比信息熵要简单很多,基尼系数的计算公式如下所示。
在这里插入图片描述

信息增益(ID3算法)以某特征划分数据集前后的熵的差值公式.
在这里插入图片描述
在这里插入图片描述
基尼指数的计算
在分类问题中,假设有k类,样本点属于k类的概率为PK,则概率分布的基尼指数定义为:
在这里插入图片描述
如果样本集D根据特征a分为D1和D2,则在特征a的条件下,集D的基尼指数定义为:
在这里插入图片描述
基尼指数基尼(D,a)表示不同特征a组中数据集D的不确定性。基尼指数越大,样本集的不确定性越大,这类似于熵的概念。

1.2 本文目的

  1. 使用scikit-learn机器学习包的决策树算法,使用4个特征对鸢尾花进行分类;
  2. 使用ID3算法对天气与踢球数据集进行手工计算,手写E(S, Temperature)、IG(S, Temperature) 、E(S, Humidity)、IG(S, Humidity)、E(S, Windy)、IG(S, Windy)的计算过程,拍照上传、粘贴图片到实验报告。(计算方法请参见附件PPT)
  3. 使用CART算法对天气与踢球数据集进行手工计算,手写Gini(S, Temperature)、Gini gain(S, Temperature) 、Gini(S, Humidity)、Gini gain(S, Humidity)、Gini(S, Windy)、Gini gain(S, Windy)的计算过程,拍照上传、粘贴图片到实验报告。(计算方法请参见附件PPT)
  4. (选做)安装决策树可视化控件GraphViz和pydotplus包,对鸢尾花分类结果生成决策树可视化图片;

二.实验过程

2.1 使用scikit-learn机器学习包的决策树算法,使用4个特征对鸢尾花进行分类;

老规矩,先引入load_iris模块,有150组鸢尾花特征数据,我们可以拿来进行学习特征分类。
如下代码:

from sklearn.datasets import load_iris
iris = load_iris()
X = iris.data
y = iris.target

引入决策树模块:

from sklearn import tree

根据特征分析,数据可分为根节点(初始节点)、中间节点和叶节点(无进一步可分离的节点)。

我们使用DecisionTreeClassifier创建一个决策树分类器,如下代码:

e = tree.DecisionTreeClassifier(criterion='entropy')

上文参数解释:

criterion : string,optional(default =“gini”)

特征选择标准,可选参数,默认是gini,可以设置为entropy。
基尼是基尼不纯,是将集合中的某个结果随机应用于某个数据项的预期错误率。这是一个统计概念。熵就是香农熵,一种基于信息论的思想。
选用全部特征值:

tree.fit(X,y)

输出训练得分和预测,如下代码:

print("决策树 training score: ",tree.score(X,y))
print("决策树 predict: ",tree.predict([[7,5,2,0.5],[7.5,4,7,2]]))

输出训练得分和预测运行截图如下:
在这里插入图片描述

2.2使用ID3算法对天气与踢球数据集进行手工计算,手写E(S, Temperature)、IG(S, Temperature) 、E(S, Humidity)、IG(S, Humidity)、E(S, Windy)、IG(S, Windy)的计算过程

手写图暂时不放了哈,字丑。(略)
记录一下PPT的样板计算过程如下:

E(S) = -[(9/14)log2(9/14) + (5/14)log2 (5/14)] = 0.94

在这里插入图片描述

本题目通过我的计算得如下结果:


E(S, Temperature)=0.911   IG(S, Temperature) =0.029
E(S, Humidity)=0.788    IG(S, Humidity)=0.152
E(S, Windy)=0.8932       IG(S, Windy)=0.048

最终,我们可以得到如下的决策树:
在这里插入图片描述

2.3 使用CART算法对天气与踢球数据集进行手工计算,手写Gini(S, Temperature)、Gini gain(S, Temperature) 、Gini(S, Humidity)、Gini gain(S, Humidity)、Gini(S, Windy)、Gini gain(S, Windy)的计算过程

手写图暂时不放了哈,字丑。(略)
记录一下PPT的样板计算过程如下:

Gini(S) = 1 - [(9/14)2 + (5/14)2] = 0.4591

在这里插入图片描述
本题目通过我的计算得如下结果:

Gini(S, Temperature)=0.4405   Gini gain(S, Temperature)=0.0185
Gini(S, Humidity)=0.3674   Gini gain(S, Humidity)=0.0916
Gini(S, Windy)=0.4286    Gini gain(S, Windy)=0.0304

从结果来看,天气预报(outlook)的基尼
增益为0.117,是最高的,因此我们选择天
气预报(outlook)作为我们的根节点。

2.4 安装决策树可视化控件GraphViz和pydotplus包,对鸢尾花分类结果生成决策树可视化图片;

先安装可视化控件GraphViz:
去官网下载安装即可:
官网:

http://www.graphviz.org/

在这里插入图片描述
安装一下pydotplus模块。
安装一下os模块。
先使用os模块,指定一下路径等等信息。

import os
os.environ["PATH"] += os.pathsep + 'C:/Program Files/Graphviz/bin/'
from six import StringIO
dot_data=StringIO()

使用tree.export_graphviz,可视化决策树,如下代码:

tree.export_graphviz(clf, out_file=dot_data
                             , feature_names=iris.feature_names,
                             class_names=iris.target_names,
                             filled=True,
                             rounded=True,
                             special_characters=True)
使用pydotplus模块设置图案格式等等信息,如下代码:
import pydotplus
graph =pydotplus.graph_from_dot_data(dot_data.getvalue())
from IPython.display import display,Image
display(Image(graph.create_png()))

指定输出格式,输出为pdf和png俩个

graph.write_png("tree_iris.png")
graph.write_pdf("tree_iris.pdf")

我们看一下效果图:

2.5 决策树算法之鸢尾花特征分类可视化效果图

在这里插入图片描述
在这里插入图片描述

三,收获

本次实验收获很大,学会了使用决策树算法4个特征对鸢尾花进行分类,使用ID3算法和CART算法对天气与踢球数据集进行手工计算,还学会了安装决策树可视化控件GraphViz和pydotplus包,对鸢尾花分类结果生成决策树可视化图片,本次实验让我对机器学习有了更加扎实的基础和理解。

  人工智能 最新文章
2022吴恩达机器学习课程——第二课(神经网
第十五章 规则学习
FixMatch: Simplifying Semi-Supervised Le
数据挖掘Java——Kmeans算法的实现
大脑皮层的分割方法
【翻译】GPT-3是如何工作的
论文笔记:TEACHTEXT: CrossModal Generaliz
python从零学(六)
详解Python 3.x 导入(import)
【答读者问27】backtrader不支持最新版本的
上一篇文章      下一篇文章      查看所有文章
加:2022-06-26 16:54:39  更:2022-06-26 16:56:17 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/26 2:32:33-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码