决策树的主要思想,就是不断在当前分类状态下寻找对于分类贡献度最大的特征,依据该特征,再将训练样本在现在的分类基础上进一步分类,将每一类依据是否含有特征,分为两类。
其分类步骤如下:
step1:将所有训练样本视为一类
step2:计算所有特征的信息增益,挑选出信息增益最大的特征,即对于分类贡献度最大的特征
step3:将训练样本按照是否含有该特征,在当前分类状态下进一步细分,得到2*Ni个类,Ni为当前状态下类的个数。
step4:判断是否满足算法终止条件,若是,则当前决策树为所求,否则,执行STEP2。
关于信息增益的计算:
由于只是想大致了解一下决策树的思想,对于是否有其他计算方式我没有去深究,只列出下面这个信息增益的计算方式,有助于自己对于决策树整个执行流程的理解。下表为训练样本集举例:
ID | 拥有房产(是/否) | 婚姻情况(单身,已婚,离婚) | 年收入(单位:千元) | 无法偿还债务(是/否) |
1 | 是 | 单身 | 125 | 否 |
2 | 否 | 已婚 | 100 | 否 |
3 | 否 | 单身 | 70 | 否 |
4 | 是 | 已婚 | 120 | 否 |
5 | 否 | 离婚 | 95 | 是 |
6 | 否 | 已婚 | 60 | 否 |
7 | 是 | 离婚 | 220 | 否 |
8 | 否 | 单身 | 85 | 是 |
9 | 否 | 已婚 | 75 | 否 |
10 | 否 | 单身 | 90 | 是 |
如果记录被分为n类,每一类的比例P(i)=第i类的数目/总数目。以上表所示训练样本为例,10个数据中可以偿还债务的记录比例为P(1) = 7/10 = 0.7,无法偿还的为P(2) = 3/10 = 0.3,N = 2。
信息增益为当前分类状态的不纯度值-基于特征进行分类后的不纯度值,即纯度差。
而对于不纯度的计算,有三种方式:
1、Gini不纯度
2、熵
3、错误率
以上即是我对决策树的总结,在信息增益计算部分,我引用了http://www.cnblogs.com/bourneli/archive/2013/03/15/2961568.html中的内容,感谢该博客作者