- A+
学习和应用数据挖掘算法,就从这十大经典数据挖掘算法入手,若是把这top 10 算法吃透了,数据挖掘也就有了根基了。
一、准备
安装分析挖掘相关包
- install.packages(c("adabag", "arules", "C50", "dplyr", "e1071", "igraph", "mclust"))
- install.packages( 'printr', type = 'source', repos = c('http://yihui.name/xran', 'http://cran.rstudio.com'))
二、C5.0算法R语言实现
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的算法包
- library(C50)
3、 划分训练和测试集
从iris中随机选取100条数据作为训练集,剩下的则作为测试集:
- set.seed(2016) # 设随机数种子
- train.indeces <- sample(1:nrow(iris), 100)
- iris.train <- iris[train.indeces, ]
- iris.test <- iris[-train.indeces, ]
4、 采用C5.0建立决策树模型
采用C5.0函数基于训练集iris.train建立决策树模型:
- model <- C5.0(formula=Species ~ ., data = iris.train)
C5.0函数参数:
- formula:模型的方程
- data:训练集
5、数据测试
采用测试数据集iris.test进行测试:
- results <- predict(object = model, newdata = iris.test, type = "class")
采用predict泛型函数进行预测:
- object:C5.0类的模型对象
- newdata:测试集
- type:预测类型,type = “class”返回所属的类,type = “prob”返回概率值
6、 预测效果
生成混淆矩阵:
- res <- table(results, iris.test$Species)
- res
results/ | setosa | versicolor | virginica |
---|---|---|---|
setosa | 12 | 0 | 0 |
versicolor | 0 | 16 | 2 |
virginica | 0 | 2 | 18 |
可以看到C5.0算法在测试集上有4个样本分类错误,预测的准确度为92%
支付宝打赏
微信打赏
赏