在前一篇文章中,我们介绍了Adaboost算法,本文我们将着重介绍其R语言的实现。
使用adabag包中的boosting函数
数据简介
本文数据选择了红酒质量分类数据集,这是一个很经典的数据集,原数据集中“质量”这一变量取值有{3,4,5,6,7,8}。为了实现二分类问题,我们添加一个变量“等级”,并将“质量”为{3,4,5}的观测划分在等级0中,“质量”为{6,7,8}的观测划分在等级1中。
因变量:等级
自变量:非挥发性酸性、挥发性酸性、柠檬酸、剩余糖分、氯化物、游离二氧化硫、二氧化硫总量、浓度、pH、硫酸盐、酒精
####数据集的引入及划分
library(openxlsx)
wine = read.xlsx("C:/.../winequality-red.xlsx")
#将数据集分为训练集和测试集,比例为7:3
train_sub = sample(nrow(wine),7/10*nrow(wine))
train_data = wine[train_sub,]
test_data = wine[-train_sub,]
Adaboost算法实现
R包下载
install.packages("adabag")
这个包需要依赖很多其他的包,下载的时间相对较长
实现Adaboost算法
boosting(formula, data, boos = TRUE, mfinal = 100, coeflearn = ‘Breiman’,
control,…)
参数 | 意义 |
---|---|
formula | y y y~ x 1 + |