R语言数据分析实战:十大算法之C5.0算法

  • A+

学习和应用数据挖掘算法,就从这十大经典数据挖掘算法入手,若是把这top 10 算法吃透了,数据挖掘也就有了根基了。

一、准备

安装分析挖掘相关包

  1. install.packages(c("adabag""arules""C50""dplyr""e1071""igraph""mclust"))
  2. install.packages( 'printr', type = 'source', repos = c('http://yihui.name/xran', 'http://cran.rstudio.com'))

二、C5.0算法R语言实现

R语言数据分析实战:十大算法之C5.0算法

1、C5.0算法简介

C4.5算法是决策树模型的一种算法,是原数据挖掘十大算法之一,而C5.0算法是C4.5算法的改进版,改进后的算法能够适用于大数据的情形,它运行起来速度更快,而且效果更好并且更稳健。

作为一种分类决策树模型算法,C5.0可以生成决策树或规则集。C5.0算法基于信息增益度分裂方式,第一次拆分确定样本子集,然后根据另一个字段再次拆分,这一过程重复进行直到样本子集不能被拆分为止。

C5.0算法以信息熵的下降速度(能够带来最大信息增益的变量)作为确定最佳分支变量和分割阈值的依据。熵是对样本不确定性的一种度量。一个系统越是有序,信息熵就越低;反之,一个系统越是混乱,信息熵就越高。

我们采用R中最常用的鸢尾花数据集iris进行算法的训练和测试。鸢尾花数据集150个观测,共三个种类。其中,Species表示花的种类,其他四列Sepal.Length,Sepal.Width,Petal.Length,Petal.Width分别表示花萼的长度和宽度以及花瓣的长度与宽度。

2、 载入C5.0的算法包

  1. library(C50)

3、 划分训练和测试集

从iris中随机选取100条数据作为训练集,剩下的则作为测试集:

  1. set.seed(2016) # 设随机数种子
  2. train.indeces <- sample(1:nrow(iris), 100)
  3. iris.train <- iris[train.indeces, ]
  4. iris.test <- iris[-train.indeces, ]

4、 采用C5.0建立决策树模型

采用C5.0函数基于训练集iris.train建立决策树模型:

  1. model <- C5.0(formula=Species ~ ., data = iris.train)

C5.0函数参数:

  • formula:模型的方程
  • data:训练集

5、数据测试

采用测试数据集iris.test进行测试:

  1. results <- predict(object = model, newdata = iris.test, type = "class")

采用predict泛型函数进行预测:

  • object:C5.0类的模型对象
  • newdata:测试集
  • type:预测类型,type = “class”返回所属的类,type = “prob”返回概率值

6、 预测效果

生成混淆矩阵:

  1. res <- table(results, iris.test$Species)
  2. res
results/ setosa versicolor virginica
setosa 12 0 0
versicolor 0 16 2
virginica 0 2 18

可以看到C5.0算法在测试集上有4个样本分类错误,预测的准确度为92%

南霁月
MySQL必知必会
数学建模教材(包括十大算法、matlab、lingo、spss、exce以及多种实例模型)
R语言神经网络模型银行客户信用评估数据
基于大数据的用户特征分析

发表评论

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen: