autobagging r语言_Bagging算法的R语言实现-阿里云开发者社区

bagging 是bootstrap aggregating的缩写,是第一批用于多分类集成算法。

bagging算法如下:

循环K次,每次都从样本集D中有放回地抽取样本集Di,这样总共得到k个样本集,用这K个样本集进行决策树生成,获得K个决策树模型,再将要检测的数据用这K个决策树模型进行多数表决,获得票数多的结论。

这种思想跟现代民主投票制度如出一辙,一个人再厉害,判断力也是有限的,但是把一群人聚合在一起投票,那单个人所犯错误的概率就会被抵消,最后得出结论的正确性会明显优于单个人做出决策。

个人认为其算法倒是并不复杂,主要还是内部决策树的实现。R语言提供了很强大的包实现该算法。R语言中用于bagging算法实现的是ipred包。

1、首先安装ipred包。这个不复杂,就不介绍了(如果这个不会,还是先从头开始学习R吧)

2、谷歌的结果好像不是很理想,所以安装完之后还是查看下帮助文档吧。  命令:help(package=”ipred”),找到bagging函数的使用

3、可以看到bagging函数有多种调用方式

## S3 method for class 'factor'

ipredbagg(y, X=NULL, nbagg=25, control=

rpart.control(minsplit=2, cp=0, xval=0),

comb=NULL, coob=FALSE, ns=length(y), keepX = TRUE, ...)

## S3 method for class 'numeric'

ipredbagg(y, X=NULL, nbagg=25, control=rpart.control(xval=0),

comb=NULL, coob=FALSE, ns=length(y), keepX = TRUE, ...)

## S3 method for class 'Surv'

ipredbagg(y, X=NULL, nbagg=25, control=rpart.control(xval=0),

comb=NULL, coob=FALSE, ns=dim(y)[1], keepX = TRUE, ...)

## S3 method for class 'data.frame'

bagging(formula, data, subset, na.action=na.rpart, ...)

由于本示例使用的是iris数据集,显然对应最后一种调用方式。

formula是数据模型,我们这边应变量是Species,所以数据模型就是Species~.了。

data就是所需数据集,这里是鸢尾花数据集iris

subset写着是可选参数(我也没看明白是啥参数,囧)

na.action=na.rpart  这个应该是指遇到空值或者异常值的处理办法,默认是rpart。想来也不用管那么多了

好了,调用下看看

model.bagging

最终输出的是表格形式的,纵向表示三种花种的真实属类,横向表示采用决策树之后的预测属类。可以看到100%分类正确。

下图是用CART树做的预测结果,可以看到versicolor有5个归类错误,virginica一个归类错误,bagging完胜单独决策树

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值