吃瓜第四章 决策树 2023-12-19

决策树

决策树

1 概述

决策树的学习目的是产生一棵泛化能力强的决策树,基本流程遵循“分而治之”的策略。

决策树

  • 最顶层是根节点,包含所有样本
  • 每个叶节点代表类或类分布(几类的概率分布)(预测时直接选概率最大的类),对应决策结果
  • 每个样本均被划分到一个叶节点

树的生成

  • 选择特征
  • 选择阈值

2 四种建树算法

基本算法框架:


基本算法

有三种特殊情况导致递归返回:

  • 当前结点包含的所有样本都是同一类别了
  • 当前属性集为空,或是所有样本所有属性都一样
  • 当前结点不包含任何样本

图中最关键的是第8行,也就是如何选择最佳属性。在这个问题上,有四种衍生出的算法:

  • CLS
  • ID3
  • C4.5
  • CART

接下来一一介绍。

2.1 CLS

CLS是第一个决策树算法。
CLS算法的基本思想是通过递归地将数据集分割成多个子集,直到满足某个停止条件为止。在每个节点上,CLS算法选择最优的特征进行分割,并根据特征的取值将数据集划分成不同的子集。
一旦数据集被划分成子集,CLS算法会递归地在每个子集上重复上述过程,直到满足停止条件为止。
采用不同的测试属性及其先后顺序会生成不同的决策树。
不展开。

2.2 ID3

信息增益

先给出信息熵与条件熵的定义。
假设X是取有限个值的离散随机变量,每个的概率为p_i,则X的(信息)熵定义为
H(X) = -\sum_{i=1}^n p_i \log p_i信息熵的值越小,代表样本集合纯度越高。

条件熵H(Y|X)指在已知随机变量X的条件下随机变量Y的不确定性,定义为X在给定条件下Y的条件概率分布的熵对X的数学期望。
H(Y|X)=\sum^n_{i=1}p_iH(Y|X=x_i)

信息增益表示得知特征的值而使得类的信息的不确定性减少的程度。
特征A对训练数据集D的信息增益,即Gain(D,A)=H(D)-H(D|A)
一般的,熵与条件熵之差被称作互信息,决策树学习中的信息增益等价于训练数据集中类与特征的互信息

在决策树学习中,信息增益就表示由于特征A而使得对数据集D进行分类的不确定性减少的程度。减少程度越大,意味着信息增益越大。所以我们选择信息增益最大的特征。

ID3算法

设样本集合为D,第k类样本占比为p_k,则
Ent(D)=-\sum_{k=1}^Kp_k \log_2p_k特征a对D条件熵为\sum_{v=1}^V\frac{D^v}{D}Ent(D^v)其中v是特征a的可能取值,D^v是这种取值对应的样本数,\frac{D^v}{D}即a取这种值得概率。
那么,信息增益就是
Gain(D, a) = Ent(D) - \sum_{v=1}^V\frac{D^v}{D}Ent(D^v)
过程
输入:数据集D,特征集A,阈值\epsilon
输出:决策树T

  1. 特殊情况:D中样本同属一个类,T为叶子。A为空集,T为叶子,按少数服从多数原则确定类别。
  2. 计算A中各个特征对D的信息增益,选择信息增益最大的A_g作为测试属性。
  3. 如果A_g小于增益阈值\epsilon,则置T为单结点树。选D中实例数最大的类作为标记,返回T
  4. 否则,对A_g的每一个可能值,按A_g划分D为若干非空子集D_i,将D_i中实例数最大的类作为标记,构建子节点,由节点和子节点构成树T,返回T
  5. 对结点i,以D_i为数据集,A- \left \{ A_g \right \}为特征集,递归计算。

数据清理
要做数据的清理,转换,相关性分析...

2.2 C4.5

ID3的缺陷:如果我们用一种特别特殊的特征,比如编号,学号...每个特征里只对应一个样本,那这种情况下,Ent(D^v)肯定为0,信息增益只剩第一项Ent(D),肯定是所有特征里最大的。但是这样生成的模型毫无泛化能力,无法对新样本进行有效预测。

