ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

机器学习(六)树模型详解

2022-01-30 17:03:16  阅读:203  来源: 互联网

标签:机器 模型 样本 增益 划分 详解 决策树 节点 属性


树模型详解

决策树

决策树模型

  • ① 树模型不用做scaling
  • ② 树模型不太需要做离散化
  • ③ 用Xgboost等工具库,是不需要做缺失值填充
  • ④ 树模型是非线性模型,有非线性的表达能力

决策树基于“树”结构进行决策:
每个“内部结点”对应于某个属性
每个分支对应于该属性的某个取值
每个“叶结点”对应于一个“预测结果”

学习过程: 通过对训练样本的分析来确定“划分属性”(即内部结点所对应的属性)
预测过程: 将测试示例从根结点开始,沿着划分属性所构成的“判定测试序列”下行,直到叶结点

现想象一位捉急的母亲想要给自己的女娃介绍一个男朋友,于是有了下面的对话:…这个女孩的挑剔过程就是一个典型的决策树。

image-20210906203954909

决策树的构造

  • 总体流程:“分而治之”(divide-and-conquer)

自根至叶的递归过程
在每个中间结点寻找一个"划分"(split or test)属性

决策树的构造是一个递归的过程,有三种情形会导致递归返回:

(1) 当前结点包含的样本全属于同一类别,这时直接将该节点标记为叶节点,并设为相应的类别;(2) 当前属性集为空,或是所有样本在所有属性上取值相同,无法划分,这时将该节点标记为叶节点,并将其类别设为该节点所含样本最多的类别;

(3) 当前结点包含的样本集合为空,不能划分,这时也将该节点标记为叶节点,并将其类别设为父节点中所含样本最多的类别。

算法的基本流程如下图所示:

image-20210906195641184

最佳属性选择方法

可以看出:决策树学习的关键在于如何选择划分属性,不同的划分属性得出不同的分支结构,从而影响整颗决策树的性能。决策树划分最佳属性有常用的三种方法:ID3,C4.5和CART。

ID3算法

ID3算法使用信息增益为准则来选择划分属性。

  • 信息熵

“信息熵”(information entropy)是度量样本集合“纯度”的常用指标,假定当前样本集合D中第k类样本所占比例为pk,则样本集合D的信息熵定义为:

undefined

计算信息熵时约定: 若p=0,则plog2p=0.Ent(D) 的最小值为 0,最大值为 l o g 2 y log_2 y log2​y。Ent(D)的值越小,则D的纯度越高,Ent(D)的值越大,则D越不纯,即D越混乱。

假如袋子里面有三种球红白黄,每种球数量一样时,摸球时不确定性最大即熵最大;
只有红球时,熵最小为0(p1=0,p2=0,p3=1,Ent(D)=0)。

  • 信息增益

信息增益(information gain)使用划分前后集合熵的差值(信息的不确定减少的程度)来衡量使用当前特征对于样本集合D划分效果的好坏。
离散属性 a 的取值 a 1 , a 2 , a 3 , . . . a V {a^1,a^2,a^3,...a^V} a1,a2,a3,...aV,其中, D v D^v Dv表示D中在a上取值的样本集合.也就是说,通过属性a划分样本集D,产生了V个分支节点,v表示其中第v个分支节点。易知:分支节点包含的样本数越多,表示该分支节点的影响力越大。

以属性a对数据集D进行划分,故可以计算出划分后相比原始数据集D获得的“信息增益”为:

image-20210906201808934

​ 其中, ∣ ⋅ ∣ |·| ∣⋅∣ 表示样本量。

**因此,信息增益就表示划分前后集合的不确定性下降多少,信息增益越大,表示不确定性下降越多,**使用该属性划分样本集D的效果越好,因此ID3算法在递归过程中,每次选择最大信息增益的属性作为当前的划分属性。

C4.5算法

ID3算法存在一个问题,就是偏向于取值数目较多的属性。因此C4.5算法使用了“增益率”(gain ratio)来选择划分属性,来避免这个问题带来的困扰。

undefined

属性a 的可能取值数目越多(即V 越大),则IV(a) 的值通常就越大.

