本
文
摘
要
十大算法 —— C4.5
1、基本介绍
(1)概述:C4.5算法是一种决策树算法。主要用于分类。决策树是迄今为止发展的最为成熟的一种概念学习方法。作为用于分类和预测和主要技术,决策树算法着眼于从一组无规则的事例中推理出决策树的表现形式的分类规则,采用自顶向下的递归方式,在决策树的内部节点中进行属性值的比较,并根据不同属性值判断从该节点向下的分支,最终在决策树的叶节点处得到结论。从根节点到某个叶节点就对应着一条合理规则,整棵树就对应着一组表达式规则。决策树算法的最大优点是它在学习过程中不需要使用者了解很多背景知识,只要训练事例能够用属性即结论的方式表达出来,就能使用该算法进行学习。C4.5算法的前身的ID3算法,C4.5在预测变量的缺失值处理、剪枝技术、派生规则等方面相对于ID3有了很大的改进,既适合于分类问题,又适合于回归问题。
(2)优点
[1] 产生的分类规则易于理解,准确率较高;
[2] 能处理非离散化数据和不完整数据;
(3)缺点
[1] 在构造树的过程中,需要对数据集进行多次顺序扫描和排序,因而导致了算法的低效;
[2] 只适合于能够驻留于内存的数据集,当训练集大得无法在内存中容纳的时候,程序会无法运行下去;
[3] 对训练样本数量和质量要求较高,对空值的适应性较差。
(4)该算法相关的决策树研究方向:特征选择、组合方法、分类规则、增量学习等。
2、算法流程
(1)问题说明
(2)算法步骤(文字描述版)
(3)算法步骤(数学描述版)
3、详细例子
(1)例子一(靠嘴模拟)
(2)例子二(R语言实操)
[1] 代码
library(pacman) # 加载pacman包 p_load(party) # 安装C4.5算法所需要的包 library(party) # 加载party包 s<-sample(nrow(iris),100,replace=F) # 对iris数据集进行抽样 train<-iris[s,] # 构造训练集 test<-iris[-s,] # 构造测试集 c4.5<-ctree(Species~.,data=train) # 构建C4.5决策树 plot(c4.5,type="simple") # 查看决策树的分类结果 p1<-predict(c4.5,newdata=test) # 进行预测 table(p1,test[,5]) # 查看预测效果 correct<-sum(as.numeric(p1)==as.numeric(test[,5]))/nrow(test) # 计算准确率 correct # 准确率为0.96[2] 结果
从最终的准确率结果来看,决策树构建的效果不错,分类的规则能够用于新的数据集的类别判定~