决策树(Decision Tree)学习小结

决策树

策树(Decision Tree)是在已知各种情况发生概率的基础上,通过构成决策树来求取净现值的期望值大于等于零的概率,评价项目风险,判断其可行性的决策分析方法,是直观运用概率分析的一种图解法。(概念摘自百度百科)

特征选择

在这里先引入信息熵和信息增益的定义

信息熵(information entropy)

在信息论与概率论中,熵(entropy)用于表示随机变量不确定性的度量,越不确定的事物,它的熵就越大。因此信息熵是度量样本集合纯度最常用的一种指标。
假定当前集合 D D 中第k类样本所占的比例为 pi(i=1,2,3,...) p i ( i = 1 , 2 , 3 , . . . ) ,则D的信息熵定义为

H(D)=k=1npilog2pi H ( D ) = − ∑ k = 1 n p i l o g 2 p i

H(D) H ( D ) 的值越小,则 x x 的纯度越高

条件熵

条件熵类似于条件概率,在一个条件下,度量随机变量的不确定性。

H(D|A)=j=1np(yj)H(x|yj) H ( D | A ) = ∑ j = 1 n p ( y j ) H ( x | y j )

信息增益(Kullback–Leibler divergence)

信息增益 = 熵 - 条件熵
表示在一个条件下,信息不确定性减少的程度。

G(D,A)=H(D)H(D|A) G ( D , A ) = H ( D ) − H ( D | A )

一般来说,信息增益越大意味着在 A A 条件下进行划分所获得的 纯度提升越大

增益率

用信息增益作为标准容易偏向于取值较多的特征,也就是分类较多的特征,C4.5算法选择使用增益率来选择最优划分属性,增益率是信息增益和特征熵的比值

I(D,A)=G(D,A)HA(D) I ( D , A ) = G ( D , A ) H A ( D )

其中
HA(D)=i=1n|Di||D|log2|D1||D| H A ( D ) = − ∑ i = 1 n | D i | | D | l o g 2 | D 1 | | D |

决策树生成

决策树的基本思想,实际上就是寻找纯度的划分方法。根据不纯度的不同选取方法,形成了不同的决策树算法

ID3算法(使用信息增益作为不纯度)

ID3算法的核心是在决策树的各个结点上应用信息增益准则进行特征选择。具体做法是:
(1)从根节点开始,对结点计算所有可能特征的信息增益,选择信息增益最大的特征作为结点的特征,并由该特征的不同取值构建子节点;
(2) 对子节点重复以上方法,构建决策树;
(3)直到所有特征的信息增益均很小或者没有特征可选时为止。

C4.5算法(使用增益率作为不纯度)

步骤与ID3算法类似,只是用的是增益率做不纯度

CART算法(使用基尼系数作为不纯度)

基尼系数如下,
这里写图片描述

决策树剪枝

剪枝是决策树算法中对付过拟合的方法,主要分为预剪枝和后剪枝

预剪枝(基于贪心算法)

(1)每一个结点所包含的最小样本数目,当该结点总样本数小于最小样本属时,则不再分;
(2)指定树的高度或者深度;
(3)指定结点的熵小于某个值,不再划分。

后剪枝

总体思想:先从训练集生成一颗完整的决策树,然后自底向上地对非叶结点进行考察,若将该结点对应的子树替换为叶结点能带来决策树泛化性能提升,则将该子树替换为叶节点.
后剪枝泛化能力强,但耗时远远多于预剪枝

你可能感兴趣的:(机器学习)