考试-机器学习复习/简单总结西瓜书(4.第四章决策树)

52 阅读4分钟

开启掘金成长之旅!这是我参与「掘金日新计划 · 12 月更文挑战」的第十四天,点击查看活动详情

总结:此文为12月更文计划第十四天第二十四篇。

1.认识决策树

决策树思想的来源非常朴素,程序设计中的条件分支结构就是 if-then 结构

最早的决策树就是利用这类结构分割数据的一种分类方法

 

决策树是一种十分常用的分类方法,是监管学习(Supervised Learning),监管学习就是给出一堆样本,每个样本都有一组属性和一个分类结果,也就是分类结果已知,那么通过学习这些样本得到一个决策树,这个决策树能够对新的数据给出正确的分类。

 

image.png

图 1 决策树举例

信息的度量和作用:

假设有 32 支球队,每猜一次给一块钱,告诉我是否猜对了,那么我需要掏多少钱才能知道谁是冠军?

我可以把球编上号,从 1 到 32,然后提问:冠军在 1-16 号吗?依次询问

只需要五次,就可以知道结果

香农公式:

image.png

香农指出准确的信息量为:

H = -(p1logp1 + p2logp2 + ... + p32logp32)

p1,p2,...p32均为概率

H 的专业术语称之为信息熵,单位为比特。

熵。熵表征的是一个东西的混乱程度、不确定性,该物体越混乱、越不确定,它的熵越大,越整齐、越确定,熵越小

熵的表达式:

 

五支球队:

 

image.png 如果变为两支球队,每支球队的获胜的概率为50%,那么所需要的信息量为1bit

 

image.png  

如何确定特征放置的节点位置?

1. 决策树的划分依据之一信息增益****

 

image.png

特征 A 对训练数据集 D 的信息增益 g(D,A),定义为集合 D 的信息熵 H(D)与特征 A 给定条件下 D 的信息条件熵 H(D|A)之差,即公式为

image.png

H(D)是初始信息熵大小,H(D|A)是因为条件加入后带来的确定性增加

 

H(D) 是整体熵H(D|A) 条件熵

注:信息增益表示得知特征 X 的信息而使得类 Y 的信息的不确定性减少的程度


降低不确定性,提高确定性

H(D|A) 条件熵 越小越好

加入某个条件之后带来的信息增益g(D,A)越大越好


哪一个特征的信息增益越大就将其放到决策树的顶部。可以提高预测的准确率

数学公式的计算在这里就不多做叙述,写代码的过程中只需要调用接口

以上的方法为决策树最早使用的方法ID3,这种方法偏向特征值数目多的特征

 

还有其他方法C4.5,CART等,目前最常用的是基尼系数(Gini)

image.png

决策树的优缺点以及改进

优点:

简单的理解和解释,树木可视化。

需要很少的数据准备,其他技术通常需要数据归一化,标准化

 

缺点:

1.树太过于复杂

在训练集上训练的树太复杂,在测试集上表现得不好(过拟合)

2.决策树生成不太稳定。数据稍微的变化也可能会产生不同的树

改进:

1.剪枝

2.*随机森林—解决过拟合,用多棵决策树。(这里不再叙述)

预剪枝:

减少树的高度,开始的时候指定树的深度

对应参数为:max_depth

修改拆分内部节点所需要的最小样本数

对应参数为:min_samples_split

熵达到某一个值就停止分割叶子节点

对应参数为:min_impurity_decrease

ID3,C4.5和CART算法对比
相同点:都采用贪心方法,以自顶向下递归的分治方式构造,随着树的构建,训练集递归地被划分为子集
不同点
· ID3算法基于信息增益为准则来选择划分属性,依赖于特征数目多的特征,没有考虑少特征和不完整数据,抗噪性差,容易产生过拟合.
· C4.5算法基于增益率准则来选择划分属性,使用了一个启发式:先从候选划分属性中找出信息增益高于平均水平的属性,再从中选取增益率最高的,对可取值数目较少的属性有所偏好。