ID3算法

ID3算法使用信息增益为准则来选择划分属性

信息熵:

H ( X ) = − ∑ i = 1 n p i log ⁡ p i H(X)=-\sum_{i=1}^{n}p_{i}\log{p_{i}} H(X)=i=1npilogpi
熵度量了事物的不确定性,越不确定的事物,熵越大.
当样本集D中第i类样本所占的比例 p i p_{i} pi,则D的信息熵为:
H ( X ) = E n t ( D ) = − ∑ i = 1 n p i log ⁡ p i H(X)=Ent(D)=-\sum_{i=1}^{n}p_{i}\log{p_{i}} H(X)=Ent(D)=i=1npilogpi
信息熵越小说明事件越稳定.
换到决策树中可以表示某类样本所占总样本比例越大.

信息增益

假定数据集D中离散属性a有v个可能的取值,则会产生v个分支节点,其中第v个分支节点包含了D中所有属性a上取值为 a v a^{v} av的样本,记为 D v D^{v} Dv,可以用属性a对样本集D进行划分得到信息增益.描述了在知道a后数据集D不确定性减少的程度,
G a i n ( D , a ) = E n t ( D ) − ∑ i = 1 n D v D E n t ( D v ) Gain(D,a)=Ent(D)-\sum_{i=1}^{n}\frac{D^{v}}{D}Ent(D^{v}) Gain(D,a)=Ent(D)i=1nDDvEnt(Dv)
公式中后面的部分越小,减小的程度越小,增益越大.

算法过程

  1. 初始化信息增益的阈值 ϵ \epsilon ϵ
  2. 判断样本是否为同一类输出 D i D_{i} Di,如果是则返回节点树T,标记类别为 D i D_{i} Di
  3. 判断特征是否为空,如果是则返回单节点树T,标记类别为样本中输出类别D实例数最多的类别
  4. 计算A中的各个特征(一共n个)对输出D的信息增益,选择信息增益最大的特征Ag
  5. 如果Ag的信息增益小于阈值 ϵ \epsilon ϵ,则返回单节点树T, 标记类别为样本中输出类别D实例数最多的类别
  6. 否则,按特征Ag的不同取值Agi将对应的样本输出D分成不同的类别Di,每个类别产生一个子节点,对应特征值为Agi
  7. 对于所有的子节点,令D=Di,A=A-{Ag}递归调用2-6步,得到子树Ti并返回.

ID3的缺点

  1. ID3没有考虑连续特征
  2. ID3采用信息增益大的特征优先作为决策树的节点.在相同条件下,取值比较多的特征比取值比较少的特征信息增益大,
  3. ID3对缺失值的情况没有做考虑
  4. 没有考虑过拟合的问题

条件熵

条件熵

设有随机变量(X,Y),其联合概率分布为:
P ( X = x i i , Y = y j ) = p i j , i = 1 , 2 , . . . , n ; j = 1 , 2 , . . . , n P(X=x_{i}i,Y=y_{j})=p_{ij},i=1,2,...,n;j=1,2,...,n P(X=xii,Y=yj)=pij,i=1,2,...,n;j=1,2,...,n

条件熵表示H(Y|X)在已知随机变量X的条件下随机变量Y的不确定性,定义为:
H ( Y ∣ X ) = ∑ i = 1 n p i H ( Y ∣ X = x i ) H(Y|X)=\sum_{i=1}^{n}pi_{}H(Y|X=x_{i}) H(YX)=i=1npiH(YX=xi)
这里, p i = P ( X = x i ) , i = 1 , 2 , . . . , n p_{i}=P(X=x_{i}),i=1,2,...,n pi=P(X=xi),i=1,2,...,n。当熵和条件熵中的概率由数据估计(极大似然估计)得到时,所对应的熵分别为经验熵和经验条件熵。

算法ID3, C4.5与CART的差异:

在这里插入图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值