r语言 集成学习

11 篇文章 0 订阅
11 篇文章 0 订阅

集成学习通过构造并结合多个学习器来完成学习任务

原理: 先产生一组“个体学习器”,在用某种策略将它们结合起来


boosting:先从初始训练集训练出一个基学习器,再根据基学习器的表现对训练样本进行调整,使得先前基学习器做错的样本在后续受到更多关注,然后基于调整后的样本分布训练下一个基学习器;如此重复下去,直至基学习器数目达到事先指定的值T,最终将这T个学习期进行加权结合。

bagging:是投票式算法,首先使用Bootstrap产生不同的训练集数据集,然后分别基于这些训练数据及得到多个基础分类器,最后组合基础分类器的分类结果得到一个相对更优的预测模型。bagging算法的优点在于它是一个容易理解、易于实现且功能强大的学习算法,但得到的结果很难解释则是该算法的主要缺点。(运算速度慢)

随机森林:是bagging的一个扩展变体,随机森林在以决策树为基学习器构造Bagging集成的基础上,进一步在决策树的训练过程中引入了随机属性选择。因此,不但样本是随机的,就连每个节点变量的产生都有相当大的随机性。若是分类问题,则输出为所有书中预测概率总和最大的那个类,若是回归问题,则输出为所有树的输出平均值。


参数说明:

bagging(formula, data, mfinal = 100, control, par=FALSE,...)

mfinal: 为算法的迭代次数,即基的分类器的个数


 -----------------------------随机森林---------------------------------------------

在随机森林中有importance和varImpPlot两个函数用来评估,每个属性的重要性,其中importance函数以列表展示模型中每个属性的重要性,varImpPlot函数可以通过绘制平均精确率下降及平均基尼下降曲线实现属性重要性的可视化



代码:

  # 集成学习
  library(adabag)
  bagging.model <- bagging(Species ~ ., data = iris, mfinal = 50)
  boosting.model <- boosting(Species ~ ., data = iris, mfinal = 50)
  
  # 随机森林
  library(randomForest)
  randomForest.model <- randomForest(Species ~ ., data = iris)
  
  # 构建result,存放预测结果
  result <- data.frame(arithmetic = c('bagging', 'boosting', '随机森林'), erriris = rep(0, 3))
  
  for (i in 1:3) {
    # 预测结果
    iris_predict <- predict(switch(i, bagging.model, boosting.model, randomForest.model), 
                             newdata = iris)
    tableTR <- table(actual = iris$Species, 
                     predict = switch(i, iris_predict$class, 
                                      iris_predict$class, iris_predict))  # 混淆矩阵
    
    # 计算误差矩阵
    result[i, 2] <- paste(round((sum(tableTR) - sum(diag(tableTR)))*100/sum(tableTR), 2), '%')
  }
  












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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值