机器学习——决策树

本文深入探讨了决策树算法,包括ID3与C4.5的区别,以及如何处理离散特征。决策树因其易理解、高效和对缺失值的容忍性而受到青睐,但也存在过拟合的风险。过拟合可通过剪枝解决,如错误率降低剪枝和代价复杂度剪枝。此外,与逻辑回归相比,决策树在处理缺失值和局部结构分析上有优势,但在线性关系把握上较弱。决策树损失函数涉及熵和复杂度惩罚项,平衡模型的准确性和复杂性。
摘要由CSDN通过智能技术生成

理解

决策树是一种分类方法,像一棵树一样进入不同的分支,然后直到叶子节点得到分类结果。那么如何进入不同的分支?这就是最重要的内容,涉及到节点(特征)的划分标准,有三种:最大信息增益、最大信息增益率、基尼系数。而这三种不同的划分标准就对应了三种典型决策树:ID3(最大信息增益)、C4.5(最大信息增益率)、CART(基尼系数)

决策树优缺点

优点:

  • 决策树易于理解和实现。

  • 对于决策树,数据的准备往往是简单或者是不必要的。其他的技术往往要求先把数据一般化,比如去掉多余的或者空白的属性

  • 能够同时处理数据型和常规型属性。

  • 在相对短的时间内能够对大型数据源做出可行且效果良好的结果

  • 对缺失值不敏感

  • 可以处理不相关特征数据

  • 效率高,决策树只需要一次构建,反复使用,每一次预测的最大计算次数不超过决策树的深度
    缺点:

  • 对连续性的字段比较难预测

  • 对有时间顺序的数据,需要很多预处理的工作

  • 当类别太多时,错误可能就会增加的比较快

  • 在处理特征关联性比较强的数据时表现得不是太好

决策树概况

决策树(decision tree)是一个树结构(可以是二叉树或非二叉树)。其每个非叶节点表示一个特征属性上的测试,每个分支代表这个特征属性在某个值域上的输出,而每个叶节点存放一个类别。使用决策树进行决策的过程就是从根节点开始,测试待分类项中相应的特征属性,并按照其值选择输出分支,直到到达叶子节点,将叶子节点存放的类别作为决策结果。
决策树有两大优点

  1. 决策树模型可读性好,具有描述性,有助于人工分析
  2. 效率高,决策树只需要一次构建,反复使用,每一次预测的最大计算次数不超过决策树的深度
    决策树涉及到节点(特征)的划分标准,有三种:最大信息增益、最大信息增益率,基尼系数
  • 信息增益:指的是使用某一个属性a进行划分后,所带来的纯度(信息熵用来度量样本集合的纯度)提高的大小。一般而言,信息增益越大,意味着使用属性a来进行划分所获得的纯度提升越大,但信息增益对取值较多的属性有所偏好。
  • 信息增益率解决了特征偏好的问题
  • 但是不论是信息增益还是信息增益率,存在的问题涉及对数运算,计算量大,为了解决这个问题,可以采用基尼系数作为节点划分的标准

ID3和C4.5的区别

最大的区别是划分标准的不同:ID3采用信息增益ID4.5采用的是信息增益率
C4.5继承了ID3的优点,并在以下几个方面对ID3算法进行了改进:

  1. 信息增益率来选择属性,克服了用信息增益选择属性是偏向选择多的属性的不足
  2. 在树的构造过程中进行剪枝
  3. 能够对连续的属性进行离散化处理
  4. 能够对不完整的数据进行处理

树模型对离散特征怎么处理的

树模型是要寻找最佳分裂点,对于离散特征,树模型会评估每个离散值的信息增益,将信息增益最大的数值作为分裂点,因此,树模型不需要对离散特征进行事先one-hot处理,否则会使特征维度增大且稀疏,不仅会增加模型的计算量,而且会损失数据的信息量造成模型的效果不佳,以及过拟合的风险。也不需要进行归一化处理。

决策树出现过拟合的原因及解决办法

原因:

  • 在决策树构建的过程中,对决策树的绳子没有进行合理的限制
  • 样本中有一些噪声数据,没有对噪声数据进行有效的剔除
    解决办法:
  • 选择合理的参数进行剪枝,可以分为预剪枝和后剪枝,我们一般采用后剪枝的方法
  • 利用K-folds交叉验证,将训练集分为K份,然后进行K此交叉验证
  • 减少特征,计算每一次特征和响应变量的相关性,常见的皮尔逊相关系数,将相关性较小的变量剔除

