决策树算法简介

来源:互联网 发布:js如何获取父节点 编辑:程序博客网 时间:2024/04/25 05:06

决策树(decision tree)

一、背景知识

符号xi的信息量:

L(xi) = - log2p(xi)

熵:

H = -p(xi)log2p(xi)

信息增益:

特征A对训练数据集D的信息增益g(D,A)= H(D) - H(D|A)

其中,定义集合D的经验熵H(D)与特征A给定条件下D的经验条件熵H(D|A)


二、优缺点及适用数据类型

优点:计算复杂度不高,输出结果易于理解,对中间值的缺失不敏感,可以处理不相关特征数据。
缺点:可能产生过度匹配问题,连续变量处理效果不好。
适用数据类型:数值型和标称型。

三、基本算法——ID3算法

决策树类似于流程图的树结构:

每个内部节点表示在一个属性上的测试
每个分支表示一个属性输出
树叶节点表示类或类分布
树的最顶层是根节点

算法:

寻找划分数据集的最好特征,划分数据集,创建分支点
对于划分的子集,递归上步
递归终止条件:所有子项属同一类或用完所有特征(使用多数表决分类)

四、优化

构造决策树很耗时:

→将分类器存储在硬盘上,使用Python中的pickle模块

处理连续性变量的属性:

→离散化

避免overfitting

→先剪枝、后剪枝


五、算法比较
C4.5gain ratio
CARTgain index
ID3(信息增益)

异:属性选择度量方法不同

同:都是贪心算法,自上而下


六、实现代码地址
https://code.csdn.net/snippets/2602934.git






原创粉丝点击