读书笔记:机器学习(第4章)

 一、两种不同的叶子结点

  • 当前属性集为空,或是所有样本在所有属性上取值相同,无法划分,在这种情形下,我们把当前结点标记为叶结点
    • 将其类别设定为该结点所含样本最多的类别
    • 这是在利用当前结点的后验分布
  • 当前结点包含的样本集合为空,不能划分,在这种情形下,把当前结点标记为叶结点
    • 将其类别设定为其父结点所含样本最多的类别
    • 这是把父结点的样本分布作为当前结点的先验分布

二、信息增益(Information gain)怎么来的

信息熵(Information entropy)的定义

Ent(D)=-\sum_{k=1}^{\left | y \right |}p_{k}log_{2}p_{k},其中p_{k}表示当前样本集合D中第k类样本所占的比例,Ent(D)的值越小,D的纯度越高

信息增益

定义:假设在属性a上对样本集D进行划分,从总的信息熵到各个分支结点信息熵加权和的差值,就是“属性a对样本集D进行划分所获得的信息增益”

计算:Gain(D,a)=Ent(D)-\sum_{v=1}^{V}\frac {\left | D^{v} \right |}{\left | D \right |}Ent(D^{v})

代表:ID3

三、信息增益率(Information gain ratio)怎么来的

信息增益准则对可取值数目较多的属性有所偏好,为了减小这种偏好可能带来的不利影响,就要对可取值数目较多的属性进行惩罚,即

GainRatio(D,a)=\frac {Gain(D,a)}{IV(a)}=\frac {Gain(D,a)}{-\sum_{v=1}^{V}\frac {\left | D^{v} \right |}{\left | D \right |}log_{2}\frac {\left | D^{v} \right |}{\left | D \right |}}

其中,IV(a)称为属性a的固有值(Intrinsic value),属性a的可能取值数目越多,IV(a)越大

代表:C4.5

四、基尼指数(Gini index)的思想

基尼指数的思想:衡量从数据集D中随机抽取两个样本,其类别标记不一致的概率,基尼指数越小,则数据集的纯度越高

基尼指数的计算:

Gini(D)=\sum_{k=1}^{\left | y \right |}\sum_{k^{'}\neq k}^{}p_{k}p_{k^{'}}=1-\sum_{k=1}^{\left | y \right |}p_{k}^{2}

GiniIndex(D,a)=\sum_{v=1}^{V}\frac {\left | D^{v} \right |}{\left | D \right |}Gini(D^{v})

如何选择划分属性:我们在候选属性集合A中,选择那个使得划分后基尼指数最小的属性作为最优划分属性,即

a_{*}=\underset{a\in A}{argmin}\, GiniIndex(D,a)

代表:CART

五、剪枝

作用:避免过拟合

剪枝策略:预剪枝和后剪枝

预剪枝:

  • 如何剪枝:在决策树生成过程中,对每个结点在划分前先进行估计,若当“前结点的划分不能带来决策树泛化性能提升,则停止划分并将当前结点标记为叶结点
  • 优点:降低过拟合风险,开销小
  • 缺点
    • 有些分支的当前划分虽不能提升泛化性能、甚至可能导致泛化性能暂时下降,但在其基础上进行的后续划分却有可能导致性能显著提高

    • 预剪枝基于“贪心”本质禁止这些分支展开,给预剪枝决策树带来了欠拟合的风险

后剪枝:

  • 如何剪枝:先从训练集生成一棵完整的决策树,然后自底向上地对非叶结点进行考察,若将该结点对应的子树替换为叶结点能带来决策树泛化性能提升,则将该子树替换为叶结点
  • 优点:降低过拟合风险,且欠拟合风险也小
  • 缺点:开销大

六、连续值的处理

如何选择划分属性:对连续属性a根据划分点t进行划分,计算样本集D基于划分点t二分后的信息增益,选择使Gain(D,a,t)最大化的划分点,这样得到的信息增益就是属性a对样本集D进行划分所获得的信息增益

Gain(D,a)=\underset{t\in T_{a}}{max}Gain(D,a,t)=\underset{t\in T_{a}}{max}Ent(D)-\sum_{\lambda \in \left \{ -,+ \right \}}^{}\frac{\left | D_{t}^{\lambda } \right |}{\left | D \right |}Ent(\left | D_{t}^{\lambda } \right |)

注意:若当前结点划分属性为连续属性,该属性还可作为其后代结点的划分属性

七、缺失值的处理

如何在属性值缺失的情况下进行划分属性选择:利用在属性D上没有缺失值的样本子集计算“信息增益”

Gain(D,a)=\rho \times Gain(\tilde{D},a)=\rho \times (Ent(\tilde{D})-\sum_{v=1}^{V}\tilde{r_v}Ent(\tilde{D}^{v}))

其中

Ent(D)=-\sum_{k=1}^{\left | y \right |}\tilde{p}_{k}log_{2}\tilde{p}_{k}

\rho =\frac{\sum_{x\in \tilde{D}}^{}w_{x}}{\sum_{x\in D}^{}w_{x}}

\tilde{p}_{k}=\frac{\sum_{x\in \tilde{D}_{k}}^{}w_{x}}{\sum_{x\in D}^{}w_{x}}

\tilde{r}_{v}=\frac{\sum_{x\in \tilde{D}^{v}}^{}w_{x}}{\sum_{x\in D}^{}w_{x}}

给定划分属性,若样本在该属性上的值缺失,如何对样本进行划分:让同一个样本以不同的概率划入到不同的子结点中去,若样本x在划分属性a上的取值未知,则将x同时划入所有子结点,且样本权值在与属性值a^{v}对应的子结点中调整为\tilde{r_{v}}\cdot w_{x}

注意:在决策树学习开始阶段,根结点中各样本的权重初始化为1

八、多变量决策树

与普通决策树的区别:非叶结点不再是仅对某个属性,而是对属性的线性组合进行测试,本质上,每个非叶结点是一个形如的线性分类器

学习任务:对每个非叶结点,不是寻找一个最优划分属性,而是试图建立一个合适的线性分类器

PS:本文大部分公式和图片都来自于周志华老师的《机器学习》,有理解不对的地方,欢迎指正

你可能感兴趣的:(读书笔记,人工智能,深度学习)