RForML之核心包:rpart
作者:陆勤
概述:rpart是Recursive Partitioning and Regression Trees的简称,它实现了 Breiman, Friedman, Olshen and Stone这三位大佬所写书籍《Classification and Regression Trees》大多数算法的功能。
一、rpart包介绍
rpart是Recursive Partitioning and Regression Trees的简称,它实现了 Breiman, Friedman, Olshen and Stone这三位大佬所写书籍《Classification and Regression Trees》大多数算法的功能。
二、rpart包安装与加载
rpart包是扩展包,需要先安装和加载,才能使用。
if(!require(rpart))
{
install.packages('rpart')
require(rpart)
}
三、rpart包应用
利用rpart包实现决策树算法,从ecoli数据集中利用决策树学习到分类器模型,然后利用模型做预测。
ecoli数据集
url <- 'http://www.wekaleamstudios.co.uk/wp-content/uploads/2010/09/ecoli.txt'
ecoli.data <- read.csv(url)
str(ecoli.data)
## 保存数据
write.csv(ecoli.data, 'ecoli.txt', row.names = FALSE)
决策树模型创建
ecoli.tree <- rpart(class ~ ., data = ecoli.data[,-1])
决策树修剪
利用plotcp函数可视化或者printcp函数选取合适cp值,然后利用prune函数对决策树进行修剪和优化
plotcp(ecoli.tree)
结果示意图
ecoli.tree1 <- prune(ecoli.tree, cp = 0.02)
决策树结果可视化
if(!(require(rattle) & require(rpart.plot)))
{
install.packages(c('rattle', 'rpart.plot'))
require(rattle)
require(rpart.plot)
}
fancyRpartPlot(ecoli.tree1)
结果示意图
决策树规则解读
asRules(ecoli.tree1)
部分结果如下
模型应用
利用predict函数,对数据集进行预测,并且量化预测效果。
参考资料
1 rpart包文档:https://cran.r-project.org/web/packages/rpart/rpart.pdf
2 rpart应用:https://cran.r-project.org/web/packages/rpart/vignettes/longintro.pdf
您在阅读中,有什么建议或者想法,请留言。
如果您觉得本文有收获,请小额赞赏,让我有动力继续写出高质量的文章。
数据人网是数据人学习、交流和分享的平台http://shujuren.org 。专注于从数据中学习。
平台的理念:人人投稿,知识共享;人人分析,洞见驱动;智慧聚合,普惠人人。
您在数据人网平台,可以1)学习数据知识;2)创建数据博客;3)认识数据朋友;4)寻找数据工作;5)找到其它与数据相关的干货。
我们努力坚持做原创,分享和传播有价值的数据知识!
我们都是数据人,数据是有价值的,坚定不移地利用数据价值创造价值!
公众号推荐:脚印英语,快乐有趣学会英语。
点击“阅读原文”进入数据人网。
请关注“恒诺新知”微信公众号,感谢“R语言“,”数据那些事儿“,”老俊俊的生信笔记“,”冷🈚️思“,“珞珈R”,“生信星球”的支持!