Adaboost算法


Adaboost算法的R语言实现

#步骤1 数据集准备

url="http://archive.ics.uci.edu/ml/machine-learning-databases/wine-quality/winequality-red.csv"

data<-read.csv(url,sep=";",header=T)

library(adabag)

head(data)

attach(data)

data$quality<-factor(data$quality,levels=c("3","4","5","6","7","8"),labels = c("A","B","C","D","E","F"))

#步骤2 准备参数,建立模型

l <- length(data[,1])   #获取数据集的长度

dim(data)

sub <- sample(1:l,2*l/3)  #划分训练集和测试集,为2/31/3

mfinal<-100

maxdepth<-5

data.adaboost<-boosting(quality ~.,data=data[sub, ],mfinal=mfinal, coeflearn="Zhu",

                        control=rpart.control(maxdepth=maxdepth))  #qualitylabel建立模型

解释:#mfinal 表示运行提升的迭代次数或要使用的树的数量,默认为 mfinal=100 次迭代。

             #coeflearn设置权重更新系数为"Zhu"

#步骤3 模型预测

data.adaboost.pred<-predict.boosting(data.adaboost,newdata=data[-sub,])

data.adaboost.pred$confusion  #混淆矩阵

data.adaboost.pred$error  #错误率

#步骤4 预测模型的比较

errorevol(data.adaboost,newdata=data[sub,])->evol.train

errorevol(data.adaboost,newdata=data[-sub,])->evol.test

plot.errorevol(evol.train,evol.test)