机器学习-决策树

1.算法原理

决策树是一个类似于流程图的树结构,分支节点表示对一个特征进行测试,根据测试结果进行分类,树叶节点代表一个类别。即,决策树:从根节点开始一步步走到叶子节点(决策)。

2.信息熵

一条信息的信息量和它的不确定性有直接关系。一个问题不确定性越大,要搞清楚这个问题,需要了解的信息就越多,其信息嫡就越大。
信息嫡的计算公式为:
H ( X ) = − ∑ x ∈ X P ( x ) log ⁡ 2 P ( x ) H(X)=-\sum_{x \in X} P(x) \log _{2} P(x) H(X)=xXP(x)log2P(x)其中,P(x)表示事件x出现的概率。例如,一个盒子里分别有5个白球和5个红球,随机取出一个球。问:这个球是红色的还是白色的?这个问题的信息量多大呢?由于红球和白球出现的概率都是1/2,代入信息熵公式,可以得到其信息熵为:
H ( X ) = − ( 1 2 log ⁡ 2 1 2 + 1 2 log ⁡ 2 1 2 ) = 1 H(X)=-\left(\frac{1}{2} \log _{2} \frac{1}{2}+\frac{1}{2} \log _{2} \frac{1}{2}\right)=1 H(X)=(21log221+21log221)=1当我们要构建一个决策树时,应该优先选择哪个特征来划分数据集呢?答案是:遍历所有的特征,分别计算,使用这个特征划分数据集前后信息熵的变化值,然后选择信息熵变化幅度最大的那个特征,来优先作为数据集划分依据。即选择信息增益最大的特征作为分裂节点。
把信息熵和概率的函数关系:在这里插入图片描述
从这个函数关系可以看出来,当概率P(x)越接近0或越接近1时,信息熵的值越小,其不确定性越小,即数据越“纯”。熵是衡量一组数据是否纯的指标。典型地,当概率值为1时,此时数据是最“纯净”的, 因为只有一种类别的数据,已经消除了不确定性,其信息熵为0。我们在特征选择时,选择信息增益最大的特征,在物理上,即让数据尽量往更纯净的方向上变换。因此,我们得出,信息增益是用来衡量数据变得更有序、更纯净的程度的指标。

3.决策树的创建

决策树的创建基本上分以下步骤:
1)计算数据集划分前的信息熵。
2)遍历所有未作为划分条件的特征,分别计算根据每个特征划分数据集后的信息熵。
3)选择信息增益最大的特征,并使用这个特征作为数据划分节点来划分数据。
4)递归地处理被划分后的所有子数据集,从未被选择的特征里继续选择最优数据划分特征来划分子数据集。
递归过程什么时候结束呢?一般来讲,有两个终止条件:
1)所有的特征都用完了,即没有新的特征可以用来进一步划分数据集。
2)划分后的信息增益足够小了,这个时候就可以停止递归划分了。针对这个停止条件,需要事先选择信息增益的门限值来作为结束递归的条件。

  • 离散化
    如果一个特征是连续值怎么办呢?
    这个时候一个用离散化来建模,需要对数据进行离散化处理,离散化成几个类别。
  • 正则式
    最大化信息增益来选择特征,在决策树的构建过程中,容易造成优先选择类别最多的特征来进行分类。
    举一个极端的例子,我们把某个产品的唯一标识符ID作为特征之一加入到数据集中,那么构建决策树时,就会优先选择产品ID来作为划分特征,因为这样划分出来的数据,每个叶子节点只有一个样本,划分后的子数据集最“纯净”,其信息增益最大。
    这不是我们希望看到的结果。解决办法是,计算划分后的子数据集的信息熵时,加上一个与类别个数成正比的正则项,来作为最后的信息熵。这样,当算法选择的某个类别较多的特征,使信息嫡较小时,由于受到类别个数的正则项惩罚,导致最终的信息熵也比较大。这样通过合适的参数,可以使算法训练得到某种程度的平衡。
  • 基尼不纯度
    我们知道,信息熵是衡量信息不确定性的指标,实际上也是衡量信息“纯度”的指标。
    除此之外,基尼不纯度(Gini impurity)也是衡量信息不纯度的指标,其计算公式如下:
    Gini ⁡ ( D ) = ∑ x ∈ X P ( x ) ( 1 − P ( x ) ) = 1 − ∑ x ∈ X P ( x ) 2 \operatorname{Gini}(D)=\sum_{x \in X} P(x)(1-P(x))=1-\sum_{x \in X} P(x)^{2} Gini(D)=xXP(x)(1P(x))=1xXP(x)2
    其中,P(x)是样本属于x这个类别的概率。如果所有的样本都属于一个类别,此时 P(x)=l,则Gini(D)=O,即数据不纯度最低,纯度最高。
    在这里插入图片描述

4.剪枝算法

使用决策树模型拟合数据时,容易造成过拟合。解决过拟合的方法是对决策树进行剪枝处理。
决策树的剪枝有两种思路:前剪枝(Pre-Pruning)和后剪枝(Post-Pruning)。

  • 前剪枝
    前剪枝是在构造决策树的同时进行剪枝。在决策树的构建过程中,如果无法进一步降低信息熵的情况下,就会停止创建分支。为了避免过拟合,可以设定一个阈值,信息熵减小的数量小于这个阈值,即使还可以继续降低熵,也停止继续创建分支。这种方法称为前剪枝。还有一些简单的前剪枝方法,如限制叶子节点的样本个数,当样本个数小于一定的阈值时,即不再继续创建分支。
  • 后剪枝
    后剪枝是指决策树构造完成后进行剪枝。剪枝的过程是对拥有同样父节点的一组节点进行检查,判断如果将其合并,信息熵的增加量是否小于某一阈值。如果小于阈值,则这一组节点可以合并一个节点。
    后剪枝是目前较普遍的做法。后剪枝的过程是删除一些子树,然后用子树的根节点代替,来作为新的叶子节点。这个新叶子结点所标识的类别通过大多数原则来确定,即把这个叶子节点里最多的类别作为这个叶子节点的类别。
    后剪枝算法有很多种,其中常用的一种称为降低错误率剪枝法(Reduced-Error Pruning)。其思路是,自底向上,从已经构建好的完全决策树中找出一个子树,然后用子树的根节点代替这棵子树,作为新的叶子节点。叶子节点所标识的类别通过大多数原则来确定。这样就构建出一个新的简化版的决策树。然后使用交叉验证数据集来测试简化版本的决策树,看看其错误率是不是降低了。如果错误率降低了,则可以使用这个简化版的决策树代替完全决策树,否则还是采用原来的决策树。通过遍历所有的子树,直到针对交叉验证数据集,无法进一步降低错误率为止。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
决策树算法机器学习中常用的一种算法,它通过构建一棵树形结构来进行分类或回归任务。决策树算法有多种不同的变体,其中包括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 ]

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值