机器学习笔记(5)——C4.5决策树中的连续值处理和Python实现

 

在ID3决策树算法中,我们实现了基于离散属性的决策树构造。C4.5决策树在划分属性选择、连续值、缺失值、剪枝等几方面做了改进,内容较多,今天我们专门讨论连续值的处理和Python实现。

1. 连续属性离散化

C4.5算法中策略是采用二分法将连续属性离散化处理:假定样本集D的连续属性a有n个不同的取值,对这些值从小到大排序,得到属性值的集合\left \{ a^1,a^2,...,a^n \right \}。把区间\left [a^i,a^i+1 \right )的中位点\frac{a^i+a^{i+1}}{2}作为候选划分点,于是得到包含n-1个元素的划分点集合

T_a=\left \{ \frac {a_1+a_{i+1}}{2}|1\leqslant i\leqslant n-1\right \}

基于每个划分点t,可将样本集D分为子集D_{t}^{-}D_{t}^{+},其中D_{t}^{-}中包含属性a上不大于t的样本D_{t}^{+}包含属性a上大于t的样本。

对于每个划分点t,按如下公式计算其信息增益值,然后选择使信息增益值最大的划分点进行样本集合的划分。Gain(D,a,t)=Ent(D)-\sum_{\lambda \in \left \{ -,+ \right \}}\frac{|D^\lambda _t|}{|D|}Ent(D^\lambda _t)

在ID3算法中的西瓜数据集中增加两个连续属性“密度”和“含糖率”,下面我们计算属性“密度”的信息增益。

从数据可以看出,17个样本的密度属性值均不同,因此该属性的候选划分点集合由16个值组成:

T_{density}=\left \{ 0.244,0.294,0.351,0.381,0.420,0.459,0.518,0.574,0.600,0.621,0.636,0.648,0.661,0.681,0.708,0.746 \right \}

评论 135
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值