机器学习实战——第三章:决策树ID3/C4.5

本系列目的在于总结每一个分类器的特点(优点、缺点、使用数据类型、使用时的注意事项等)。相关代码自己搜。


python:建议使用2.7

python常用函数库:NumPy、scikit-learn等

python集成环境:anaconda



优点:

1、容易理解,能给出数据的内在含义

2、对异常值不敏感

3、容易将树转换为规则

4、能够将训练好的决策树存储下来,所有测试样本使用同一个决策树来分类,而不用为每一个样本单独训练一个决策树


缺点:

1、倾向于选择特征取值情况更多的特征最为最有特征

2、分类平面是垂直于超坐标系的一块块组合,对于和超坐标系成45°或135°角分布的a数据不能较好的分类

3、容易造成过拟合


使用数据类型:

1、连续型(先做离散化处理)

2、离散型


使用时注意事项:

1、划分结束条件:

所有样本的类别一致、

没有可继续划分的特征(采用ID3的选择-移除法使用每个特征,C4.5和CART不一定消除特征)、

样本总数少于某个阈值(这样不用剪纸操作,可以防止过拟合)

2、深刻理解信息、熵、信息增益等含义:

信息:使用最有效的编码方式(哈夫曼编码)对信息X=i进行编码,至少需要 -log.2.P(X=i) 个bits,P(X=i) = number(X=i)/number(X)。

熵:编码一个随机变量X所需要的平均bits数量,所以 H(X) = SIGMA[ P(X=i)*(-log.2.P(X=i)), i=1,...,n ] 。

信息增益:IG是由于根据变量A进行分类后,目标变量Y的熵在整个数据集S上的期望减少,所以 IGain(S,A) = Hs(Y) - Hs(Y|A),

IGain(S,A) = Hs(Y) - Hs(Y|A) = H(Y) - SIGMA[ P(A=a)*H(Y|A=a), a∈values(A) ]

    = SIGMA[ P(Y=i)*(-log.2.P(Y=i)), i=1,...,n ] - SIGMA[ P(A=a)*SIGMA[ P(Y=i|A=a)*(-log.2.P(Y=i|A=a)), i=1,...,n ], a∈values(A) ]

3、对于结束条件“没有可继续划分的特征”和“样本总数少于某个阈值”,如果此时结点的样本分类仍然不是纯的,则采用多数表决方法投票

4、注意,叶子节点不一定只存储分类结果1和0,还可以存储很多信息,如叶子节点的所有样本的年龄平均值等


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值