一:基本流程
决策树的学习目的是为了产生一棵泛化能力强的决策树,器基本流程简而言之“分而治之(Divide-and-conquer)”
二 :划分选择:主要解决从A中选择最优划分属性a的过程,使得分支尽可能属于同一个分支,纯度(purity)越来越高;
1:信息熵(Information entropy):
log2Pk为负值,单调增,因此-Pk*log2Pk单减,概率越大信息量越小,编码越短;
Ent越小说明,里面单个概率都大,异常值较小,纯度越高;
母亲得到信息越多,女儿的态度越明确,与男方见与不见的不确定性越低。因此,信息量与不确定性相对应。使用熵来表示不确定性的度量。
2:信息增益(Information gain)
假定离散属性a有V个可能的取值{a1,a,2,...,aV},若使用a来对样本集D进行划分,则会产生v个分支结点,其中第v个分支结点包含了D中所有在属性a上取值为av的样本,记为Dv。根据样本数的赋予熵的权重Dv/D,得到属性a对样本的集D进行划分所获得的“信息增益”:
信息增益越大,则意味着使用属性a来进行划分所获得的“纯度提升”越大。因此我们想用信息增益来进行决策树的划分选择。
条件熵H(Y|X)(方程右边部分)表示在已知随机变量X的条件下随机变量Y的不确定性。例如,知道男生年龄的前提条件下,根据女儿见与不见的不确定性。信息增益表示得知特征X(年龄)的信息使得类Y(见与不见)的信息的不确定性减少程度。信息增益大表明信息增多,信息增多,则不确定性就越小,母亲应该选择使得信息增益增大的条件询问女儿。
代表算法:ID3,具体方法是:从根节点开始,对节点计算所有可能的特征的信息增益,选择信息增益最大的特征作为节点的特征,由该特征的不同取值建立子节点;再对子节点递归调用以上方法,构建决策树。https://blog.csdn.net/gumpeng/article/details/51397737
3:增益率(gain ratio)
信息增益对于数目较多的属性有所偏好,为减少这种偏好可以使用增益率:C4.5决策树就是采用这种方法划分属性;
IV(a)称为固有值(Intrinsic value),a的数目越多,值通常越大;
代表算法: C4.5算法,它是对ID3算法的改进,相对于ID3算法主要有以下几个改进
(1)用信息增益比来选择属性
(2)在决策树的构造过程中对树进行剪枝
(3)对非离散数据也能处理
(4)能够对不完整数据进行处理
https://blog.csdn.net/gumpeng/article/details/51397737
4:基尼指数(Gini index)
Gini(D)表示从数据集随机抽取两个样本,其类别不同的概率;因此Gini越小,纯度越高;
与条件熵H(Y|X)定义类似,属性a的基尼系数为:
5:剪枝处理(pruning)
通过去掉一些分支,从而降低过拟合的风险;
预剪枝(prepruning):在生成决策树过程中判断,如果每个节点不能带来决策树泛化能力提升,则停止划分为叶节点;
由于预剪枝贪心的本质,禁止分支的展开,可能导致“欠拟合”;
后剪枝(postpruning):先生成完整的决策树,然后自底而上对非叶节点进行考察,若将该子树改为叶节点带来泛化能力增加,则改为叶节点;
泛化性能好于预剪枝,训练开销较大;
判断泛化能力,可采用第二章的性能评估方法,例如留出法;
6:连续值处理:对于可取数目不再有限的连续属性,进行离散化是很好的方法;
二分法(bi-partition):C4.5决策树采用的方法;首先选择中位点作为候选划分点,然后利用离散化的增利率考量此点,得到最佳的值;
7:缺失值的处理(两个问题):
a 如何在属性值缺失情况下进行划分属性选择?
对于训练集D和属性a,令D~表示D在a上没有缺失值的样本,因此仅可通过D~判断属性a的优劣;
b 给定划分属性,若该样本在该属性值缺失,如何对样本划分;
计算完某属性没有缺失值的信息增益后,乘以没有缺失值的比例得到最终信息增益,然后再进行比较。
8:多变量决策树(multivariate decission tree)
决策树所形成的分类边界有一个明显的特征:轴平行,即它的分类边界由若干个与坐标轴平行的分段组成。如下图所示:
这样在学习任务的真实分类边界比较复杂时,必须使用很多段划分,才能获得较好的近似。此时的决策树会相当复杂,由于要进行大量的属性测试,预测时间开销会非常大。
多变量决策树可以实现‘斜’划分,在此例中非叶节点不再是某个属性,而是对属性线性组合;方法有OC1;