六、集成学习二、集成学习(Bagging、Stacking)

集成学习(Ensemble Learning)

    KNN、决策树、神经网络等学习器都是单一、独立的,集成学习就是组合多个学习器,最后可以得到一个更好的学习器。集成学习就是构建并组合多个学习器来完成学习任务的算法,常用的有三类:

Bagging:个体学习器之间没有强依赖关系,可同时生成的并行化方法,装袋

Boosting:个体学习器之间存在强依赖关系,必须串行生成基分类器的方法

Stacking:使用多个不同的分类器进行预测,把预测的结果作为一个次级分类器的输入,次级分类器的输出是整个模型的预测结果。



一、Bagging

    也叫做bootstrap aggregating,是在原始数据集选择S次后得到S个新数据集的一种技术,是一种 有放回抽样 。

eg:原始数据集:    {0,1,2,3,4,5,6,7,8,9}

        Boostrap抽样:{7,2,6,7,5,4,8,8,1,0}——未采样3,9

                                 {1,3,8,0,3,5,8,0,1,9}——未采样2,4,6,7

                                 {2,9,4,2,7,9,3,0,1,0}——未采样5,6,8

    Boosting方法是将“弱学习算法”提升为“强学习算法”的过程,通过反复学习得到一系列弱分类器(决策树和逻辑回归),组合这些弱分类器得到一个强分类器,Boosting算法要涉及到两个部分,加法模型和前向分步算法

加法模型:

    强分类器由一系列弱分类器线性相加而成。一般组合形式如下:

                                                        F_{M} (x;P) = \sum_{m=1}^n \beta _{m} h(x;a_{m} )

其中,h(x;a_{m} )是弱分类器,a_{m}是弱分类器学习到的最优参数,\beta _{m}是弱学习在强分类器中所占比重,P是所有a_{m}\beta _{m}的组合。这些弱分类器线性相加组成强分类器。

前向分步:

    是在训练过程中,下一轮迭代产生的分类器是在上一轮的基础上训练得来的。即

                                                    F_{m} (x) = F_{m-1}(x)+\beta_{m}h_{m}(x;a_{m})

随机森林(Random Forest)

    RF = 决策树 + Bagging + 随机属性选择

同时训练多个决策树,预测时综合考虑多个结果进行预测,例如取多个节点的均值(回归),或者是众数(分类)

流程:1、样本的随机: 从样本集中用bagging的方式,随机选n个样本

           2、特征的随机: 从所有属性d中随机选择k个属性(k<d),然后从k的属性中选择最佳分割属性作为节点建立CART决策树

            3、重复上述两个步骤m次,建立m棵CART决策树

            4、这m棵CART决策树形成随机森林,通过投票表决结果,决定数据属于哪一类



优势:1、消除了决策树容易出现过拟合的缺点

           2、减小了预测的方差,预测值不会因为训练数据的小变化而剧烈变化

from sklearn.ensembleimport RandomForestClassifier

RF = RandomForestClassifier(n_estimators=50)

RF.fit(x_train, y_train)

plot(RF)

print(RF.score(x_test, y_test))

二、Stacking

    

eg:

from sklearn.linear_modelimport LogisticRegression

from sklearn.neighborsimport KNeighborsClassifier

from sklearn.treeimport DecisionTreeClassifier

from mlxtend.classifierimport StackingClassifier

from sklearn.ensembleimport VotingClassifier#投票的分类器

# 定义三个不同的分类器

clf1 = KNeighborsClassifier(n_neighbors=1)

clf2 = DecisionTreeClassifier()

clf3 = LogisticRegression()

# 定义一个次级分类器

lr = LogisticRegression()

sclf = StackingClassifier(classifiers=[clf1, clf2, clf3],

meta_classifier=lr)

for clf, labelin zip([clf1, clf2, clf3, sclf],

['KNN','Decision Tree','LogisticRegression','StackingClassifier']):

scores = model_selection.cross_val_score(clf, x_data, y_data,cv=3,scoring='accuracy')

print("Accuracy: %0.2f [%s]" % (scores.mean(), label))

# VotingClassifier

sclf1 = VotingClassifier([('knn',clf1), ('dtree', clf2), ('rf', clf3)])

for clf, labelin zip([clf1, clf2, clf3, sclf1],

['KNN','Decision Tree','LogisticRegression','VotingClassifier']):

scores = model_selection.cross_val_score(clf, x_data, y_data,cv=3,scoring='accuracy')

print("Accuracy: %0.2f [%s]" % (scores.mean(), label))

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

推荐阅读更多精彩内容