决策树

本文深入探讨决策树的各种类型,包括ID3、C4.5和CART,以及它们在构建过程中的关键指标如信息熵、信息增益、增益率和基尼指数。同时,介绍了决策树的后修剪方法和随机森林的特性与优势。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

今天抽空补充一下决策树的相关知识:

决策树的种类及区别:

决策树以自顶向下递归的分治方式进行构造。从训练元组集和它们相关联的类标号开始构建决策树。随着树的构建,训练集递归地划分成较小的子集。

ID3:使用信息增益作为属性选择度量(偏向于选择具有大量值的属性)。

C4.5:选择具有最大增益率的属性作为分裂属性。增益率=属性增益/总增益

CART:使用基尼指数作为属性度量。

熵:

我们首先来了解一下信息熵的概念:

                                                                       H(X)=-\sum_{i=1}^{N}p(x_{i})logp(x_{i})

在这里,p(x_{i})表示随机事件X发生为x_{i}的概率,log是以2为底的对数。信息熵是信息论中用于度量信息量的一个概念。一个系统越是有序,信息熵就越低;反之,一个系统越是混乱,信息熵就越高。所以,信息熵也可以说是系统有序化程度的一个度量。   

在决策树构造中,我们分别使用两种衡量标准进行决策构造:

  1. 期望值(子信息熵)越小,信息增益越大,则分类纯度越高;
  2. 基尼指数度量的是数据分区或训练元组集的不纯度。基尼指数越小,不纯度下降越大,分类纯度越高。

信息增益:

对于样本集合D来说,有k个类别,每个类别的概率是c_{k}/|D|,其中c_{k}表示类别k的样本个数,|D|表示样本总数。

则对于样本集合D来说熵(经验熵)为:

                                                                        H(D)=-\sum_{k=1}^{K}(c_{k}/|D|)log(c_{k}/|D|)

对于特征属性A来说,样本集合可以根据其取值被分为Da1,Da2,...,Dai,...,Dan等子集合。而每个样本子集合Dai,又可以计算该子集合的熵H(Dai)。那么,我们将得到该特征属性对应的期望信息:

                                                                             Info(A)=\sum_{i=1}^{n}\frac{|Dai|}{|D|}H(Dai)

则该特征属性的信息增益是:Gain(A) = H(D)-Info(A)。一般情况下,在决策树构建时,我们会选择信息增益高的特征属性作为分裂属性。

信息增益率:

信息增益度量偏向于选择具有大量值的属性。因此,引入了信息增益率这个概念。

对于集合D,可以利用特征属性A的取值将集合分为Da1,Da2,...,Dai,...,Dan等子集合。

我们设特征属性A的分裂信息为:

                                                                 SplitInfo(A)=-\sum_{i=1}^{n}\frac{|Dai|}{|D|}log(\frac{|Dai|}{|D|})

我们设基于属性A的信息增益率为:

                                                                      GrianRate(A)=\frac{Gain(A)}{SplitInfo(A)}

我们会选择具有最大增益率的属性作为分裂属性。

注意:随着划分信息趋于0,该比率变得不稳定。为了避免这种情况,增加一个约束:选取的测试的信息增益必须较大,至少与考察的所有测试的平均增益一样大。

基尼指数:

设:原始数据集合有K个类,pk表示选中的样本属于第k类别的概率,则这个样本被分错的概率是(1-pk)。则样本集合D的基尼指数为:

                                                              Gini(D)=\sum_{k=1}^{K}p_k(1-p_k)=1-\sum_{k=1}^{K}p_k^2

如果训练数据集D根据特征A的取值被分割为D1和D2两部分,则在特征A的条件下,集合D的基尼指数定义为:

                                                       Gini(D,A)=\frac{|D1|}{|D|}*Gini(D1)+\frac{|D2|}{|D|}*Gini(D2)

其中对于D1和D2,又可以计算出Gini(D1)和Gini(D2)。

某特征所导致的基尼指数越小,不纯度降低越大,分类纯度越高。

注:当样本类别只有两类时,则Gini(D)=2p(1-p)。

决策树规则后修剪方法:

  1. 从训练集合推导出决策树,增长决策树直到尽可能好地拟合训练数据,允许过度拟合发生。
  2. 将决策树转化为等价的规则集合,方法是为从根结点到叶子结点的每一条路径创建一条规则。
  3. 通过删除任何能导致估计精度提高的前件(preconditions)来修剪(泛化)每一条规则。
  4. 按照修剪过的规则的估计精度对它们进行排序;并按这样的顺序应用这些规则来分类后来的实例。

决策树的两大优点:

  1. 决策树模型可以读性好,具有描述性,有助于人工分析;
  2. 效率高,决策树只需要一次构建,反复使用,每一次预测的最大计算次数不超过决策树的深度。

参考文献:

     https://blog.youkuaiyun.com/t15600624671/article/details/78895267

     https://www.cnblogs.com/starfire86/p/5749334.html

     https://www.cnblogs.com/bourneli/archive/2013/03/15/2961568.html

   《数据挖掘》韩家炜版,课本P218。

随机森林:

随机森林实际上是多重决策树的组合使用,是对Bagging的改进,采取有放回的采样方式。

随机森林的特点:

  1. 在当前所有算法中,具有极好的准确率
  2. 能够有效地运行在大数据集上
  3. 能够处理具有高维特征的输入样本,而且不需要降维
  4. 能够评估各个特征在分类问题上的重要性
  5. 在生成过程中,能够获取到内部生成误差的一种无偏估计
  6. 对于缺省值问题也能够获得很好得结果

     下面这位作者对随机森林做了详细的介绍,我就不班门弄斧了:

      http://www.cnblogs.com/maybe2030/p/4585705.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值