首页 > 其他分享 >六、决策树

六、决策树

时间:2024-08-09 21:06:42浏览次数:5  
标签:Gini 特征 样本 算法 增益 决策树

  • 决策1:如何选择在每个节点上分割什么特征?

最大限度地提高纯度(或最小限度地减少不纯)。

  • 决策2:什么时候停止拆分?
  1. 当一个节点是一个单一类时
  2. 当拆分一个节点会导致树超过最大的深度
  3. 当纯度分数的改进低于一个阈值(获得的信息增益很小小于阈值)
  4. 当一个节点中的例子数量低于一个阈值

6.1 衡量纯度、熵entropy、Gini指数

  • 熵(Entropy)通常用于衡量样本集合的不确定性和纯度,也可以理解为样本集合中随机选取一个样本,其所包含的信息量,混乱程度

  1. 可以发现,当正例和反例比例相等时,即p+ = p = 0.5 时,此时的熵取最大值1,表明此时样本集合最不确定,样本集合越不纯,熵值越大;而当样本集合中只包含一类样本(即纯样本集合)时,熵值为0,表明此时样本集合已经完全确定,很纯。
  2. 在决策树算法中,熵常常被用来选择最优划分点,即在样本的某个特征上根据熵的变化选取最优的划分点,使得划分后的样本子集中的熵最小。
  • Gini指数

Gini指数是一种用于衡量数据集纯度的指标,通常用于决策树算法中。在分类问题中,假设有K个类别,数据集D中第k类样本所占的比例为pk ,则Gini指数的计算公式如下:

Gini指数衡量的是从数据集D中随机选取两个样本,其类别不一致的概率,因此Gini指数越小,数据集的纯度越高,分类效果越好。与熵类似,Gini指数也是在0到1之间取值,取值越小表示数据集的纯度越高。

       在决策树算法中,选择划分特征时,通常会计算每个特征的Gini指数或信息增益,以选取最佳的划分特征。

6.2 信息增益

  • p1表示样本集合中正例也即猫的比例,wleft指的是占样本的权重,p1 left 代表左枝正例的比例

       在决策树算法中,我们希望通过选择最优特征来划分数据集,从而使划分后的数据集更加纯净,即熵减少。而这个熵减少的量就被称为信息增益

       信息增益是一种用于衡量一个特征对分类任务的贡献程度的指标,通常用于决策树算法中。在决策树算法中,我们需要在每个节点上选择一个特征,使得选定特征后能够最大程度地提高数据的纯度(即分类的准确性)。信息增益的计算方法是:首先计算数据集的熵,然后计算选定特征后的条件熵,两者相减即为该特征的信息增益。信息增益越大,代表该特征对分类任务的贡献越大

6.3 独热编码One-hot

前面的例子,每个特征只能取两个不同的值,如胡子有、无
,耳朵的尖、椭圆,对于有两个以上的离散值的特征,使用one hot编码

  • 独热编码会将分类特征转换为多维二进制向量,一般适用于当分类特征(较少时)没有自然顺序时,如颜色、城市名称等。
  • 不仅仅适用于决策树,可以对分类特征进行编码,以便作为输入送入神经网络

6.4 当存在连续值特征时

  •        将特征划分,考虑不同的值,计算分隔后的信息增益,选择一个最好的,能获得最好信息增益的那个阈值!一般是对所有的样本排序,根据体重大小排序,取中点值,作为这个阈值的候选值

6.5 回归树 regression tree

泛化到回归问题,预测一个数字,而不是分类问题

  • eg:

  • 重新选择划分的标准,重新生成

       在划分时,不再计算信息增益和纯度,计算减少数据的方差,类似信息增益,我们测量的是方差的减小,选择方差减少最大的那个特征分类标准

6.6 树集合 Tree ensemble

       单个决策树受到数据变化的影响很大,导致不同的划分,形成可能不同的树,让算法的鲁棒性变低;
       使用树集合,让每一颗树投票。

  • 每棵树单独对样本进行预测,然后通过投票机制得出最终的预测结果。
  • 最终,两个“Cat”对一个“Not cat”,通过投票机制,最终的分类结果是“Cat”。

6.6.1 有放回抽样 sampling with replace(构造多个随机的训练集)

构建树集合的方式如下:构建多个随机的训练集,都与我们最初的训练集略有不同

6.6.2 随机森林算法

  • 图中提到,当算法在决策树的每个节点选择用于分裂的特征时,是从n个特征中随机选择一个子集,这个子集的大小为k,且 k < n。从这k个特征中选收获最大信息增益的特征作为分割特征
  • 图中给出了一个常见的建议,即子集大小 k的默认值通常设置为特征总数 n 的平方根。

6.6.3 XGBoost

  • 理解boost的思想

