机器学习-决策树

引言

本次我们将介绍决策树,假如作为已方的你明天马上就要被甲方领导演示和审判了,这时候你和你的甲方小员工十分紧张,这时候你们一拍大腿!我们把这个程序写死吧,先蒙混过关再说,决策树就类似于这种写死的方法,通过一步一步的判断,把符合每一步决定的结果进行穷举,这样就能得到预测结果。接下来我们就开始介绍它的原理。

信息熵和信息增益

信息熵

一件事情发生的结果往往有几种,发生哪种结果的不确定性就是信息熵。
举个栗子:比如抛硬币,我们假设抛出正面的概率是1,那么反面的概率是0,那么抛硬币这件事情就是一件确定的事情,它的信息熵应该很小。假设抛出正面和反面的概率都是0.5,那么这个事件的不确定性就非常大,这是信息熵就比较大。因此信息熵就是来量化这种不确定性!
接下来我们给出信息熵的公式:
H ( x ) = − ∑ x p ( x ) log ⁡ b p ( x ) H(x) = - \sum\limits_x {p(x){{\log }_b}p(x)} H(x)=xp(x)logbp(x)
其中x是该事件发生的结果,p(x)就是发生某种结果的概率,将所有情况的自信息进行求和就是信息熵!
这样我们就可以算出上述例子中抛硬币的信息熵,假设抛出正面概率是1,那么信息熵计算出来为0;如果正反面概率相同,信息熵最大!是 log ⁡ b 2 {\log _b}2 logb2
因此进一步,如果某件事情发生的结果有x种,那么这件当每种结果发生概率相同时,其信息熵(不确定性)最大,此时其信息熵为 log ⁡ b ∣ x ∣ {\log _b}|x| logbx
具体而言,将样本y看作随机变量,各个类别在样本集合D种出现的概率为 p k ( k = 1 , 2 , 3 , . . . . . . ∣ y ∣ ) {p_k}(k = 1,2,3,......|y|) pk(k=1,2,3,......∣y),那么样本D的信息熵(b=2)为:
E n t ( D ) = − ∑ k = 1 ∣ y ∣ p k log ⁡ 2 p k Ent(D) = - \sum\limits_{k = 1}^{|y|} {{p_k}{{\log }_2}{p_k}} Ent(D)=k=1ypklog2pk

信息增益

举西瓜书中的例子:我们现在有一堆西瓜样本,其中好瓜的数量和坏瓜的占比就叫做样本的纯度,通过信息熵可以计算出,全是好瓜那么样本就非常纯!但是如果样本是一般坏瓜一半好瓜,那么就非常不纯。
但是我们现在挑出一个属性,比如色泽,那么色泽有乌黑和浅白俩个类,通过其中乌黑中好瓜和坏瓜占比求出色泽=乌黑的信息熵,以及色泽=浅白的信息熵,再将这两个信息熵乘以其在西瓜样本集中的占比就可以求出按照色泽样本划分的信息熵(也就是纯度)!那么将划分之前的信息熵减去划分之后的信息熵,就叫做信息增益(也就是提升的纯度)!
G a i n = E n t ( D ) − ∑ v = 1 ∣ v ∣ ∣ D v ∣ ∣ D ∣ E n t ( D v ) Gain = Ent(D) - \sum\limits_{v = 1}^{|v|} {{{|{D^v}|} \over {|D|}}Ent({D^v})} Gain=Ent(D)v=1vDDvEnt(Dv)
其中v代表所选属性的取值,比如上述例子中我们选取的属性是色泽,那么v的取值就有乌黑和浅白两种。 ∣ D v ∣ ∣ D ∣ {{{|{D^v}|} \over {|D|}}} DDv就是该取值在样本D中的占比。

决策树原理

ID3决策树

原理:以信息增益作为准则来划分属性的决策树!
算法:其算法的模型如下:
a ∗ = arg ⁡ max ⁡ a ∈ A G a i n ( D , a ) {a_*} = \mathop {\arg \max }\limits_{a \in A} Gain(D,a) a=aAargmaxGain(D,a)
其中a*代表最优划分属性;A代表特征空间A=(a1,a2,a3),比如西瓜的大小,色泽,敲声;
具体的例子参考西瓜书4.2.1节。

C4.5决策树

