统计学习方法:决策树 (五)

目标:找到一个与训练数据矛盾较小的决策树,同时具有很好的泛化能力。

基本过程:从根结点开始,递归地选择最优特征,根据该特征对训练数据进行分割,直到每个子集都被分到叶结点上,有了明确的分类;但是这样得到的决策树在已知数据上表现完美,但在未知数据上表现未知,可能发生过拟合,所以需要进行剪枝,去掉过分细分的叶结点。   如果特征数量过多,可以在开始时就进行特征选择,只使用对训练数据有足够分类能力的特征。


特征选择

:随机变量不确定性的度量,值越大,对应的随机变量不确定性越大。其中pi代表X中每个值取值的概率。    经验熵


条件熵:在已知随机变量X的条件下随机变量Y的不确定性。           经验条件熵


这里统一规定0log0=0。

信息增益:特征A对训练数据集D的信息增益g(D,A),也称为互信息。其含义为由于特征A而使得对数据集D的分类的不确定性减少的程度。


信息增益比:信息增益会偏向于选择取值较多的特征,使用信息增益比可以进行校正。


上式HA(D)中的n代表的是特征A的取值个数,而上面H(D)中的n代表的是数据集D中所有的类别个数。


ID3算法:使用信息增益作为选择结点的标准,找到一个切分特征A后,对A的每一个可能值a对数据集进行切分,因此可能是多叉树,而不是二叉树。 结点对应的类为D中实例数最大的类。

C4.5算法:使用信息增益比作为选择结点的标准。也是多叉树。 结点对应的类为D中实例数最大的类。


剪枝:定义损失函数


其中|T|为所有叶结点的个数,t为叶结点,为叶结点t下的样本点个数,个样本点中属于类别k的样本个数。

如果剪枝后的损失函数值变小,则进行剪枝。


CART树

分类与回归树,二叉树。内部结点特征是一个判断语句,取值为是或否,即特征上是否取这个值,分别对应左右两个分支。

特征选择:回归树使用平方误差最小化,分类树使用基尼指数最小化准则。


最小二乘回归树

输入空间划分确定后,可以使用每个样本的实际值与预测输出值的平方误差来表示预测误差,而为了最小化平方误差,易知每个叶结点上的输出应该为当前叶结点下所有样本的输出的平均值。最优切分变量j和最优切分点s的求解为:


也就是说找到一个切分点,能够最小化两侧的平方误差总和。而两侧的输出则分别为对应包含的样本点的平均值。


分类树

最小化基尼指数选择最优特征,同时决定该特征上的最优二值切分点,此切分点在所有特征的所有切分点中基尼指数最小。

基尼指数


对应的二分类中


这里的D1和D2代表的是根据特征A的二值切分点将数据集D分割成的两个部分。

基尼指数越大,不确定性越大,所以我们需要挑选能够最小化基尼指数的特征。


特征如何切分?

  • 离散变量

如果有N个不同的值,那么需要将这N个值人工地划分到两个集合中,分别代表两个分支。

  1. N=2,设为{A,B}两个值,那只有一种划分方式:A-B。
  2. N=3,设为{A,B,C}三个值,那可以有3中划分方式:A-BC,B-AC,C-AB。
  3. N=4,设为{A,B,C,D}四个值,那通过组合可以有7种划分方式:A-BCD,B-ACD,C-ABD,D-ABC,AB-CD,AC-BD,AD-BC.
  4. N=5,设为{A,B,C,D,E}四个值,那通过组合可以有15种划分方式:A-BCDE,B-ACDE,C-ABDE,D-ABCE,E-ABCD,AB-CDE,AC-BDE,AD-BCE,AE-BCD,BC-ADE,BD-ACE,BE-ACD,CD-ABE,CE-ABD,DE-ABC。
依次类推,上述中的-代表分裂点,左右分别为两个分支中对应的特征值。最终需要找到切分后的基尼指数最少的切分方式。
  • 连续变量
需要将连续值从小到大排好序,分别以每两个值的平均值x作为切分点,左右分支分别对应小于x,大于等于x。如果连续值的个数非常多,那么这种方式需要计算的候选切分点太多,为了减少计算量,可以先将值划分到规定个数的bin中,每个bin中值的大小对应为(a11,a12),(a21,a22)......(ak1,ak2),那么可以依次选取(a12+a21)/2,(a22+a31)/2......作为切分点,计算基尼指数。

猜你喜欢

转载自blog.csdn.net/u010358304/article/details/80680137