一颗决策树包含一个根结点、若干个子结点和若干个叶结点。
根结点:包含样本全集;
子结点:对应属性划分,包含划分样本;
叶结点:对应决策结果,包含决策样本。
从根结点到每个叶结点的路径:对应一个判定测试序列(系列子决策)。
产生一棵泛化能力强,处理未见示例能力强的决策树。
决策树采用分而治之(Divide and Conquer)策略,以一系列的子决策决定分类结果。
决策树的生成是一个递归过程。核心是最优划分属性的选择,有三种情形导致递归返回:
(1) 当前结点包含的样本全属于同一类别,无需划分,该结点类别确定。
(2) 所有样本在所有属性值相同,或属性集为空,无法划分,该结点类别设定为所含样本最多的类别(利用当前结点的后验分布)。
(3) 当前结点包含的样本集合为空,不能划分。父结点类别确定(利用当前结点的先验分布)。
判断最优划分属性的的依据是随着划分过程不断进行的,我们希望分支结点所包含的样本尽可能属于同一类,即结点的纯度(purity)越来越高。简单的说就是每一次根据某个条件分类之后,尽可能使样本都符合这个条件,说明我们的分类条件是极具区分意义的,能够明显的将样本分开。
信息熵的定义:
信息熵(Information Entropy)用来描述信源的不确定度,一件事情发生的概率越小,事件发生后所包含的信息量越大,信息熵越高。首先我们用信息熵来度量样本集合的纯度(purity),一个样本集合的信息熵越低,则其纯度越高。
信息熵的公式定义:
其中,D 指样本集;y 指样本总共有多少类;k 指第k类样本;pk 指第k类样本在D中的比例。
Ent(D)最小值为0,最大值为log2∣y∣.
信息熵的三个性质:
ID3决策树算法 使用信息增益(Information Gain)选择划分属性。
偏好:信息增益对可取数目较多的属性有所偏好。
属性a的信息增益公式定义为:
其中,D指样本集;a指属性;v 和V指a所有可能的取值;Dv指属性值为v vv时划分得到的子集。
信息增益最优属性
信息增益越大,意味着由这个属性来进行划分对纯度的提升越大,即对决策的帮助越大。所以对每个属性均求出信息增益,再取最大的那个,就是最优划分属性。
如果一个属性对每个样本的取值都是不同的,那么针对这个属性的每个取值只包含一个样本并且分支结点的纯度已达最大,这样的决策树显然没有泛化能力,无法对新样本进行预测。因为新的样本在这个属性的值与决策树所学习的均不相同。因为信息增益准则对可取值数目较多的属性有偏好。所以增益率要对信息增益进行优化。
增益率公式定义:
IV(a)称为属性a的固有值(intrinsic value),属性a的可能取值数目越多,IV(a)的值越大,增益率就越小。所以我们在应用增益率准则的时候,先从划分属性中选择信息增益高于平均水平的属性,再进行二次选择,选择增益率最高的作为最终的最优化分属性。
基尼值是另一种度量数据集纯度的指标,与信息熵性质一样。其反映了从数据集中随机抽取两个样本,其类别不一致的概率。因此,基尼值越小,则数据集的纯度越高。
属性a的基尼指数公式定义为:
最优化分属性
选基尼指数最小的那个属性作为最优化分属性:
预剪枝是指在决策树生成过程中,对每个结点在划分前先进行估计,若当前结点的划分不能带来决策树泛化性能提升,则停止划分并将当前结点标记为叶结点。
#仅有一层划分的决策树称为“决策树桩
预剪枝基于贪心策略,预划分当前结点,减少了决策树的分支。
优点:
缺点:
后剪枝是先从训练集生成一颗完整的决策树,然后自底向上地非叶结点进行考察,若将该结点对应子树替换为叶结点能带来决策树泛化能力的提高,则将该子树替换为叶结点。
后剪枝相对预剪枝保留了更多的分支。
优点:
缺点:
之前基于离散属性生成决策树,现在考虑使用连续属性。由于连续属性可取值数目无限,使用连续属性离散化技术。最简单的策略采用二分法(bi-partition),将给定连续属性的区间的中位点作为候选划分点。
计算纯度的方式跟之前一致,但是将中位点值替换为划分属性值。同时输入可以变成范围值,泛化能力增强。
C4.5:Information Gain (Ratio) based Threshold
CART:遍历所有输入变量j 和切分点s,根据最小化平方误差准则选取;
缺失值面临的两个问题:
对于第一个问题,若取值未知,则根据其他样本的取值来计算划分点。
对于第二个问题,若取值未知,则将该样本同时划入所有子结点,且设置一个样本权值用于计算loss。
缺失值处理方法:
4. 插值法(Imputation): QUEST, CRUISE
5. 替代法(Alternate/Surrogate Splits):CART, CRUISE
6. 缺失值单独分支(Missing value branch):CHAID, GUIDE
7. 概率权重(Probability weights): C4.5
多变量决策树是用属性的线性组合(对应多变量)划分结点。
将样本集合对应多维空间,每个属性对应一个维度,分类就是在不同类空间寻找边界。单变量决策树的分类边界是由若干个与坐标轴平行的分段组成。
多变量决策树的分类边界是由若干个折线分段组成。
1. 机器学习(西瓜书) 第4章 决策树
2. 学习笔记Task2-决策树-80%
3. github - deyiwang89/WaterMelon-ML
4. 决策树处理连续值,缺失值