此时我们关注的是还没做好的地方,在构建下一个决策树时,把更多的注意力放在做得不好的例子上,不是以相等的(1/m)概率从所有的例子中选取,而是更有可能选取以前训练的树所错误分类的例子

    • 展示了在提升树方法中如何通过有放回抽样(sampling with replacement)来逐步改进模型的过程。
    • 在提升树中,不同于随机森林算法中的平等抽样概率,这里会根据样本的难度(即前一轮中被错误分类的样本)来调整抽样概率。
  • XGBoost extreme gradient boosting 极端梯度提升
    • XGBoost的训练过程是一个逐步迭代的过程。它通过不断训练多棵决策树,并使用梯度下降来对每棵树的权重进行优化,以最小化损失函数
    • XGBoost是一种基于梯度提升的强大算法,可以轻松地将XGBoost应用于分类和回归任务中,从而构建高性能的机器学习模型。

6.7 何时使用决策树、神经网络

  • 决策树
  1. 决策树可以很好处理表格数据(结构化数据)
  2. 训练很快
  3. 适合小数据集
  4. 小型的决策树具有可解释性
  • 神经网络
  1. 适用于所有类型的数据,表格和非结构化数据
  2. 可能比较慢
  3. 可以迁移学习、预训练
  4. 用于复杂的、高维的数据和任务

标签:Gini,特征,样本,算法,增益,决策树
From: https://www.cnblogs.com/pgl6/p/18351028

相关文章

  • 【Python机器学习】利用AdaBoost元算法提高分类性能——基于单层决策树构建弱分类器
    单层决策树(也称决策树桩)是一种简单的决策树。它基于单个特征来做决策,由于这棵树只有一次分裂过程,因此它实际上就是一个树桩。在构造AdaBoost代码时,首先通过一个简单数据集来确保在算法上一切就绪:fromnumpyimport*defloadSimpData():datMat=matrix([[1.0,2.1],......
  • 机器学习之决策树
    文章目录决策树基础分类决策树构建步骤分类决策树实例:是否适合户外运动回归决策树构建步骤回归决策树实例:预测房价决策树的优缺总结决策树是一种模仿人类决策过程的机器学习算法,它通过一系列的问题将数据分割成更小的集合,直至能够做出最终决策。本文将详细探讨决策......
  • Spark MLlib模型—决策树系列算法
    文章目录SparkMLlib模型—决策树系列算法决策树系列算法随机森林(RandomForest)GBDT(Gradient-boostedDecisionTrees)总结SparkMLlib模型—决策树系列算法前面我们重点介绍了机器学习中的特征工程,以及SparkMLlib框架支持的特征处理函数。基于线......
  • 深入浅出:可视化理解揭示决策树与梯度提升背后的数学原理
    决策树是一种非参数的监督学习算法,可用于分类和回归。它使用类似树的结构来表示决策及其潜在结果。决策树易于理解和解释,并且可以轻松地进行可视化。但是当决策树模型变得过于复杂时,它不能很好地从训练数据中泛化,会导致过拟合。梯度提升是一种集成学习模型,在其中结合许多弱学习器......
  • 【第二篇章】优秀的机器学习策略 超参数优化之决策树
    在机器学习的浩瀚星空中,决策树作为一颗璀璨的星辰,以其直观易懂、解释性强以及高效处理分类与回归任务的能力,赢得了众多数据科学家与工程师的青睐。随着大数据时代的到来,如何从海量数据中提炼出有价值的信息,构建出既准确又可靠的预测模型,成为了机器学习领域不断探索的热点。......
  • 决策树节点分裂:探索不同的标准与方法
    决策树节点分裂:探索不同的标准与方法决策树是一种广泛用于分类和回归任务的机器学习算法。其核心思想是通过一系列简单的规则(即节点分裂)将数据集划分为不同的子集,直到满足某种停止条件为止。在节点分裂过程中,选择最优的分裂标准和方法是构建高效决策树的关键。本文将详细介......
  • 决策树分类算法(if-else原理)
    决策树算法在“决策”领域有着广泛的应用,比如个人决策、公司管理决策等。其实更准确的来讲,决策树算法算是一类算法,这类算法逻辑模型以“树形结构”呈现,因此它比较容易理解,并不是很复杂,我们可以清楚的掌握分类过程中的每一个细节。if-else原理想要认识“决策树算法”我们不妨......
  • 决策树算法详解:原理、实现与应用案例
    目录一:简介二:决策树算法原理决策树的基本概念信息增益和熵基尼指数卡方检验三:决策树的构建过程数据预处理决策树生成算法剪枝技术决策树的优缺点四:决策树算法的实现使用Python实现决策树使用R语言实现决策树实现过程中需要注意的问题五:决策树算法的优化与改进......
  • 挑战房市预测领头羊:KNN vs. 决策树 vs. 线性回归
    挑战房市预测领头羊(KNN,决策树,线性回归)1.介绍1.1K最近邻(KNN):与邻居的友谊1.1.1KNN的基础1.1.2KNN的运作机制1.1.3KNN的优缺点1.2决策树:解码房价的逻辑树1.2.1决策树的基础1.2.2决策树的构建1.2.3决策树的优缺点1.3线性回归:简单而高效的预测工具1.3.1线性回归......
  • 决策树-ID3
    代码importnumpyasnpdata=np.array([['老年','短发','平底','深色','男性'],['老年','短发','平底','浅色','男性'],['老年','中发','......