关闭

决策树算法基础:ID3与C4.5

标签: 决策树ID3C4.5机器学习监督学习
252人阅读 评论(0) 收藏 举报
分类:

          设X是一个取有限个值得离散随机变量,其概率分布为P(X=xi)=pi,   i=1,2,…,n。则随机变量X的信息熵为

                                                                 

   条件熵H(Y|X)表示在已知随机变量X的条件下随机变量Y的不确定性。H(Y|X)的计算公式为

 

   所以决策树分支后信息总熵H(D|A)=P1*H1+P2*H2+...+Pn*Hn,(特征A条件下D的经验条件熵)

   所以信息增益ΔH=H(D)-H(D|A)

   H(D|A)越小,ΔH越大,该特征A越适合作为当前的决策节点。



选取最佳特征伪代码:

计算信息总熵H(D)

遍历每一个特征下的关于D的经验条件熵H(D|A)

计算每一个特征的信息增益ΔH

将信息增益ΔH最大的特征作为最佳特征选为当前决策节点


ID3算法伪代码:

如果第一个标签的数量等于所有的标签数量,说明这是一个单节点树,返回这个标签作为该节点类

如果特征只有一个,说明这是一个单节点树,用多数表决法投票选出标签返回作为该节点类

否则,按信息增益最大的特征A作为当前决策节点,即决策树父节点

如果该特征的信息增益ΔH小于阈值,则用多数表决法投票选出标签返回作为该节点类

否则,对于该特征A的每一个可能值ai,将原空间D分割为若干个子空间Di

对于若干个非空子集Di,将每个Di中实例数最大的类作为标记,构建子节点

以Di为训练空间,递归调用上述步骤


由于信息增益存在偏向于选择取值较多的特征的问题,而C4.5算法中,将ID3算法里的信息增益换成信息增益比,较好地解决了这个问题。


决策树的优点在于计算量简单,适合有缺失属性值的样本,适合处理不相关的特征。而缺点是容易过拟合,可以通过剪枝来简化模型,另外随机森林也解决了这个问题。


具体代码见github链接。https://github.com/AlanLin2015/Machine-Learning/tree/master/trees

                                                                           


0
0

查看评论
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
    个人资料
    • 访问:38469次
    • 积分:468
    • 等级:
    • 排名:千里之外
    • 原创:14篇
    • 转载:0篇
    • 译文:0篇
    • 评论:6条
    文章分类
    最新评论