1.决策树是模拟 人决策过程,按因素影响程度 从大到小,依次决策,得出最终结论。
如下图:为分类一封邮件是否为垃圾邮件
2.如何评判因素的影响程度
a.评判影响程度的一种方法是 信息增益,信息增益越大,表示该因素的影响程度越高,用该因素决策,越容易到达结论(只剩下单一可能类别)
b.信息的定义:如果待分类的事物可能划分在多个分类之中,则符号xi的信息定义为:
c.熵:信息的期望值。熵是度量样本集合纯度最常用的指标。为了计算熵,我们需要计算所有类别所有可能包含的信息期望值:
其中,y表示事物总共有y个分类,第k类事物的概率表示为pk ,所有类别的信息分别乘以各自的概率 然后累加,得到的就是信息的期望,即熵
d.信息增益:可以理解为样本集合划分前的熵 和 样本集合用属性a划分之后的加权熵 的差,加权系数 为 |Dv| / |D|
其中,V表示属性a上有 V个不同的取值,Dv为属性a=v的样本集合,属于样本集合D的子集;
Dv上可以包含事物的多个分类,Ent(Dv)为Dv上的信息熵。
加权系数w=|Dv| / |D| ,即Dv的样本数 / D的样本数
3.递归构建决策树:决策树算法,首先利用信息增益,量化因子的影响程度,然后从影响程度最大的因子出发,依次判断,逐渐提升样本集合纯度,最后得出分类结论。构建过程如下:
Line2 if D中的样本全同属于一个类别C,如西瓜分为好瓜 坏瓜,此时D中的样本全为好瓜
Line5 if D中样本在A上取值相同,A中有d个属性,但此时d个属性的划分结果全为好瓜,即取值相同;D中的样本可以有坏瓜,在属性a 下,k类的样本最多,此时将a的取值标记为k
Line8 从A中选择最优划分属性a*,即遍历属性集A,计算a1,a2,….,ad的信息增益,信息增益最大的属性为最优划分属性;
Line9,line10 a*属性中,有n个不重复属性值,对每个属性值node生成一个分支,令Dv表示D上a*=av的样本子集
Line14 递归划分。
下一篇我们将讲到如何用代码实现决策树
参考资料:机器学习--周志华
参考资料:机器学习实战