集成学习——Adaboost分类

上一期分享了集成学习之Bagging分类的方法,这一期分享它的另外一种方法,Adaboost分类方

Adaboost分类方法和Bagging分类类似,不同之处在于,Adaboost每次用自助法抽样来构建树时,都根据前一棵树的结果对于误判的观测值增加抽样权重,使得下一棵树能够对误判的观测值有更多的代表性。

最终的结果由所有的树加权投票得到,权重根据各棵树的精度来确定。

具体来说,如果在上一次分类器的预测中,样本i被错误分类了,那么,在这一次分类器的训练样本抽取过程中,样本i就会被赋予较高的权重,以使其能够以较大的可能被抽中,从而提高其被正确分类的概率。

它显著的提高了集成分类器的稳定性和准确性。

下面就让我们开启Adaboost分类算法之旅吧!

假定样本为(X1,Y1),(X2,Y2),...(Xn,Yn),为描述简单,假定因变量为二分类变量,Y∈{0,1},即只有两类。

Adaboost分类具体步骤如下:

(1)对观测值点选择初始的自助法抽样权

设m=0;

(2)把m增加1,用基本方法(这里是分类树)拟合加权抽样的数据,权重:

,产生分类器:

(3)计算样本内的加权误判率:

,然后更新权重:

,重复(2)和(3)步,直到预先设定的步数m=m_stop,这样就立了根据加权投票来分类的组合分类器:

哇塞,说了这么多,是不是都糊涂了,这是什么鬼,没事,我们下面看一道案例,重点学会运用就可以啦!

依然使用上一期的数据。我们使用Bank Marketing数据集,可以在网上下载到:http://archive.ics.uci.edu/ml/datasets/Bank+Marketing.

该数据集来自于葡萄牙银行机构的一个基于电话跟踪的商业营销项目,其中收录了包括银行客户个人信息及与电话跟踪咨询结果有关的16个自变量,以及1个因变量,即该客户是否订阅了银行的定期存款。

首先我们看一下数据集:

setwd("C:\Users\dell\Desktop\集成学习")

data=read.csv("bank.csv",header=TRUE,sep=";")

head(data)

dim(data)

summary(data)

sum(data$y=="yes"); sum(data$y=="no")

那么我们使用数据集的四分之一的样本作为测试集来评价分类器的性能:

sub=sample(1:nrow(data),round(nrow(data)/4))

length(sub)

data_train=data[-sub,]

data_test=data[sub,]

dim(data_train);dim(data_test)

即训练集和测试集样本数分别为3391和1130.

下面建立Adaboost分类模型:

需要加载相应的包:

install.packages("adabag")

install.packages("rpart")

library(adabag)

library(rpart)

其中Bagging算法格式:

boosting(formula, data, boos = TRUE, mfinal = 100, coeflearn = 'Breiman', control,...)

其中boos参数用于选择在当下的迭代过程中,是否用各观测样本的相应权重来抽取boostrap样本,默认为TRUE。如果是FALSE,则每个观测样本都以其相应权重在迭代过程中被使用。coeflearn用于选择权重更新系数alpha的计算方式,默认取Breiman.另外也可设置为"Freund","Zhu"。

建立模型如下:

boo=boosting(y~.,data_train,mfinal=5)

pre_boo=predict(boo,data_test)

计算总体错误率:

err_boo=sum(pre_boo$class!=data_test$y)/nrow(data_test)

通过混淆矩阵发现,选择no的人多,yes的人少,严重的数据不平衡,因此,我们把两类分开来看各自的预测错误率的结果;

sub_minor=which(data_test$y=="yes")

sub_major=which(data_test$y=="no")

length(sub_minor); length(sub_major)

首先计算少数类"yes"的错误率:

err_minor_boo=sum(pre_boo$class[sub_minor]!=data_test$y[sub_minor])/length(sub_minor)

其次计算多数类"no"的错误率:

err_major_boo=sum(pre_boo$class[sub_major]!=data_test$y[sub_major])/length(sub_major)

err_boo; err_minor_boo; err_major_boo

结果如下:

与上一期结果比较:

发现除了少数类的预测错误率相对于Bagging有所提升,整体和多数类错误率均有所下降,Adaboost确实可以修正数据集的不平衡性,但总体来说,与Bagging的效果差别不大。关于这两种算法预测效果差异的评价需要在更丰富的数据分享经验基础上给出,大家可以查找更多的资料了解。

集成学习两种算法的内容就讲到这里啦,大家有任何疑问都可以在下方评论区提出,大家一起讨论。愿与君共同进步!

©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 212,222评论 6 493
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 90,455评论 3 385
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 157,720评论 0 348
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 56,568评论 1 284
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 65,696评论 6 386
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 49,879评论 1 290
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 39,028评论 3 409
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 37,773评论 0 268
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 44,220评论 1 303
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 36,550评论 2 327
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 38,697评论 1 341
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 34,360评论 4 332
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 40,002评论 3 315
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 30,782评论 0 21
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,010评论 1 266
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 46,433评论 2 360
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 43,587评论 2 350

推荐阅读更多精彩内容

  • 前面的文章已经介绍了五种不同的分类器,它们各有优缺点。我们可以很自然地将不同的分类器组合起来,而这种组合结果则被成...
    nobodyyang阅读 1,639评论 0 1
  • 以西瓜书为主线,以其他书籍作为参考进行补充,例如《统计学习方法》,《PRML》等 第一章 绪论 1.2 基本术语 ...
    danielAck阅读 4,502评论 0 6
  • 假设你去随机问很多人一个很复杂的问题,然后把它们的答案合并起来。通常情况下你会发现这个合并的答案比一个专家的答案要...
    城市中迷途小书童阅读 2,495评论 0 1
  • 机器学习是做NLP和计算机视觉这类应用算法的基础,虽然现在深度学习模型大行其道,但是懂一些传统算法的原理和它们之间...
    城市中迷途小书童阅读 1,102评论 0 11
  • 最近,被韩剧撩拨的很多人都蠢蠢欲动,小心脏砰砰乱跳,春天来了,我们也开始期待有一份美好心动的爱情降临。 春风美景艳...
    酷听听书阅读 704评论 0 0