机器学习——决策树的三种学习方法

目录

ID3

C4.5

CART


我们知道决策树学习采用的是自顶向下的递归方法,其基本思想是以信息熵为度量构造一颗熵值下降最快的树,到叶子节点处的熵值为零,此时每个叶子结点中的实例都属于同一类。

建立决策树的关键,即在当前状态下选择哪一个属性作为分类依据。根据不同的目标函数,建立决策树主要有以下三种算法。

  • ID3(Iterative Dichotomiser)
  • C4.5
  • CART(Classification And Regression Tree)

ID3

ID3算法的核心思想就是以信息增益来度量特征的选择,选择分裂后信息增益最大的特征进行分裂。信息增益表示得知特征A的信息而使得类X的信息的不确定性减少的程度。

要理解信息增益我们先从信息熵的定义开始。信息熵是香农借鉴热力学的概念提出的对信息进行描述的概念,指信息中排除了冗余后的平均信息量。不确定函数f应满足两个条件:(1)f是事情发生概率P的减函数;(2)两个独立符号所产生的不确定性等于各自不确定性之和。所以有f(P)=log(\frac{1}{P})=-logP,信息源的平均不确定性应当为单个符号不确定性-log(P_{i})的统计平均值(E),可称为信息熵,即

                                                                              H(u)=E[-logP_{i}]=-\sum_{i=1}^{n}P_{i}logP_{i}

H(Y|X)=H(X,Y)-H(X)被称为条件熵,表示X发生的前提下Y的熵,当熵和条件熵中的概率🈶数据估计(特别是极大似然估计)得到时,所对应的熵和条件熵分别成为经验熵经验条件熵。定义:特征A对训练数据集D的信息增益g(D,A),定义为集合D的经验熵H(D)的特征A给定条件下D的经验条件熵H(D|A)之差,即g(D,A)=H(D)-H(D|A),显然,这即为训练数据集D和特征A的互信息。

