决策树算法(ID3、C4.5、CART)

决策树学习是由训练数据集估计条件概率模型,损失函数通常是正则化的极大似然函数,算法依据信息论来划分数据集。

优势:数据形式非常好理解,计算复杂度不高,对缺失值不敏感,可以处理不相关特征

缺点:容易过拟合

专家系统中经常使用决策树

伪代码:(递归函数,递归结束的条件:程序遍历完所有划分数据集的属性,或者每个分支下的所有实例都具有相同的分类。如果数据集已经处理了所有属性,但是类标签依然不是唯一的,这时我们通常会采用多数表决的方法决定该叶子节点的分类。)

def createBranch():
    检测数据集中的每个子项是否属于同一分类:
        If so return 类标签;
        Else
            寻找划分数据集的最好特征
            划分数据集
            创建分支节点
               for 每个划分的子集
                   调用函数createBranch()并增加返回结果到分支节点
               return 分支节点

决策树算法包括特征选择、决策树的生成、决策树的剪枝。

  • 特征选择:划分数据集的大原则是:将无序的数据变得更加有序 。所以,通常特征选择的准则是信息增益或者信息增益比或基尼指数。

  • 决策树生成:基于训练数据集生成决策树,生成的决策树越大越好

  • 决策树剪枝:(预剪枝)在构建树时设置提前终止条件,如信息增益最小阈值;(后剪枝)用验证集对已生成的树进行剪枝并选择最优子树,这时用损失函数最小作为剪枝标准。

ID3

1986年由Quinlan提出。

信息增益(information gain):表示得知特征X的信息而使得类Y的信息不确定性减少的程度。也可以认为是熵的减少或者是数据无序度的减少。

特征A对训练数据集D的信息增益g(D,A),定义为集合D的经验熵H(D)与特征A给定条件下D的经验条件熵H(D|A)之差:

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

H(D)=k=1K|Ck||D|log2|Ck|D H ( D ) = − ∑ k = 1 K | C k | | D | l o g 2 | C k | D

H(D|A)=i=1n|Di||D|H(Di)=i=1n|Di||D|k=1K|Dik||Di|log2|Dik|Di H ( D | A ) = − ∑ i = 1 n | D i | | D | H ( D i ) = − ∑ i = 1 n | D i | | D | ∑ k = 1 K | D i k | | D i | l o g 2 | D i k | D i

一般的,熵H(Y)与条件熵H(Y|X)之差称为互信息(mutual information)。决策树学习中的信息增益等价于训练数据集中类与特征的互信息

特征选择 : 对训练数据集,计算每个特征的信息增益,选择信息增益最大的特征。

:一信息增益为划分数据集的特征,存在偏向于选择取值较多的特征的问题。使用信息增益比(information gain ratio)可以对这一问题进行校正

C4.5

1993年由Quinlan提出。

信息增益比:特征A对训练数据集D的信息增益比:信息增益g(D,A)与训练数据集D关于特征A的值的熵H(D)之比:

gR(D,A)=g(D,A)HA(D) g R ( D , A ) = g ( D , A ) H A ( D )

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

特征选择 : 对训练数据集,计算每个特征的信息增益比,选择信息增益比最大的特征。

CART(classification and regression tree)

1984年由Breiman提出。CART同样由特征选择、树的生成及剪枝组成,既可以用于分类也可以用于回归。

CART假设决策树是二叉树,内部结点特征的取值为“是”和“否”,左分支是取值为“是”的分支,右分支是取值为“否”的分支。等价于递归地二分每个特征,将特征空间划分为有限个单元,并在这些单元熵确定预测的概率分布,也就是在输入给定的条件下输出的条件概率分布。

决策树的生成就是递归地构建二叉决策树的过程。对回归树用平方误差最小化准则,对分类树用基尼系数(Gini index)最小化准则,进行特征选择,生成二叉树。

回归树

最小二乘回归树:选择第j个变量x_j和它的取值s作为切分变量和切分点并定义两个区域1和R2。遍历所有输入变量,找到最优的切分变量j,构成一个(j, s),依次将输入空间切分为两个区域。接着,对每个区域重复上述划分过程,直到满足停止条件。

minj,s[minc1xiR1(j,s)(yic1)2+minc2xiR2(j,s)(yic2)2] m i n j , s [ m i n c 1 ∑ x i ∈ R 1 ( j , s ) ( y i − c 1 ) 2 + m i n c 2 ∑ x i ∈ R 2 ( j , s ) ( y i − c 2 ) 2 ]

cm=ave(yi|xiRm) c m = a v e ( y i | x i ∈ R m )

分类树

基尼指数:分类问题中,假设有K个类,样本点属于第K个类的概率为p_k,则概率分布的基尼指数定义为:

Gini(p)=k=1Kpk(1pk)=1k=1Kp2k G i n i ( p ) = ∑ k = 1 K p k ( 1 − p k ) = 1 − ∑ k = 1 K p k 2

对于二分类问题,若样本点属于第1个类的概率是p,则概率分布的基尼指数为

Gini(p)=2p(1p) G i n i ( p ) = 2 p ( 1 − p )

对于给定的样本集合D,其基尼系数为:

Gini(D)=1k=1K(|Ck||D|)2 G i n i ( D ) = 1 − ∑ k = 1 K ( | C k | | D | ) 2

这里C_k是D中属于第k类的样本子集,K是类的个数。

如果样本集合D根据特征A是否取某一可能值a被分割成D1和D2两部分,D2=D-D1。特征A条件下集合D的基尼指数:

Gini(D,A)=|D1||D|Gini(D1)+|D2||D|Gini(D2) G i n i ( D , A ) = | D 1 | | D | G i n i ( D 1 ) + | D 2 | | D | G i n i ( D 2 )

基尼指数Gini(D)表示集合D的不确定性,基尼指数Gini(D,A)表示A=a分割后集合D的不确定性。

基尼指数的值越大,样本集合的不确定性也越大,这一点与熵相似。

特征选择 : 对训练数据集,计算每个特征的基尼指数,选择基尼指数最小的特征。

《Machine Learning in Action》 3、9

《统计学习方法》 5

《机器学习》 4

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值