机器学习 - 决策树C4.5算法

基于树的模型最简单的是ID3算法,ID3算法有两大特点:

1)节点分支时,使用信息增益计算最合适的属性作为当前节点的划分属性。

2)只能处理标称性属性。

假设按照属性A对数据集D进行划分,划分之后生成N个数据集D1,D2...,则属性A的信息增益公式为:


显然若一个属性取值较多,那么其熵En(D)相对就更大,gain(A)也就越大。


1. 信息增益率

C4.5为了克服信息增益带来的缺陷,选用了信息增益率作为划分节点的算法,假设按照属性A对数据集D进行划分,划分之后生成N个数据集D1,D2...,则属性A的信息增益率公式为:

gain_ratio(A) = gain(A) / En(A)


2. 数值型数据

理论上来说,数值型数据是由无限种取值可能的,但是由于样本是有限的,因此数值型数据也可以看做是离散的标称性数据。因此对数值型数据进行分支时,一个简单的idea就是二分法,即遍历当前数值型数据的每个值,计算以每个值对当前属性进行二分法后的信息增益率,看哪一个信息增益率最大,则选择该值作为当前属性划分的界限。这样二分计算数值型属性分界点需要计算N次信息增益率,但是标称性数据在计算分界点时仅仅计算一次信息增益率

针对这个问题,是有一些方法可以优化的,训练时train_x, train_y,计算train_x中某一个连续属性的信息增益率,则对train_x排序,然后仅仅计算train_y发生变化时train_x的信息增益率。这样可以减少一部分计算量,anyway,优化方法很多,这只是其中一种。




  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值