推导条件熵的定义式

                                                                     H(Y|X)=H(X,Y)-H(X)\\ =-\sum_{x,y}p(x,y)log(x,y)+\sum_{x}p(x)logp(x)\\ =-\sum_{x,y}p(x,y)logp(x,y)+\sum_{x}(\sum_{y}p(x,y))logp(x)\\ =-\sum_{x,y}p(x,y)logp(x,y)+\sum_{x,y}p(x,y)logp(x)\\ =-\sum_{x,y}p(x,y)log\frac{p(x,y)}{p(x)}\\ =-\sum_{x,y}p(x,y)log(p(y|x)

信息增益的计算方法

设训练数据集为D,|D|表示样本个数;

设有K个类C_{k},k=1,2...K,C_{k}为属于类C_{k}的样本个数,有:\sum_{k} |C_{k}|=|D|

设特征A有n个不同的取值{{a_{1},a_{2}...a_{n}}},根据特征A的取值将D划分为n个子集D_{1},D_{2}...D_{n},|D_{i}|D_{i}的样本个数,有:\sum_{i}|D_{i}|=|D|

记子集D_{i}中属于类C_{k}的样本的集合为D_{ik},|D_{ik}|D_{ik}的样本个数。

计算数据集D的经验熵:

                                                                                       H(D)=-\sum_{k=1}^{K}\frac{C_{k}}{D}log\frac{C_{k}}{D}

计算经验条件熵H(D|A):

                                                                      H(D|A)=-\sum_{i,k}p(D_{k},A_{i})logp(D_{k}|A_{i}) \\=-\sum_{i,k}p(A_{i})p(D_{k}|A_{i})logp(D_{k}|A_{i})\\ =-\sum_{i=1}^{n}\sum_{k=1}^{k}p(A_{i})p(D_{k}|A_{i})logp(D_{k}|A_{i}) \\=-\sum_{i=1}^{n}p(A_{i})\sum_{k=1}^{k}p(D_{k}|A_{i})logp(D_{k}|A_{i}) \\=-\sum_{i=1}^{n}\frac{|D_{i}|}{D}\sum_{k=1}^{k}\frac{|D_{ik}|}{D_{i}}log\frac{|D_{ik}|}{D_{i}}

计算特征A的信息增益:

                                    g(D,A)=H(D)-H(D|A)=-\sum_{k=1}^{K}\frac{C_{k}}{D}log\frac{C_{k}}{D}-\sum_{i=1}^{n}\frac{|D_{i}|}{D}\sum_{k=1}^{k}\frac{|D_{ik}|}{D_{i}}log\frac{|D_{ik}|}{D_{i}}

遍历所有特征,选择信息增益最大的特征作为当前的分类特征。

优点:决策树ID3算法易于理解,能处理数据型的也能处理常规型的数据,还可以在相对较短的时间内能够对大型的数据集做出可行且较好的结果。

缺点:决策树ID3算法比较偏向于选择属性值多的类别。

C4.5

ID3偏向于选择属性值多的特征类别,这样会导致每个属性的样本数较少,此时噪声对模型的影响会更为显著,容易产生过拟合。为解决这一问题,引入信息增益率来作为度量进行特征选择,信息增益率公式为:

g_{r}(D,A)=g(D,A)/H(A)

公式中将信息增益除以所对应特征的信息熵来表示信息增益率,若特征属性值较多则H(A)较大,信息增益率比信息增益小,能够很好的抑制模型选择属性值多的特征。

CART

CART是一棵二叉树,采用二元切分法,每次把数据切成两份,分别进入左子树、右子树。而且每个非叶子节点都有两个孩子,所以CART的叶子节点比非叶子多1。相比ID3和C4.5,CART应用要多一些,既可以用于分类也可以用于回归。CART分类时,使用基尼指数(Gini)来选择最好的数据分割的特征,gini描述的是纯度,与信息熵的含义相似。CART中每一次迭代都会降低GINI系数。公式如下:

                                                                                    Gini(p)=\sum_{k=1}^{K}p_{k}(1-p_{k})\\ =1-\sum_{k=1}^{K}p_{k}^{2}\\ =1-\sum_{k=1}^{K}(\frac{|C_{k}|}{|D|})^2

Variance方差也是衡量集合中样本不纯度的一种指标,因为只是针对连续值,因此只能用于处理回归决策树。假设集合D中每个样本的值为y_{i},那么集合D的Variance方差则定义为:

                                                                Variance(D)=\frac{1}{N}\sum_{i=1}^{|D|}(y_{i}-\frac{1}{|D|}\sum_{j=1}^{|D|}y_{i})^2\\ =\frac{1}{|D|}(\sum_{i=1}^{|D|}y_{i}^2-\frac{1}{N}(\sum_{i=1}^{|D|}y_{i})^2)

一个特征的信息增益(率)/gini指数越大,表明属性对样本的熵减少能力更强,这个属性使得数据由不确定性变成确定性的能力越强。

 

  • 1
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
决策树算法是一种广泛应用于分类和回归的机器学习算法,它基于树形结构对样本进行分类或预测。决策树算法的主要思想是通过一系列的判断来对样本进行分类或预测。在决策树中,每个节点表示一个属性或特征,每个分支代表该属性或特征的一个取值,而每个叶子节点代表一个分类或预测结果。 决策树算法的训练过程主要包括以下步骤: 1. 特征选择:根据某种指标(如信息增益或基尼系数)选择最优的特征作为当前节点的分裂属性。 2. 决策树生成:根据选择的特征将数据集分成若干个子集,并递归地生成决策树。 3. 剪枝:通过剪枝操作来提高决策树的泛化性能。 决策树算法的优点包括易于理解和解释、计算复杂度较低、对缺失值不敏感等。但是,决策树算法也存在一些缺点,如容易出现过拟合、对离散数据敏感等。 下面是一个决策树算法的案例:假设我们要根据一个人的年龄、性别、教育程度和职业预测其收入水平(高于或低于50K)。首先,我们需要将这些特征进行编码,将其转换为数值型数据。然后,我们可以使用决策树算法对这些数据进行训练,并生成一个决策树模型。最后,我们可以使用该模型对新的数据进行分类或预测。例如,根据一个人的年龄、性别、教育程度和职业,我们可以使用决策树模型预测该人的收入水平。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值