目录
2、不足:阈值属于超参数,很难找到过拟合--欠拟合的trade-off。
一、决策树学习的构成和基本算法
分类决策树模型是一种描述对实例进行分类的树形结构。决策树由节点(节点代表一个特征或属性)、分支(分支代表一个特征取值)、叶子节点(叶子节点代表一个类别或结果)组成。
- 输入训练集D(即样本)和属性集A(即特征)
- 生成结点(根结点)
- 若D中样本全属于同一类别C,无需划分,叶子节点标记为类别C,返回。
- 若属性集为空,则说明在决策树的构建过程中,可能已经使用了所有的属性或特征来划分数据集,并且当前节点的数据样本中不存在其他未使用过的属性。此时,当前结点标记为叶子节点,以该结点所含样本最多的类别当结果。
- 若所有样本在所有属性上取值相同,此时,当前结点标记为叶子节点,以该结点所含样本最多的类别当结果。
- 当前结点包含的样本集合为空,说明没有收集到某种特征的样本,这种时候,当前结点标记为叶子节点,以父结点中类别数量多的当结果。
决策过程中提出的每个判定问题都是对某个属性的“测试” 每个测试的结果或是导出最终结论,或者导出进一步的判定问题,其考虑范围是在上次决策结果的限定范围之内 从根结点到每个叶结点的路径对应了一个判定测试序列。决策树学习的目的是为了产生一棵泛化能力强,即处理未见示例能力强的决策树
二 、特征选择
构建决策树的关键是选择最佳的特征来进行划分。一般而言,随着划分过程不断进行,我们希望决策树的分支结点所包含的样本尽可能属于同一类别,即结点的“纯度”(purity)越来越高。常用的特征选择指标包括信息增益(ID3)、增益率(C4.5)、基尼指数(CART)等,它们用于度量特征对分类任务的贡献程度。
1.“信息熵”是度量样本集合纯度最常用的一种指标,假定当前样本集合D中第k类样本所占的比例为 pk (K=1, 2, ..., |y|),则D的信息熵定义为
Ent(D)的值越小,则D的纯度越高
计算信息熵时约定:若p = 0,则plog2p=0
Ent(D)的最小值为0,最大值为log2|y|
2.离散属性a有V个可能的取值{a1, a2, ..., aV},用a来进行划分,则会产生V个分支结点,其中第v个分支结点包含了D中所有在属性a上取值为av的样本,记为Dv。则可计算出用属性a对样本集D进行划分所获得的“信息增益”:
信息增益越大,则意味着使用属性a来进行划分所获得的“纯度提升”越大;
信息增益对可取值数目较多的属性值有偏好;
所以为了预防增益太大这种情况,我们引入了增益率。
其中IV(a)称为属性a的“固有值”,属性a的可能取值数目越多(即V越大),则IV(a)的值通常就越大;
增益率准则对可取值数目较少的属性有所偏好;
由于信息增益和增益率中用了对数log,不方便计算,所以引入基尼指数
定义:分类问题中,假设D有K个类,样本点属于第k类的概率为p_k,则概率分布的基尼值定义为:
Gini(D)越小,数据集D的纯度越高;
给定数据集D,属性a的基尼指数定义为:
在候选属性集合A中,选择那个使得划分后基尼指数最小的属性作为最有划分属性。
三、剪枝处理
1、剪枝概念
决策树剪枝是指在已经构建好的决策树上进行修剪操作。
2、剪枝目的
“剪枝”是决策树学习算法对付“过拟合”的主要手段;
可通过“剪枝”来一定程度避免因决策分支过多,以致于把训练集自身的一些特点当做所有数据都具有的一般性质而导致的过拟合;
- 减少时间、空间复杂度
- 减少过拟合,提高算法泛化能力(跨场景能力好一些)
3、剪枝方法
预剪枝(Pre-pruning)
1、基本方法:
通过提前停止树的构建而对树剪枝
- 当决策树达到预设的高度时就停止决策树的生长
- 达到某个节点的实例集具有相同的特征向量(属性取值相同),即使这些实例不属于同一类,也可以停止决策树的生长。
- 定义一个阈值,当达到某个节点的实例个数小于阈值时就可以停止决策树的生长。
- 通过计算每次扩张对系统性能的增益,决定是否停止决策树的生长。
2、不足:阈值属于超参数,很难找到过拟合--欠拟合的trade-off。
3、综上所述:
决策树生成过程中,对每个结点在划分前先进行估计,若当前结点的划分不能带来决策树泛化性能提升,则停止划分并将当前结点记为叶结点,其类别标记为该节点对应训练样例数最多的类别。
预剪枝优点:降低过拟合风险,减少训练、测试时间;
预剪枝缺点:欠拟合风险,有些分支的当前划分虽然不能提升泛化性能,但在其基础上进行的后续划分却有可能显著提高性能。预剪枝基于“贪心”本质禁止这些分支展开,带来了欠拟合风险。
后剪枝(Post-pruning)
1、先从训练集生成一棵完整的决策树,然后自底向上地对非叶结点进行分析计算,若将该结点对应的子树替换为叶结点能带来决策树泛化性能提升,则将该子树替换为叶结点。
2、后剪枝优点:后剪枝比预剪枝保留了更多的分支,欠拟合风险小;泛化性能往往优于预剪枝决策树
后剪枝缺点:训练时间开销大:后剪枝过程是在生成完全决策树之后进行的,需要自底向上对所有非叶结点逐一计算
四、判断决策树泛化性能是否提升的方法:
留出法:预留一部分数据用作“验证集”以进行性能评估
五、随机森林分类器
1、概念:随机森林(Random Forest)是一种集成学习方法,用于进行分类和回归任务。它是由多个决策树构成的模型,利用了集成学习的思想,通过对多个决策树的结果进行综合来做出最终的预测。适用于样本相对少的情况。
2、实现方法:
-
数据集的随机抽样:从原始数据集中随机选择一定数量的样本进行有放回抽样,形成多个不同的训练子集。这样可以保证每个子集都具有一定的随机性,且可能包含重复的样本。
-
决策树的构建:对每个训练子集,独立地构建一个决策树。构建过程中,采用递归分裂的方式,选择最佳的划分属性和划分点。通常,每个决策树的最大深度会限制在一个较小的值,以防止过拟合。
-
随机特征选择:在每次节点划分时,随机从所有的特征中选择一部分特征进行评估。这样可以增加每个决策树之间的差异性,提高集成模型的多样性。
-
决策结果的组合:对于分类问题,随机森林采用投票表决的方式,将每个决策树的分类结果进行统计,选择得票最多的类别作为最终的预测结果。对于回归问题,随机森林通过平均每个决策树的输出值来得到最终的预测值。
六、构建步骤
- 选取最优划分特征:根据某种准则,从所有可用的特征中选择最优划分特征,将数据集划分成子集。
- 生成决策树:根据最优划分特征,生成决策树,即按照划分准则,将每个节点都划分成若干个子节点,直到无法继续划分为止。
- 剪枝:为了防止过拟合,需要对决策树进行剪枝,将一些不必要的分支剪去,以提高模型的泛化能力。
七、决策树的优缺点
(一)优点:
- 易于理解和解释,树的结构可视化。
- 训练时需要的数据少,训练过程简单。
- 能够处理数值型数据和分类数据。
- 能够处理多路输出问题。
- 对缺失值不敏感。
- 可以处理不相关特征数据。
- 效率高,只需要一次构建,反复使用。
(二)缺点:
- 容易产生过拟合,需要使用剪枝等策略来避免过拟合。
- 对于连续性的字段比较难预测。
- 当类别太多时,错误可能就会增加的比较快。
- 在处理特征关联性比较强的数据时表现得不是太好。
- 对于各类别样本数量不一致的数据,在决策树当中,信息增益的结果偏向于那些具有更多数值的特征。
八、小结
决策树是一种强大而灵活的机器学习算法,特别适合处理具有离散型和混合型特征的问题。它们易于理解、可解释,并且在某些情况下可以取得很好的性能。然而,在实际应用中,需要根据具体问题和数据集的特点来选择合适的决策树算法,并进行适当的调参和模型优化。