使用情形:首先使用ID3从候选划分属性中找出信息增益高于平均水平的,接着C4.5计算这些候选属性的增益率,从中选取增益率最高的作为划分属性。

CART算法

CART决策树使用“基尼指数”(Gini index)来选择划分属性,基尼指数反映的是从样本集D中随机抽取两个样本,其类别标记不一致的概率,因此Gini(D)越小越好。信息熵越小,类别不一致概率越小,因此,基尼指数也越小。即信息熵<=>基尼指数。

基尼指数定义如下:

undefined

进而,使用属性α划分后的基尼指数为:

undefined

剪枝处理

剪枝(pruning)则是决策树算法对付过拟合的主要手段,剪枝的策略有两种如下:

  • 预剪枝(pre-pruning):在构造的过程中先评估,再考虑是否分支。

  • 后剪枝(post-pruning):在构造好一颗完整的决策树后,自底向上,评估分支的必要性。

undefined

undefined

预剪枝“贪心”的本质阻止了分支的展开,在一定程度上带来了欠拟合的风险。而后剪枝则通常保留了更多的分支,因此采用后剪枝策略的决策树性能往往优于预剪枝,但其自底向上遍历了所有节点,并且计算性能,训练时间开销相比预剪枝大大提升。

连续值与缺失值处理

一、连续值处理

对于连续值的属性,若每个取值作为一个分支则显得不可行,因此需要进行离散化处理,常用的方法为二分法,具体做法为:n 个属性值可形成(n-1) 个候选划分,把n-1个候选划分值当做离散属性处理, 使用二分法寻找最佳划分点t将样本集D在属性α上分为≤t与>t。

1.首先将α的所有取值按升序排列,所有相邻属性的均值作为候选划分点(n-1个,n为α所有的取值数目)。

2.计算每一个划分点划分集合D(即划分为两个分支)后的信息增益,选择最大信息增益的划分点作为最优划分点。

undefined

二、缺失值处理

现实中常会遇到不完整的样本,即某些属性值缺失。有时若简单采取剔除,则会造成大量的信息浪费,因此,在属性值缺失的情况下需要解决两个问题:

(1)如何选择划分属性。

(2)给定划分属性,若某样本在该属性上缺失值,如何划分到具体的分支上。

基本思路: 样本赋权,权重划分

假定为样本集中的每一个样本都赋予一个权重,根节点中的权重初始化为1,则定义:

image-20210906203523114

对于(1):仅通过无缺失值的样例来判断划分属性的优劣。

具体做法是通过在样本集D中选取在属性α上无缺失值的样本子集,计算在该样本子集上的信息增益,最终的信息增益等于该样本子集划分后信息增益乘以样本子集占样本集的比重。即:

image-20210906203617884

Gain(D,a)小于 G a i n ( D ~ , a ) Gain(\tilde D,a) Gain(D~,a)的物理含义:因为因为样本增多,下降的信息熵变少,即信息增益减少,因此,Gain(D,a)小于 G a i n ( D ~ , a ) Gain(\tilde D,a) Gain(D~,a)

对于(2):若该样本子集在属性α上的值缺失,则将该样本以不同的权重(即每个分支所含样本比例)划入到所有分支节点中。该样本在分支节点中的权重变为:

image-20210906203635193

回归树

分类回归树(Classification and Regretion Tree,CART),回归树是将属性映射到分数(score)的函数,每棵子树就是一个函数,整颗分类树就是一个分段函数。

回归树模型定义了如何得到预测分数,它可以用于分类,回归,排名…

  1. 模型结构:对特征进行二元分裂。
  2. 叶子结点输出值:对应一个得分。

image-20210505102927390

二维分段函数
  1. 属性划分依据:在候选属性中,选择使得划分后基尼系数最小的那个属性。

反映了从D中随机抽取两个样例,其类别不一致的概率:

image-20210505111318814

如果以西瓜书为例的话,其中 p k p_k pk​就是模型输出好瓜的概率.

image-20210505111736084

image-20210505111345222

标签:机器,模型,样本,增益,划分,详解,决策树,节点,属性
来源: https://blog.csdn.net/qq_21484787/article/details/122754032

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有