举个栗子:举个有趣的例子,西瓜样本中是存在序号的,假如我们把序号也作为属性,那么取到每个序号的概率是一样的,假设有20个西瓜样本,那么其信息熵就是之和为0,信息增益最大。所以信息增益准则其实是偏向于取值多的属性。
那么怎么规避这一问题呢?我们采用增益率而不是信息增益作为尊则!
增益率
G a i n _ r a t i o ( D , a ) = G a i n ( D , a ) I V ( a ) Gain\_ratio(D,a) = {{Gain(D,a)} \over {IV(a)}} Gain_ratio(D,a)=IV(a)Gain(D,a)
其中IV(a)为:
I V ( a ) = − ∑ v = 1 v ∣ D v ∣ ∣ D ∣ log ⁡ 2 ∣ D v ∣ ∣ D ∣ IV(a) = - \sum\limits_{v = 1}^v {{{|{D^v}|} \over {|D|}}{{\log }_2}{{|{D^v}|} \over {|D|}}} IV(a)=v=1vDDvlog2DDv
其称为属性a的固有值,并且a的可能取值数目越多(即v越大),那么该值也越大!

CART决策树

原理:采用基尼系数作为判断准则,使用基尼系数作为纯度的度量
算法原理
基尼值如下所示:
在这里插入图片描述
其中y代表类别,比如好瓜和坏瓜!该系数反映的是随机从D中抽取两个样本,其标记不一致的概率,所以该系数越小,D纯度越高!
比如在西瓜书4.3.1,D中色泽=青绿的瓜有6个,其中好瓜4个,坏瓜2个,Gini(D,色泽=青绿)=1-4/64/6-2/62/6
基尼系数在这里插入图片描述
各个属性的取值只能为2,所以在候选属性A中,选择基尼指数最小的属性作为最优的划分属性。比如西瓜书中根据4.2.3结果,已知D中色泽=青绿的瓜有6个,其中好瓜4个,坏瓜2个;色泽≠青绿的瓜有11个,其中好瓜5个,坏瓜5个: G i n i _ i n d e x = ∣ 6 ∣ ∣ 17 ∣ × ( 1 − ( 2 6 ) 2 − ( 4 6 ) 2 ) + ∣ 11 ∣ ∣ 17 ∣ × ( 1 − ( 5 11 ) 2 − ( 6 11 ) 2 ) Gini\_index = {{|6|} \over {|17|}} \times (1 - {({2 \over 6})^2} - {({4 \over 6})^2}) + {{|11|} \over {|17|}} \times (1 - {({5 \over {11}})^2} - {({6 \over {11}})^2}) Gini_index=∣17∣∣6∣×(1(62)2(64)2)+∣17∣∣11∣×(1(115)2(116)2)

决策树算法是机器学习中常用的一种算法,它通过构建一棵树形结构来进行分类或回归任务。决策树算法有多种不同的变体,其中包括ID3算法、C4.5算法和基本决策树算法。 ID3算法是最早提出的一种决策树算法,它的核心思想是通过计算信息增益来选择最佳的特征进行节点的划分。具体步骤是:从根节点开始,计算每个特征的信息增益,选择信息增益最大的特征作为当前节点的划分特征,然后根据该特征的不同取值建立子节点,再对子节点递归地应用以上步骤,直到所有的特征信息增益很小或没有特征可选为止。 C4.5算法是对ID3算法的改进,它引入了信息增益率(比)来选择特征,解决了ID3算法对于取值较多的特征有偏好的问题。与ID3算法相似,C4.5算法也使用递归的方式构建决策树,但在选择划分特征时,使用信息增益率作为选择的依据。 基本决策树算法是决策树算法的一种简化版,它没有引入信息增益或信息增益率,而是通过计算基尼指数来选择最佳的划分特征。基尼指数衡量了一个特征的不纯度,选择基尼指数最小的特征进行划分。基本决策树算法相对于ID3算法和C4.5算法更简单直观,但在某些情况下可能会有一定的性能损失。 总的来说,决策树算法通过构建一棵树形结构来进行分类或回归任务,其中ID3算法、C4.5算法和基本决策树算法是其中的三种常见变体。每种算法都有其特点和优缺点,选择适合具体问题的算法可以提高算法的性能和准确性。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* *2* *3* [机器学习算法(3)之决策树算法](https://blog.csdn.net/qq_20412595/article/details/82048795)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 100%"] [ .reference_list ]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值