信息增益比

用信息增益比来选择特征
g_R代指Gain_ratio
g_R(D,a)=\frac{g(D,a)}{H_a(D)}
分母是惩罚。划分类别越多,熵越大,比值越小。其中
H_a(D)=-\sum_{v=1}^V \frac{|D^v|}{|D|} \log_2 \frac{|D^v|}{|D|}称为属性a的固有值

递归过程和ID3相同。

2.3 CART

CART(Classification and Regression Tree)分类回归树

  • 分类树:基尼指数Gini Index
  • 回归树:平方误差最小化

由两部分组成

  • 决策树生成
  • 决策树剪枝
    CART决策树是二叉树

基尼指数

CART决策树采用基尼指数Gini Index来选择属性
基尼值
Gini(D) = 1-\sum_{k=1}^K p_k^2直观上,基尼值反映了从数据集中任选两个样本,其类别不一致的概率。基尼值越小,纯度越高。
基尼指数Gini Index
对于属性a,基尼系数
Gini_index(D,a)=\sum^V_{v=1}\frac{|D^v|}{|D|}Gini(D^v)在通过a分成的每一块中,算Gini并乘上比例。

3 剪枝

剪枝可以减少决策树的规模(复杂度),处理过拟合的问题。
分为预剪枝和后剪枝

预剪枝

在生成时对每个结点进行估计,如果当前结点的划分不能提升泛化性能,就不划分。可以使用性能评估的方法(如留出法等)来判断。但是有欠拟合的风险。

后剪枝

在树建成之后,自底向上地进行剪枝。
极小化Cost Complexity函数:
CC(T)=Err(T)+\lambda R(T)
第一项是树T的错误,第二项是正则项,代表树的复杂度,\lambda \ge0为正则化参数。

CC(T)

过程
输入:树T,正则参数
输出:修建后的树T_0

  1. 计算每个叶子节点的代价
  2. 计算如果这个节点回缩到父节点之后的代价,如果回缩之后代价减少了,就剪枝
  3. 递归地向上回溯

根据验证集上的代价决定是否剪枝

CART决策树的剪枝

详情可见:https://www.cnblogs.com/yang-ding/archive/2022/10/19/16805491.html

CART 剪枝

Step2:利用独立的验证集在子树序列中选择误差最小的。

4 连续属性与缺失属性的处理

连续值处理

C4.5和CART都使用了连续属性离散化,最简单的是二分法。
对数据集上此属性的所有值进行由小到大排序(假设共n个),取每两个邻接的值的中位数作为划分点(共n-1个)。对每个点对应的划分方法,算信息增益,或者增益比,基尼指数等来进行选择。

缺失值处理

训练集有缺失,如何划分

Gain(D,a) = \rho Gain(\tilde{D},a)
\rho是数据完整的样本所占(加权)比例,
\tilde{D}是数据完整的样本集合。
同时划入所有子节点,分别算划分到各个子节点的概率,且样本权值在与属性值对应的子结点中调整为原权值×这个属性值的概率

预测时属性值缺失

按概率决定类别

5 多变量决策树

多变量决策树

参考:

  1. 南瓜书https://www.bilibili.com/video/BV1Mh411e7VU/?p=1&vd_source=32ad22ca1aa5a882c8b7fe1b7878657f
  2. 《机器学习》周志华
  3. ...
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 216,258评论 6 498
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 92,335评论 3 392
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 162,225评论 0 353
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 58,126评论 1 292
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 67,140评论 6 388
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 51,098评论 1 295
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 40,018评论 3 417
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 38,857评论 0 273
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 45,298评论 1 310
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 37,518评论 2 332
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 39,678评论 1 348
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 35,400评论 5 343
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 40,993评论 3 325
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 31,638评论 0 22
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,801评论 1 268
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 47,661评论 2 368
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 44,558评论 2 352

推荐阅读更多精彩内容