参考文献:
1.周志华.《机器学习》,2016版.
2.李航.《统计学习方法》.
3.中国地质大学,蒋良孝博士,MOOC上的《机器学习》视频课程.
4.于剑.机器学习:从公理到算法.
初次接触《机器学习》,只是为了寻求一种解决问题的捷径(如建模),由此带来的一连串行为:找软件、找程序包(自己徒手码,是个奇迹),找
不到,就换"阵地"。虽然在当时可以解决问题,但是频繁地使用,其中不可言喻的遗憾和失望也日益强烈。之前看于剑博士书的时候,有人说,这本书
是正儿八经的胡扯,什么都可以用公式或者定理证明和计算,更为可笑的是像"丑小鸭"定理,"天下没有免费的午餐"等江湖术语频现。。。。。
体验过囫囵吞枣,面临过捉襟见肘,所以痛定思痛,重新踏上学习的征程。
基础知识点
-
一般的,一棵决策树包含一个根结点、若干个内部结点和若干个叶结点;叶结点对应于决策结果,其他每一个结点对应于一个属性测试。其中根结点包含样本全集;其他结点包含的样本集合根据测试属性被划分到子结点中。
-
决策树的目的在于产生一棵泛化能力强,即处理于剑示例能力强的决策树。遵循"分而治之"的策略。
-
六个问题:
- 最佳划分的度量问题;
- 处理缺失属性值问题;
- 处理连续属性值问题;
- 叶子结点的判定问题;
- 怎样解决过拟合问题;
- 待测样本的分类问题.
最佳划分度量问题
目标:希望决策树的分支结点所包含的样本尽可能属于同一类别,即结点的"纯度"越来越高.
1. 信息增益(C3.0)
特征A对训练数据集D的信息增益 g(D,A),定义为 $g(D,A)=H(D)-H(D|A)$
其中,H(D)为信息熵,单位为(bit或nat),表示了对数据集D进行分类的不确定;
具体计算公式为:$H(D)=-Sum(Pi*log(Pi,2))$,i为数据集D对应的类别属性值;
H(D|A) 经验条件熵,表示了在特征A给定的条件下,对数据集D进行分类的不确定性;
H(D)-H(D|A)称为互信息,在决策树为信息增益,表示由于特征A而使得数据集D的类的不确定性减少的程度.
特征选择方法
选择信息增益最大的特征。
存在的问题和改进
-
存在的问题
对可取值数目较多的属性有所偏好,这种偏好会引起过拟合问题。
(原因:由决策树的产生算法可知,构建决策树的过程中,始终选择信息增益最大的特征作为结点,然后更具结点的不同属性,在子结点递归构建决策树,直到信息增益都很小或者没有别的特征可以选择为止。当属性以及属性值较多时,决策树的规模将会非常庞大,有可能会囊括数据集最一般的特性,也就是过拟合问题) -
改进
- 增益率(C4.5)
G a i n _ r a t i o = g ( D , A ) / H A ( D ) Gain\_ratio=g(D,A)/H_A(D) Gain_ratio=g(D,A)/HA(D)
H_A(D):为数据集D在特征A的划分下的信息熵,称为分裂信息,度量了属性划分广度的均匀性;
需要注意的是,增益率准则对取值数目较少的属性有所偏好,在C4.5中不直接使用,而是使用了一个启发式:先从候选划分属性中找出信息增益大于平均水平的属性,在从中选择增益率最高的。
-
平均信息增益
A v e r G a i n = g ( D ,
- 增益率(C4.5)