【周志华_机器学习】阅读笔记 第四章决策树

阅读笔记 第四章决策树

决策树模型中的一般步骤为图4.2.目的是为了训练得出一个基于属性不同进行分类的分类边界,直观表示则为一棵决策树。
【周志华_机器学习】阅读笔记 第四章决策树_第1张图片
而章节中主要难点集中在如何划分节点,也就是第八步
最终得出类似图4.1的决策树
【周志华_机器学习】阅读笔记 第四章决策树_第2张图片

4.2.1信息增益,见P75-P77示例:通过各个属性的信息熵来判断结点的“纯度”,进而定义了一个信息增益来计算结点的纯度,最终选股最大的信息增益进行决策树的建立。

4.2.2 增益率,为解决信息增益偏好可取值数目多的属性。
【周志华_机器学习】阅读笔记 第四章决策树_第3张图片
但需要注意增益率也对可取值数目较少的属性有偏好。一般处理中采用先找信息增益大的再从中选取增益率高的。

4.2.3 基尼系数
CART决策树采用基尼系数选择划分属性
【周志华_机器学习】阅读笔记 第四章决策树_第4张图片

4.3 剪枝处理
为了避免训练集中的自身特点成为“一般性质”,也就是造成了“过拟合”效果,我们需要对决策树进行“剪枝处理”。
决策树剪枝的基本策略有“预剪枝”(prepruning)和“后剪枝”.(post pruning)
预剪枝是指在决策树生成过程中,对每个结点在划分前先进行估计,若当前结点的划分不能带来决策树泛化性能提升,则停止划分并将当前结点标记为叶结点;后剪枝则是先从训练集生成一棵完整的决策树,然后自底向上地对非叶结点进行考察,若将该结点对应的子树替换为叶结点能带来决策树泛化性能提升,则将该子树替换为叶结点。
预剪枝:对最早的属性划分进行验证集精度的比较,若精度在分支后下降则不分支,反之则分支;可能造成“欠拟合”现象;
后剪枝:生成决策树之后,从最晚的叶节点分支开始判断,若删除后验证集精度得到提高,则剪去这一分支,继续溯源。“欠拟合”风险很小,但开销花费时间比较大。

4.4 连续和缺失值处理
4.4.1 连续属性
采用这一公式得到连续属性上的划分点
在这里插入图片描述

进而同样地进行信息增益等的计算,一步步进行划分
注:若当前划分节点为连续属性,该属性还可以用作后代的划分属性。
4.4.2 缺失值的两大问题:
(1)如何在属性值缺失的情况下进行划分属性选择?
(2)给定划分属性,若样本在该属性上的值缺失,如何对样本进行划分?


【周志华_机器学习】阅读笔记 第四章决策树_第5张图片
【周志华_机器学习】阅读笔记 第四章决策树_第6张图片
最后有实例如下,P85
【周志华_机器学习】阅读笔记 第四章决策树_第7张图片

4.5 多变量决策树
我们之前的多个划分,如果置于多维坐标系中,那么各个分类边界都和坐标轴平行,一如图4.11;若分类过于复杂,则如图4.12,决策树会很冗杂繁复
【周志华_机器学习】阅读笔记 第四章决策树_第8张图片
【周志华_机器学习】阅读笔记 第四章决策树_第9张图片

为了使决策树分类边界近似于红色曲线,我们学得如图4.13的多变量决策树

【周志华_机器学习】阅读笔记 第四章决策树_第10张图片
【周志华_机器学习】阅读笔记 第四章决策树_第11张图片
关于sklearn上决策树的实现,推荐这个大大的博客文章,很详细,也方便实操
【机器学习入门】(5) 决策树算法实战:sklearn实现决策树,实例应用(沉船幸存者预测)附python完整代码及数据集
https://blog.csdn.net/dgvv4/article/details/121376678?spm=1001.2014.3001.5501

你可能感兴趣的:(决策树,机器学习,python)