首页 > 代码库 > C4.5算法

C4.5算法

C4.5是一套用来处理分类问题的算法,属于有监督学习的类型,每个实例由一组属性来描述,每个实例仅属于一个类别。

如下是一个数据集

技术分享

 

算法的发展历史

J.Ross Quinlan设计的C4.5算法源于名为ID3的一种决策树诱导算法。

而ID3是迭代分解器(iterative dichotomizers)系列算法的第3代。

除了可以分类之外,C4.5还可以具有良好可理解性的规则。

Friedman的Original Tree算法。

Breiman,Olshen和Stone的呢个人参与下发展为CART算法。

CLS(概念学习系统)对于ID3和C4.5的发展也有贡献。

而如今C4.5已被See5/C5.0所取代(Rulequest Research公司的商用产品)。

算法描述

C4.5不是单一的算法,而是泛指C4.5、C4.5-no-pruning等具有诸多遍体的一整套算法。

技术分享

算法分解:

Step 1、算法的输入是带有属性值的数据集D

Step 2、首先将决策树Tree置为空

Step 3、如果数据集D为纯的或者已经达到了满足终止的准则,那么终止程序,否则转入Step 4

Step 4、对D中所有的属性计算出一个以属性来分类的值

Step 5、根据上面计算出来的值,根据一定的准备选出最佳的分类属性

Step 6、根据选出来的属性创建一个决策节点,并将其加入到树Tree中

Step 7、该决策节点会将数据集分成若干个子数据集Dsub

Step 8、递归对该数据集进行操作,将得到子树Treesub,并将Treesub加入到Tree中

 

从根节点上开始在每个节点上测试一个特定的属性,把节点数据划分为更小的子集,并用子树表示;该过程一直进行,直到子集成为纯的,即子集中的所有实例都属于同一类别,树才停止增长。

技术分享

 

如果属性是离散的话,就直接分叉;如果属性是连续值,那么就要选择一个合适的判定阈值。

C4.5算法