【基础算法】决策树演算法(Decision Tree)概述及Python实践

本文介绍了决策树算法的工作原理,包括ID3、C4.5和CART算法,并探讨了它们各自的优缺点。通过Python实践展示了如何构建决策树模型、计算信息熵和信息增益、以及如何进行决策树的保存和可视化。最后,利用决策树预测隐形眼镜类型,为机器学习初学者提供了清晰的指导。
摘要由CSDN通过智能技术生成

决策树演算法

原理:透过特征值构成树结构来分类,找出在划分数据集时找出哪个特征起到了决定性的作用。

目标:分类未知类别的案例,用以理解数据中所蕴涵的知识讯息

优点:计算复杂度不高,输出结果易于了解,对中间值的缺失不敏感、可以处理不相关的特征数据

缺点:可能有过度匹配的问题

适用数据:数值型和标称型

输入:未知类别的实例

输出:输入实例的类别


工作原理

从数据集中提取出一系列规则,在每次划分前找出在划分数据集时找出哪个特征起到了决定性的作用,依照找特征的规则不同而有不同的决策树算法(ID3、C4.5、CART),进而评估每个特征。若某个分支下的数据属于同一个类型则无需进一步对数据集分割;若不属于同一个类型则重复划分子集,直到所有具有相同类型的数据均在一个数据子集内,每个叶节点代表一个类别。

创建分支的伪代码函数createBranch():

检查数据集中的每个实例是否属于同一个分类:
If so return类标签
Else
		寻找划分数据集的最好特征
		划分数据集
		创建分支节点
				for 每个划分的子集
						调用函数createBranch并增加返回结果到分支节点中
		return 分支节点

划分数据集的大原则是:将无序的数据变得更加有序,在划分数据集前后信息发生的变化称谓"信息增益(Information Gain)",透过信息增益选信息增益最高的特征就是最好的划分选择。

熵(Entropy)为信息的期望值,为了计算熵,我们要计算所有类别中所有可能值包含的信息期望值。


ID3算法

ID3算法(Iterative Dichotomiser 3,迭代二叉树3代)是一种贪心算法,用来构造决策树。

对于有K个类别的分类问题来说,假定样本集合D中第 k 类样本所占的比例为pk(k=1,2,…,K),则样本集合D的信息熵定义为:
Ent(D)=- \sum_{k=1}^{K} p_k\cdot  log_{2}p_k
其中pk是选择该分类的概率。

信息增益(information gain)是针对一个特定的分支标准(branching criteria)T,计算原有数据的信息熵与引入该分支标准后的信息熵之差。

在这里插入图片描述
其中a是有V个不同取值的离散特征,使用特征a对样本集D进行划分会产生V个分支,Dv表示D中所有在特征a上取值为av的样本,即第v个分支的节点集合。|Dv||D||Dv||D|表示分支节点的权重,即分支节点的样本数越多,其影响越大。

ID3算法的基本思想是:首先计算出原始数据集的信息熵,然后依次将数据中的每一个特征作为分支标准,并计算其相对于原始数据的信息增益,选择最大信息增益的分支标准来划分数据,因为信息增益越大,区分样本的能力就越强,越具有代表性。重复上述过程从而生成一棵决策树,很显然这是一种自顶向下的贪心策略。


C4.5算法

对ID3算法的改进,C4.5克服了ID3的2个缺点:

  1. 用信息增益选择属性时偏向于选择分枝比较多的属性值,即取值多的属性
  2. 不能处理连续属性

C4.5算法不不直接使用信息增益,而是使用“增益率”(gain ratio)来选择最优的分支标准,增益率的定义如下:
在这里插入图片描述
在这里插入图片描述称作分支标准T的“固有值”(intrinstic value)。作为分支标准的属性可取值越多,则IV 的值越大。

需要注意的是: 增益率准则对可取值数目较少的属性有所偏好,
因此C4.5算法并不是直接选择增益率最大的属性作为分支标准,
而是先从候选属性中找出信息增益高于平均水平的属性,
再从中选择增益率最高的。

CART算法

CART(Classification And Regression Tree)可用于创建分类树和回归树。CART算法的特点:

  1. 二分(Binary Split):在每次判断过程中,都是对样本数据进行二分。CART算法是一种二分递归分割技术,把当前样本划分为两个子样本,使得生成的每个非叶子结点都有两个分支,因此CART算法生成的决策树是结构简洁的二叉树。由于CART算法构成的是一个二叉树,它在每一步的决策时只能是“是”或者“否”,即使一个feature有多个取值,也是把数据分为两部分
  2. 单变量分割(Split Based on One Variable):每次最优划分都是针对单个变量。
  3. 剪枝策略:CART算法的关键点,也是整个Tree-Based算法的关键步骤。剪枝过程特别重要,所以在最优决策树生成过程中占有重要地位。有研究表明,剪枝过程的重要性要比树生成过程更为重要,对于不同的划分标准生成的最大树(Maximum Tree),在剪枝之后都能够保留最重要的属性划分,差别不大。反而是剪枝方法对于最优树的生成更为关键。

CART的分支标准建立在GINI指数这个概念上,GINI指数主要是度量数据划分的不纯度,是介于0~1之间的数。GINI值越小&#

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值