admin 发表于 2015-11-18 09:42:03

十大经典数据挖掘算法的R语言实践(一)C4.5算法

十大经典数据挖掘算法是那些?
民间流传,学习和应用数据挖掘算法,就从这十大经典数据挖掘算法入手,若是把这top 10 算法吃透了,数据挖掘也就有了根基了。我甚是赞同此种说法,并且经典的东西,美好的东西,需要优先学习、研究和实践。
数据挖掘十大经典算法可以分为以下情况。
1 与分类相关的算法:C4.5, CART, 朴素贝叶斯, K近邻, 支持向量, 最大期望, AdaBoost
2 与聚类相关的算法:K均值
3 与关联规则相关的算法:Apriori
4与搜索引擎相关的算法:PageRank
关于这些算法的原理和思想,每本数据挖掘方面的书籍都会有介绍,推荐两本数据挖掘经典书籍《数据挖掘导论》 和《数据挖掘:概念与技术》。
本文介绍C4.5这个分类算法如何在R语言中使用。这些算法能够用R语言方便的用起来,这要得益于包含这些算法R包和感谢设计与实现这些算法的R贡献者们。
做数据挖掘,需要数据,我们用iris数据集,简单,典型的分类数据集,便于我么解释。
iris数据集help(iris)head(iris)
C4.5算法的R语言实践C5.0算法是C4.5算法的延续和升级,SPSS Modeler建模选项卡中也提供这种算法。在此,我们用R语言中的C50包所提供的C5.0函数实现C5.0算法。
第一步:加载相应包
library(C50)## Warning: package 'C50' was built under R version 3.1.3library(printr)温馨提示:若是没有安装上述包,请在加载前,先安装这些包。
第二步:把iris数据集分为训练集和测试集,按着2:1划分,即训练集100个,测试集50个train.indeces <- sample(1:nrow(iris), 100)iris.train <- irisiris.test <- iris[-train.indeces, ]
第三步:构建C5.0算法模型model.C5.0 <- C5.0(Species ~ ., data = iris.train)
第四步:交叉验证,使用测试数据集测试模型results.C5.0 <- predict(object = model.C5.0, newdata = iris.test, type = "class")

第五步:生成混淆矩阵table(results.C5.0, iris.test$Species)
C4.5 算法的原理
C4.5算法是数据挖掘算法中的一种分类决策树算法,其核心算法是ID3 算法. C4.5算法继承了ID3算法的优点,并在以下几方面对ID3算法进行了改进:
1) 用信息增益率来选择属性,克服了用信息增益选择属性时偏向选择取值多的属性的不足;
2) 在树构造过程中进行剪枝;
3) 能够完成对连续属性的离散化处理;
4) 能够对不完整数据进行处理。
C4.5算法有如下优点:产生的分类规则易于理解,准确率较高。其缺点是:在构造树的过程中,需要对数据集进行多次的顺序扫描和排序,因而导致算法的低效。
参考资料
1 《数据挖掘导论》和《数据挖掘:概念与技术》
2 数据挖掘十大经典算法(详解)
3 Top 10 data mining algorithms in plain R
页: [1]
查看完整版本: 十大经典数据挖掘算法的R语言实践(一)C4.5算法