C4.5 算法对于连续性属性的处理方法介绍
2016-06-07 13:08
447 查看
C4.5既可以处理离散型属性,也可以处理连续性属性。在选择某节点上的分枝属性时,对于离散型描述属性,C4.5的处理方法与ID3相同。
对离散分布、且取值数目>=3的特征的处理:
C4.5决策树可以支持多叉树的形式,因此对于数目大于等于3的离散特征,可以采用多分叉的形式
对于连续分布的特征,其处理方法是:
先把连续属性转换为离散属性再进行处理。虽然本质上属性的取值是连续的,但对于有限的采样数据它是离散的,如果有N条样本,那么我们有N-1种离散化的方法:<=vj的分到左子树,>vj的分到右子树。计算这N-1种情况下最大的信息增益率。另外,对于连续属性先进行排序(升序),只有在决策属性(即分类发生了变化)发生改变的地方才需要切开,这可以显著减少运算量。经证明,在决定连续特征的分界点时采用增益这个指标(因为若采用增益率,splittedinfo影响分裂点信息度量准确性,若某分界点恰好将连续特征分成数目相等的两部分时其抑制作用最大),而选择属性的时候才使用增益率这个指标能选择出最佳分类特征
对连续属性的处理如下:
1. 对特征的取值进行升序排序
2. 两个特征取值之间的中点作为可能的分裂点,将数据集分成两部分,计算每个可能的分裂点的信息增益(InforGain)。优化算法就是只计算分类属性发生改变的那些特征取值。
3. 选择修正后信息增益(InforGain)最大的分裂点作为该特征的最佳分裂点
4. 计算最佳分裂点的信息增益率(Gain Ratio)作为特征的Gain
Ratio。注意,此处需对最佳分裂点的信息增益进行修正:减去log2(N-1)/|D|(N是连续特征的取值个数,D是训练数据数目,此修正的原因在于:当离散属性和连续属性并存时,C4.5算法倾向于选择连续特征做最佳树分裂点)
对离散分布、且取值数目>=3的特征的处理:
C4.5决策树可以支持多叉树的形式,因此对于数目大于等于3的离散特征,可以采用多分叉的形式
对于连续分布的特征,其处理方法是:
先把连续属性转换为离散属性再进行处理。虽然本质上属性的取值是连续的,但对于有限的采样数据它是离散的,如果有N条样本,那么我们有N-1种离散化的方法:<=vj的分到左子树,>vj的分到右子树。计算这N-1种情况下最大的信息增益率。另外,对于连续属性先进行排序(升序),只有在决策属性(即分类发生了变化)发生改变的地方才需要切开,这可以显著减少运算量。经证明,在决定连续特征的分界点时采用增益这个指标(因为若采用增益率,splittedinfo影响分裂点信息度量准确性,若某分界点恰好将连续特征分成数目相等的两部分时其抑制作用最大),而选择属性的时候才使用增益率这个指标能选择出最佳分类特征
对连续属性的处理如下:
1. 对特征的取值进行升序排序
2. 两个特征取值之间的中点作为可能的分裂点,将数据集分成两部分,计算每个可能的分裂点的信息增益(InforGain)。优化算法就是只计算分类属性发生改变的那些特征取值。
3. 选择修正后信息增益(InforGain)最大的分裂点作为该特征的最佳分裂点
4. 计算最佳分裂点的信息增益率(Gain Ratio)作为特征的Gain
Ratio。注意,此处需对最佳分裂点的信息增益进行修正:减去log2(N-1)/|D|(N是连续特征的取值个数,D是训练数据数目,此修正的原因在于:当离散属性和连续属性并存时,C4.5算法倾向于选择连续特征做最佳树分裂点)
相关文章推荐
- 将博客搬至CSDN
- 前端【1】-图片滚动加载
- thinkphp A()、R()方法不能跨项目调用与当前action名称相同的控制器的原因
- 设计模式笔记-Iterator迭代器模式
- 使用Airbnb的Airflow来管理数据工作流
- HDU--2052 picture
- gen_tcp网络编程和Erlang/OPT的gen_serve
- BEA的Oracle JDBC驱动与Oracle的JDBC驱动区别如此之大,请谨慎选择、使用和调整!
- hdu1520 Anniversary party(treeDp)
- 例子
- Eclipse中输入系统变量和运行参数
- Attempt to set a non-property-list object 报错问题
- 图书管理系统java版
- Linux驱动学习笔记之一——高精度定时器2
- C#中yield用法
- embed chrome 无法播放问题
- Mongo DB安装及配置
- Android:pt 、sp、dp之间的换算
- 线程同步机制(一)--Synchronized,Lock
- 第二阶段冲刺第二天