如何对决策树进行剪枝

剪枝是防止决策树过拟合的方法。
剪枝的策略
剪枝分为预剪枝和后剪枝两种,预剪枝是在构建决策树时抑制它的生长,后剪枝是决策树生长完全后再对叶子节点进行修剪
预剪枝

  • 设置一个树的最大高度或者为树设置一个最大节点数,达到这个值即停止生长

  • 对每个叶子节点的样本数设置最小值吗,生长时叶子节点样本数不能小于这个值

  • 判断每次生长对系数性能是否有益
    后剪枝

  • 错误率降低剪枝

  • 悲观剪枝

  • 代价复杂度剪枝
    预剪枝和后剪枝的优缺点比较

  • 时间成本方面,预剪枝在训练过程中即进行剪枝,后剪枝要在决策树完全生长后自底向上逐一考察。显然,后剪枝训练时间更长。预剪枝更适合解决大规模问题。

  • 剪枝的效果上,预剪枝的常用方法本质上是基于贪心的思想,但贪心法却可能导致欠拟合,后剪枝的欠拟合风险很小,泛化性能更高

  • 另外,预剪枝的有些方法使用了阈值,如何设置一个合理的阈值也是比较复杂的

  • 后剪枝错误率降低剪枝的方法比较直观,从下至上遍历所有非叶子节点的子树,每次把子树剪枝(所有数据归到该节点,将数据中最多的类设为结果),与之前的树在验证集上的准确率进行比较,如果有提高,则剪枝,否则不剪,直到所有非叶子节点被遍历完

决策树不需要归一化处理

概率模型不需要归一化,因为他们 不关心变量的值,而是关心变量的分布和变量之间的条件概率决策树是一种概率模型,数值缩放,不影响分裂点位置。所以一般不对其进行归一化处理

决策树与逻辑回归的区别

  • 对于拥有缺失值的数据,决策树可以应对,而逻辑回归需要挖掘人员预先对缺失数据进行处理
  • 逻辑回归对数据整体结构的分析优于决策树,而决策树对局部结构的分析优于逻辑回归
  • 逻辑回归擅长分析线性关系,而决策树对线性关系的把握较差。线性关系在实践中有很多优点:简洁,易理解,可以在一定程度上防止对数据的过度拟合
  • 逻辑回归对极值比较敏感,容易受极端值的影响,而决策树在这方面表现较好
  • 执行速度上:当数据量很大的时候,逻辑回归的执行速度非常慢,而决策树的运行速度明显快于逻辑回归。

决策树的损失函数

决策树T的叶结点个数为 ∣ T ∣ |T| T,t是树T的叶结点,该叶结点有 N t N_t Nt个样本点,其中k类的样本点有 N t k N_{tk} Ntk个, k = 1 , 2 , . . . , K , H t ( T ) k=1,2,...,K, H_t(T) k=1,2,...,K,Ht(T)为叶节点t上的经验熵, α > = 0 \alpha >= 0 α>=0为参数,则决策树学习的损失函数可以定义为:
L α ( T ) = ∑ t = 1 ∣ T ∣ N t H t ( T ) + α ∣ T ∣ L_{\alpha}(T)=\sum_{t=1}^{|T|} N_{t} H_{t}(T)+\alpha|T| Lα(T)=t=1TNtHt(T)+αT
其中经验熵为:
H t ( T ) = − ∑ k N t k N t log ⁡ N t k N t H_{t}(T)=-\sum_{k} \frac{N_{t k}}{N_{t}} \log \frac{N_{t k}}{N_{t}} Ht(T)=kNtNtklogNtNtk

公式中 H t ( T ) H_t(T) Ht(T)可以理解为这个叶子节点的熵。如果把决策树一直划分下去,叶子节点的熵应该为0,只有一个类。但是如果使用一些剪枝规则,每个节点中仍然可以有熵值,也就是可以继续划分
N t N_t Nt是这个节点中的样本个数,可以看作这个节点的权重。节点中样本数越多,这个值就越小。
后面一项是对整颗树的复杂度的惩罚项,结点数越多,越复杂。相当于一个正则项,也可以理解为先验概率:较小的树有较大的先验概率。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值