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/3和1/3
mfinal<-100
maxdepth<-5
data.adaboost<-boosting(quality ~.,data=data[sub, ],mfinal=mfinal, coeflearn="Zhu",
control=rpart.control(maxdepth=maxdepth)) #以quality为label建立模型
解释:#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)