Datawhale7月“吃瓜教程”Task03打卡

ps:本文为记录参与Datawhale-7月吃瓜教程的学习笔记

pss:文章所有PPT截图来自于:Datawhale吃瓜教程(https://www.bilibili.com/video/BV1Mh411e7VU),记得一键三连~

目录

Task03 详读西瓜书+南瓜书第4章

1 基本流程

2 划分选择

2.1 信息增益

2.2 增益率

2.3 基尼指数

3 剪枝处理

3.1 预剪枝

3.2 后剪枝

4 连续与缺失值

4.1 连续值处理

4.2 缺失值处理

5 多变量决策树

Task03 详读西瓜书+南瓜书第4章

1 基本流程

决策树是基于树结构来进行决策的,正好对应的是人类面对决策时的处理机制,决策过程的最终结论对应了我们所希望的判定结果。

Datawhale7月“吃瓜教程”Task03打卡_第1张图片

 

算法原理

Datawhale7月“吃瓜教程”Task03打卡_第2张图片

 决策树与数据结构中的树类似,包含一个根结点、若干内部结点和若干个叶结点;其中:

  • 叶结点:对应于决策结果
  • 其他结点(非根的父节点):对应于一个属性测试
  • 根结点:包含样本全集

 决策树学习的目的是为了产生一棵泛化能力强,即处理未见示例能力强的决策树。

 基本流程Datawhale7月“吃瓜教程”Task03打卡_第3张图片

 在决策树算法中,有三种情形会导致递归返回:

  1.  当前结点包含的样本全属于同一类别,无需划分
  2. 当前属性集为空,或是所有样本在所有属性上取值相同,无法划分
  3. 当前结点包 含的样本集合为空,不能划分

针对“情形2”,把当前结点标记为叶结点,井将其类别设定为该结点所含样本最多的类别,利用的是当前结点的后验分布

针对“情形3”,同样把当前结点标记为叶结点,但将其类别设定为其父结点所含样本最多的类别,利用的是把父节点的样本分布作为当前结点的先验分布

2 划分选择

2.1 信息增益

信息熵(information entropy):度量样本集合纯度最常用的一种指标。假定当前样本集合DD中第k类样本所占的比例为p_k(k=1,2,\dots,|\mathcal{Y}|)则D的信息熵表示为:

Datawhale7月“吃瓜教程”Task03打卡_第4张图片

Ent(D)值越小,则D的纯度越高。Ent(D)的最小值为0,最大值为log_{2}|y|。举例子理解:

Datawhale7月“吃瓜教程”Task03打卡_第5张图片

严谨的数学证明详见:Datawhale社区的南瓜书的第4章 决策树 (datawhalechina.github.io) 的4.1。

信息增益:假定使用属性a对样本集D进行划分,产生了v个分支节点,v表示其中第v个分支节点,其中第 v 个分支结点包含了 D 中所有在 属性 α 上取值为a^{v}的样本, 记为D^{v},根据上式子可以计算出用属性a对样本集D进行划分所获得的的“信息增益”(information gain)。

Datawhale7月“吃瓜教程”Task03打卡_第6张图片

 一般来说,信息增益越大,则意味着使用属性 α 来进行划分所获得的"纯度提升"越大。著名的ID3 决策树学习算法就是以信息增益为准则来选择划分属性的。

Datawhale7月“吃瓜教程”Task03打卡_第7张图片

Datawhale7月“吃瓜教程”Task03打卡_第8张图片

Datawhale7月“吃瓜教程”Task03打卡_第9张图片

信息增益越大,意味着在当前条件下,信息的不确定性减小的越多,不确定性越低,在本场景中就是样本的纯度越高。

2.2 增益率

为了平衡信息增益准则倾向于可取数目较多的属性这一偏好带来的不利影响,著名的C4.5决策树算法使用“增益率”(gain ratio)来选择最优划分属性。增益率定义为:

Datawhale7月“吃瓜教程”Task03打卡_第10张图片称为属性 α 的"固有值" (intrinsic value) , 属性 α 的可能取值数目越多(即 V 越大),则 IV(α) 的值通常会越大。

 

2.3 基尼指数

Datawhale7月“吃瓜教程”Task03打卡_第11张图片

 Datawhale7月“吃瓜教程”Task03打卡_第12张图片

Datawhale7月“吃瓜教程”Task03打卡_第13张图片

3 剪枝处理

剪枝(pruning)是决策树学习算法对付"过拟合"的主要手段.在决策树学习中,为了尽可能正确分类训练样本,结点划分过程将不断重复,有时会造成决策树分支过多,这时就可能因训练样本学得"太好"了,即过拟合.因此可通过主动去掉一些分支来降低过拟合的风险。

3.1 预剪枝

预剪枝(prepruning)的定义就是在决策树生成的过程中,对每个结点在划分前先进行估计,若当前结点的划分不能带来决策树泛化性能的提升,则停止划分,并将当前结点标记为叶子结点。

预剪枝的好处是使得决策树的很多分支都没有"展开“,可以降低过拟合的风险;还显著减少了决策树的训练时间和测试时间的开销。但坏处是有有些分支的当前划分虽不能提升泛化性能、甚至可能导致泛化性能暂时下降,但在其基础上进行的后续划分却有可能导致性能显著提高,还有就是预剪枝基于"贪心"本质禁止这些分支展开,会带来欠拟合的风险。

3.2 后剪枝

后剪枝(postpruning)是发生于决策树生成完成以后,从由底至上考虑每个非叶节点,若将该结点替换为叶节点能够给决策树带来泛化性能的提升的话,则将该结点替换为叶节点。

因为后剪枝是在一棵完整的决策树的基础上从底至上考虑每个非叶节点,通常相对于预剪枝决策树保留了更多的分支,其欠拟合风险很小,泛化性能往往也优于预剪枝决策树,不过训练时间开销会较大。

4 连续与缺失值

到目前为止我们仅讨论了基于离散属性来生成决策树,现实学习任务中常会遇到连续属性,有必要讨论如何在决策树学习中使用连续属性。 最简单的策略是采用二分法(bi-partition)对连续属性进行处理,这正是 C4.5 决策树算法中采用的机制。(划分为:>a or

———————————————————————————————————————————

(待补充......)

4.1 连续值处理

4.2 缺失值处理

5 多变量决策树

 

你可能感兴趣的:(吃瓜教程,机器学习,人工智能)