当前位置:   article > 正文

决策树(Decision Tree)--原理及Python代码实现_试编程实现基于基尼指数进行划分选择的决策树算法,为表 4.2 中数据生成预剪枝、后

试编程实现基于基尼指数进行划分选择的决策树算法,为表 4.2 中数据生成预剪枝、后
友情提示:仔细阅读、用笔计算,才能更好的理解。
  • 1

1. 基本流程

决策树(Decision Tree)是一类常见的机器学习方法。一般的,一颗决策树包含一个根节点、若干个内部节点何若干个叶节点。西瓜问题的决策树如下:
dt
决策树学习的目的是为了产生一颗泛化能力强,即处理未见实例能力强的决策树,其基本流程遵循简单且直观的“分而治之”(divide—and—conquer)策略。决策树学习的基本算法如图所示:
dt_algorithm
决策树是由递归生成的,再决策树基本算法中,有三种情形会导致递归返回:
(1)当前结点包含的样本全属于同一类别,无需划分;
(2)当前属性集为空,或是所有样本在所有属性上取值相同,无法划分;
(3)当前结点包含的样本集合为空,不能划分。

2. 划分选择

决策树学习的关键是从属性集中选择最优的划分属性。一般而言,随着划分过程不断进行,我们希望决策树的分支结点所包含的样本尽可能属于同一类别,即结点的“纯度”(purity)越来越高。

2.1. 信息增益

ID3(Iterative Dichotomiser—迭代二分器)就是以信息增益为准则来选择划分属性。“信息熵”(information entropy)是度量样本集合纯度中常用的一种指标。
假设当前样本集合D中第k类样本所占的比例为Pk(k = 1,2,…,|y|),信息熵的计算公式如图所示:
information_entropy
在对样本集D进行划分时,需要考虑样本集的不同离散属性a(如:西瓜色泽包含青绿、乌黑、浅白属性),不用的分支结点中样本数越多的影响越大,于时可计算用属性a对样本D进行划分所获得的“信息增益”(information gain),公式如下:
information_gain
决策树的生成
下面以表4.1中的西瓜数据2.0为例,用以学习一棵能预测没剖开的是不是好瓜的决策树:
data2.0
显然,|y|=2。
step1
在决策树开始时,根结点包含D中的所有样例,其中正例占p1=8/17,反例占p2=9/17。根据公式得到根节点的信息熵为:
root_ie
step2
计算出当前属性集合{色泽,根蒂,敲声,纹理,脐部,触感}中每个属性的信息增益。以属性“色泽”为例,它有3个可能的取值{青绿,乌黑,浅白}。

  1. "色泽"属性有3个子集,记为D1(色泽=青绿),D2(色泽=乌黑),D3(色泽=浅白)。
  2. D1中包含编号{1,4,6,10,13,17}6个样例,其中正例p1=3/6,p2=3/6;
    D2中包含编号{2,3,7,8,9,15}6个样例,其中正例p1=4/6,p2=2/6;
    D3中包含编号{5,11,12,14,16}5个样例,其中正例p1=1/5,p2=4/5。
  3. 计算用“色泽”划分之后所获得的3个分支结点的信息熵seze_ie
  4. 计算出属性“色泽”的信息增益
声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/IT小白/article/detail/331061
推荐阅读
相关标签
  

闽ICP备14008679号