本文主要是介绍决策树:ID3、C4.5、CART算法与Python实现,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
一、决策树的基本概念
决策树(Decision Tree)算法是一类常用的机器学习算法,在分类问题中,决策树算法通过样本中某一些属性的值,将样本划分到不同的类别中。
决策树跟人在做决策的思考方式很想像,先考虑重点选项,不符合则可最优先做出决策。
1. 划分标准
在决定是否去见相亲对象时,该女提出了4个特征来做决策,这些特征在做决策的过程中是存在一定顺序的,首先选择了相貌,可能是因为她是外貌协会,这个通不过就不打算再考虑后续的特征了,决策性较强。
在决策树的算法中,通常用标准来确定特征的先后顺序:信息增益(Information Gain)、增益率(Gain Ratio)和基尼指数(Gini Index)。
首先介绍一下 熵(Entropy) 的概念,熵是度量样本集合纯度最常用的指标,对于包含m个训练样本的数据集:D{(X(1),y(1)),…,(X(m),y(m))}, 在数据集D中,第k类的样本所占的比例为pk,则数据集D的信息熵为:
E n t r o p y ( D ) = − ∑ k = 1 k p k l o g 2 p k Entropy(D) =- \sum_{k=1}^k p_k\space log_2\space p_k Entropy(D)=−k=1∑kpk log2 pk
其中,k表示数据集D中类别的个数,pk为类别k的数量占数据集总数量的比例。
假定有10个相亲对象,各特征值如下:
相关对象 | 相貌 | 才华 | 羽毛球 | 游泳 | 是否去见 |
---|---|---|---|---|---|
1 | 帅 | 会识字 | 小白 | 热爱 | 不去 |
2 | 不帅 | 会识字 | 教练级 | 热爱 | 不去 |
3 | 不帅 | 会识字 | 小白 | 早鸭子 | 不去 |
4 | 不帅 | 才华横溢 | 小白 | 热爱 | 不去 |
5 | 不帅 | 会识字 | 小白 | 热爱 | 不去 |
6 | 不帅 | 会识字 | 小白 | 早鸭子 | 不去 |
7 | 帅 | 才华横溢 | 教练级 | 热爱 | 去 |
8 | 不帅 | 会识字 | 小白 | 早鸭子 | 不去 |
9 | 不帅 | 会识字 | 小白 | 热爱 | 不去 |
10 | 不帅 | 会识字 | 教练级 | 早鸭子 | 不去 |
以如上数据为例,其信息熵为:
E n t r o p y ( D ) = − ∑ k = 1 2 p k l o g 2 p k = − ( 1 10 l o g 2 1 10 + 9 10 l o g 2 9 10 ) = 0.469 Entropy(D) =- \sum_{k=1}^2 p_k\space log_2\space p_k=-({1 \over 10} log_2{1 \over 10} + {9 \over 10} log_2{9 \over 10}) =0.469 Entropy(D)=−k=1∑2pk log2 pk=−(10
这篇关于决策树:ID3、C4.5、CART算法与Python实现的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!