决策树 Decision tree
决策树是一个类似于流程图的树结构:
- 每个内部结点表示在一个属性上的测试;
- 每个分支代表一个属性输出;
- 每个树叶结点代表类或类分布。
准备知识
熵
香农提出了信息熵(entropy)的概念,信息量的度量就等于不确定性的大小,不确定性越大,熵越大。
决策树算法
属性结点不同的顺序决定了算法不同的复杂度。因选定属性的度量方法不同,产生了不同的算法;
ID3
信息增益(Information Gain)最大的属性作为最先的结点,代表这个属性包含了最多的信息。每确定一个结点后,在这个结点各分类的数据中,重新计算下一个结点。
C4.5
ID3算法存在一个问题,就是越细小的分割分类错误率越小,所以ID3会越分越细,形成过拟合。
C4.5对ID3进行了改进,优化项要除以分割太细的代价,这个比值叫做信息增益率,并以此作为选择属性结点顺序的标准。
CART(Classification and Regression Tree)
使用基尼指数来选择划分属性
直观来说,Gini(D)反映了从数据集D中随机抽取两个样本,其类别标记不一致的概率。因此,Gini(D)越小,其纯度越高。
属性A的基尼系数
剪枝(pruning)
构建树可能需要剪枝,解决过拟合问题
- 预剪枝(prepruning):在树生长过程中设定指标,达到指标就停止生长。容易产生”视界局限“,丢失有效信息。
- 后剪枝(post pruning):树充分生长,再对相邻的叶结点进行合并。计算量代价大。
连续值处理
所有属性必须是离散值,如果是连续值通过设定阈值创建离散值。
决策树的优点
- 直观,便于理解;
- 小规模数据集有效。
决策树的缺点
- 处理连续变量不好设定阈值;
- 属性类别较多时,错误增加的比较快;
- 可规模性一般。