- 决策树
决策树解决的是一个分类的问题,属于监督学习的一种。举个例子,对于下面的数据集,数据的特征有:年龄,工作,房子,信贷等,通过这些特征的信息决定了是否给发放贷款(分类问题)。
通过特征选择,建立一颗决策树。(如下图所示)
决策树建立的难点在于:
特征选择
选择什么样的特征作为分类的依据,比如先考虑有没有工作,还是先考虑年龄,或者是其他特征。主要的算法是ID3,C4.5。ID3 (iterate dichotmiser 3 迭代二分器 3)减枝
ID3 和 C4.5 算法递归的产生决策树,知道不能继续下去为止,这样容易过拟合。在决策树学习的过程里面,将决策树进行简化的过程叫做减枝,从而简化分类树的过程。
主要算法,CART (classification and regression tree 分类与回归树)算法
特征选择
预备知识:
- 熵的概念
熵衡量的是数据的无序程度(或者是不确定的程度),熵越大,表示不确定的程度越大。
对于随机变量X ( X可能的值是x1,x2,x3 ,他们的出现的概率分别是px1,px2,px3) , 熵的定义:
-
条件熵
对于随机变量(X,Y),他们的联合概率分布为:
来一个test,对于给出的表5-1(即第一个图)里面的数据集D,分别以A1,A2,A3,A4表示年龄,工作,房子和信贷的4个特征,求 H( D | A1 )
-
信息增益
特征A 对训练数据集D的信息增益g(D,A) :
如果特征A 可以很好的划分数据集D,(换句话说如果以特征A划分之后,数据集的确定性变成100%(确定事件),那么这个时候H(D|A) =0 ),g( D, A) 越大,特征A的分类效果越好。
举个例子:
对于以上的数据集D,求它的决策树。
-
分别以特征A1,A2,A3,A4 , 分别计算g( D, Ai)
g( D, A3) 是最大的,也就是说,用特征A3划分数据效果最好。A3表示的是有没有房子。(感觉很符合常理啊~)
ID算法 构造决策树
对于数据集D,首先计算g( D, A1) ,g( D, A2) ,g( D, A3) 和 g( D, A4)大小。g( D, A3)最大。第一步用A3 划分。然后,用特征A3把数据集划分成两个子集D1(A3==有房)和D2(A3==无房)。
对于子集D1,里面的实例都属于同一类,所以以该类作为该叶节点的标记,然后递归结束END。
对于子集D2,继续从剩下的特征A1,A2,A4选择特征:
所以,构造的决策树是:
但是,ID3构造决策树有一个问题是:容易过拟合,因为他在学习的时候,过多的考虑如何将数据准确的分类,从而构造出复杂的决策树。
C4.5 算法和ID3相似,区别在于ID3用信息增益来选择分类的特征,C4.5选择用信息增益比作为分类的依据。
决策树的减枝
todo
CART(分类和递归树算法)算法
todo
参考文献
《统计学习方法》 李航
《机器学习实战》