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

原创 2016年08月29日 23:10:19

          设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

                                                                           


python实现决策树C4.5算法(在ID3基础上改进)

一、概率 C4.5主要是在ID3的基础上改进,ID3选择(属性)树节点是选择信息增益值最大的属性作为节点。而C4.5引入了新概念“信息增益率”,C4.5是选择信息增益率最大的属性作为树节点。 二、...

决策树算法ID3 C4.5 Java实现代码

  • 2017年03月13日 18:22
  • 15KB
  • 下载

分类算法-----决策树(包括ID3,C4.5)

第一篇:决策树学习                                                             (Machine Learning & D...

决策树经典算法:ID3与c4.5

  • 2015年02月09日 11:48
  • 171KB
  • 下载

《机器学习实战》基于信息论的三种决策树算法(ID3,C4.5,CART)

决策树是通过一系列规则对数据进行分类的过程,他提供一种在什么条件下会得到什么值的类似规则方法,决策树分为分类树和回归树,分类树对离散变量最决策树,回归树对连续变量做决策树如果不考虑效率等,那么样本所有...

【机器学习】分类算法:决策树(ID3、C4.5、CART)

决策树算法:ID3、C4.5。

ID3和C4.5决策树算法总结

决策树的算法流程主要是: 1.如果当前样本集全部为同一类别,则返回这一类标签 2.如果当前属性集为空集或者D中样本在属性集中的取值全部相同,那么采用多数表决法,返回样本数最多的类标签 3.如果不...

决策树算法解析---ID3,C4.5

一:虽然网上已经有了很多的关于决策树的文章,自己也反复的看了不少遍,但是过了一段时间又觉得比较模糊,因此自己打算来写一篇,自己着重强调物理意义,增加自己的理解。文章末尾会给出参考链接 二: 决策树首先...

机器学习—决策树(ID3,C4.5)算法解析

机器学习—决策树(ID3,C4.5)算法解析Label 机器学习 决策树 解析 决策树实现思路:假设有已知的数据集X【例如某些人的集合,数据内容包括用于描述他们的特征属性及特征属性值,如性别(男|...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:决策树算法基础:ID3与C4.5
举报原因:
原因补充:

(最多只允许输入30个字)