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中
从根节点上开始在每个节点上测试一个特定的属性,把节点数据划分为更小的子集,并用子树表示;该过程一直进行,直到子集成为纯的,即子集中的所有实例都属于同一类别,树才停止增长。
如果属性是离散的话,就直接分叉;如果属性是连续值,那么就要选择一个合适的判定阈值。