Cook RR. python新手日记生物信息学与算法

R 集成算法② bagging

2018-01-09  本文已影响26人  柳叶刀与小鼠标

集成算法

如前文所述,集成算法是目前比较常用的,通过组合弱分类器以达到强分类的效果的方法。其中常见的未套袋法(bagging)和提升法(boosting)


####################################
setwd("E:\\Rwork")
library(rpart)
library(caret)
library(adabag)
library(ggplot2)
library(ggthemes)
set.seed(123)
data(iris)
index <- sample(nrow(iris),0.75*nrow(iris))
train <- iris[index,]
test <- iris[index,]
error <- as.numeric()
####################################
library(tcltk)
pb<-tkProgressBar("进度","已完成 %",0,100)     
u <- 1:20
for(i in u){
  info<- sprintf("已完成 %d%%", round(i*100/length(u)))  
  setTkProgressBar(pb, i*100/length(u), sprintf("进度 (%s)", info),info)
  data.bagging <- bagging(Species ~ ., data=train, mfinal=i)
  data.predbagging <- predict.bagging(data.bagging,newdata = test)
  error[i] <- data.predbagging$error
  } 
> error
        error
1  0.07142857
2  0.03571429
3  0.03571429
4  0.07142857
5  0.04464286
6  0.03571429
7  0.01785714
8  0.04464286
9  0.03571429
10 0.02678571
11 0.02678571
12 0.03571429
13 0.02678571
14 0.01785714
15 0.03571429
16 0.01785714
17 0.02678571
18 0.03571429
19 0.03571429
20 0.03571429


##############################################
##############################################

error <- as.data.frame(error)
p <- ggplot(error,aes(x=1:20,y=error))+
     geom_line(colour="red", linetype="dashed",size = 1)+
     geom_point(size=3, shape=18)+
     ylim(0,0.1) +
     xlab("Classifiers Numbers")
p1 <- p + theme_base()+
      theme(panel.grid = element_blank())+
      theme(axis.title = element_text(face = "bold"))
p1


iris.bagging <- bagging(Species ~ ., data=train, mfinal=16)
importanceplot(iris.bagging )  
 

随机森林

概述

随机森林(Random Forest)是一种基于分类树(classification tree)的算法(Breiman,2001)。这个算法需要模拟和迭代,被归类为机器学习中的一种方法。上世纪八十年代Breiman等人发明了分类和回归树(Classification and Regression Tree
简称CART)的算法(Breimanet al.,1984),通过反复二分数据进行分类或回归,计算量大大降低。2001年Breiman和Cutler借鉴贝尔实验室的Ho所提出的随机决策森林(random decision forests)(Ho,1995,1998)的方法,把分类树组合成随机森林(Breiman,2001),即在变量(列)的使用和数据(行)的使用上进行随机化,生成很多分类树,再汇总分类树的结果。后来Breiman在机器学习杂志上发表了他和Cutler设计的随机森林的算法(Breiman,2001)。这篇文章被大量引用(根据Google Scholar,该文章至2013年被引用9000多次),成为机器学习领域的一个里程碑。

优缺点

随机森林的优点是:

随机森林的缺点:

上一篇下一篇

猜你喜欢

热点阅读