临街小站

ML学习-决策树

决策树(decision tree)是一种常见的机器学习方法。目标是生成一个具有强泛化能力的(对未遇到的样本有很高的适应性)树形结构。

决策树包含一个根结点,若干内部结点以及若干叶子结点。叶子结点对应了确定的判断结果,其余的结点都是一个个的属性测试,属性测试分成的不同情况就是当前结点的子结点。决策树是一个递归的过程。

决策树生成学习的过程中,最重要的就是如何选择最优的划分属性。一般而言,随着划分过程的不断进行,决策树分支结点包含的样本应该尽可能的靠近。

信息熵

信息熵(information entropy)是度量样本集合纯度最常用的一种指标。假设当前样本集合D中第k类样本比例为$p_{k}$(k=1,2,3,…,|y|)$,则D的信息熵为

$Ent(D)=-\sum\limits_{k=1}^{|y|}p_{k=1}log_2p_{k}$

Ent(D)的值越小,则D的纯度越高.

信息增益

假定离散属性a有V个可能的取指{$a^1,a^2,…,a^V$},若使用a来对样本集合D进行划分,则会产生V个分支结点,其中第v个节点包含了D中所有在属性a上取指为$a^V$的样本,记为$D^v$。根据上师酸楚$D^v$的信息熵,然后考虑不同分支结点包含的样本数目不同,给分支结点赋予权重$|D^v|/|D|$,即样本越多,分支结点的影响越大,此时使用一个统一的计算公式算得属性啊对样本集D进行划分得到的”信息增益”(information gain)

$Gain(D,a)=Ent(D)-\sum\limits_{v=1}^{V}\frac{D^v}{D}Ent(D^v)$

一般而言,信息增益越大,意味着使用属性啊来划分所获得的纯度提升越大。所以,可以使用信息增益Gain作为属性划分的指标。

基尼指数

CART决策树使用“基尼指数”选择划分属性。

数据集D的纯度可用基尼值来度量:

$Gini(D)=\sum\limits_k^{|y|}\sum\limits_{j\neq k}p_kp_j$

$=1-\sum\limits_k^{|y|}p_{k}^2$

直观来讲,Gini(D)反映了从数据D中随机抽取两个样本,类别标记不一致的概率。因此Gini(D)越小,数据集D的纯度越高。

属性a的基尼指数定义为:

$Gini_index(D,a)=\sum\limits_v^{V}\frac{|D^v|}{|D|}Gini(D^v)$

计算属性集合A所有属性的基尼指数,取最小值得属性作为最优划分

剪枝处理

剪枝(pruning)是决策树学习算法中对付“过拟合”的主要手段。过拟合的定义可以参考系列的第一篇。决策树算法经常会由于过拟合造成分支过多,在泛化性能上造成影响。

决策树剪枝基本策略有两种:预剪枝(prepruning)和后剪枝(postpruning)。

  1. 预剪枝:在生成决策树的过程中,对每个结点在划分前进行估计,若当前划分不能对决策树带来泛化性能上的提升,则停止划分并将当前节点标记为叶结点。(训练开销短,保留子树少,易造成欠拟合)

  2. 后剪枝:决策树生成后自底向上的对内部结点进行考察。如果当前结点子树替换成叶子结点可以在泛化能力上得到提升,则将子树替换。(训练开销长,保留子树多,欠拟合风险小)

这里使用集精度作为泛化能力的指标。

需要注意的是,虽然在当时结点的集精度没有下降(也就是泛化能力未降低),但是很可能在之后进一步的展开,有欠拟合的风险。

连续值与缺省值处理

连续

由于连续属性的可取值数目不再有限,因此,不能直接根据连续属性的可取值来对结点进行划分。此时可以使用连续属性离散化技术。

最简单的策略是采用二分法(bi-partition)对连续属性进行处理。

给定样本集D和连续属性a,假定在D上出现了n个不同的取值,将这些值从小到大进行排序,记为${a^1,a^2,…,a^n}$.基于划分点t可将D分为子集$D_t^-$和$D_t^+$其中$D_t^-$包含那些在属性上取值不大于t的样本,而$D_t^+$则包含那些在属性a上取值大于t的样本。

对相邻的属性取值[$a^i,a^{i+1}$]来说结果是相同的,因此在此区间都取值$\frac{a^i+a^{i+1}}{2}$

对n-1个区间取指作为划分点,分别测试选取最优。

$Gain(D,a)=\max\limits_{t\in T_a}Gain(D,a,t)$

$=\max\limits_{t\in T_a}Ent(D)-\sum\limits_{\lambda \in {-,+}}\frac{\mid D_t^{\lambda}\mid}{\mid D \mid}Ent(D_t^{\lambda})$

Gain(D,a,t)是样本集D基于划分点t二分后的信息增益,我们可以使用Gain(D,a,t)最大化的划分点

缺省

嗯,本部分也暂时缺省

多变量决策树

我们把每个属性视为坐标空间的一个坐标轴,则d个属性描述的样本就对赢了d维空间中的一个数据点。对样本的分类也就是在这个坐标空间中寻找不同样本之间的分类边界。

决策树形成的分类边界有一个明显的特点:轴平行(axis-parallel),即分类边界由若干个与坐标轴平行的分段组成。

使用斜划分边界可以将决策树模型简化。此时,非叶节点不仅是针对某个属性,而是属性的线性组合进行测试。与传统的决策树不同,多变量决策树试图建立一个合适的线性分类器。

clinjie wechat
Think about u every day