1. 程式人生 > >整合學習——Bootstrap Bagging AdaBoost演算法

整合學習——Bootstrap Bagging AdaBoost演算法

整合學習是使用一系列學習器進行學習,並使用某種規則把各個學習結果進行整合從而獲得比單個學習器更好的學習效果的一種機器學習方法。
簡單地說,就是通過抽樣等方式從原始資料集構造m個訓練集,再選擇一個弱分類器(比如決策樹)對這些訓練集進行訓練得到m個分類器,在待分類資料進行分類時,同時使用這m個分類器去判斷,使用多數表決或者權重聯合的方式綜合這m個分類器給出的分類結果,得到最終結果。
就好比是:原始資料集是一堆書,本來這堆書是給一個人看的(一個弱分類器),他看完後學的知識,再根據他學的的知識執行任務(分類/迴歸)。但是現在,我們把書分開給m個人看,得到m個有知識的人(每本書可以被重複看),他們對同一件事發表自己的看法,最後的決策者通過多數表決(佔比例多的結果)來決策,或者通過考慮權重的方式(比如在學習過程中發現某個人是大牛,他的意見我們就會多重視)來決策。
Bootstrap Bagging AdaBoost這三種演算法提供了兩個功能:
- 樣本選擇

:怎麼把大樣本分成m個小樣本交給m個弱分類器去訓練
- 分類器組合:怎樣綜合分類器的建議
1. Bootstraping: 名字來自成語“pull up by your own bootstraps”,意思是依靠你自己的資源,稱為自助法,它是一種有放回的抽樣方法,它是非引數統計中一種重要的估計統計量方差進而進行區間估計的統計方法。其核心思想和基本步驟如下:
- 採用重抽樣技術從原始樣本中抽取一定數量(自己給定)的樣本,此過程允許重複抽樣。
- 根據抽出的樣本計算給定的統計量T。
- 重複上述N次(一般大於1000),得到N個統計量T。
- 計算上述N個統計量T的樣本方差,得到統計量的方差。
應該說Bootstrap是現代統計學較為流行的一種統計方法,在小樣本時效果很好。通過方差的估計可以構造置信區間等,其運用範圍得到進一步延伸。
Jackknife: 和上面要介紹的Bootstrap功能類似,只是有一點細節不一樣,即每次從樣本中抽樣時候只是去除幾個樣本(而不是抽樣),就像小刀一樣割去一部分。
2. Bagging方法是一個統計重取樣的技術,它的基礎是Bootstrap。基本思想是:利用Bootstrap方法重取樣來生成多個版本的預測分類器(樣本選擇
),然後把這些分類器進行組合。
最終的決策採用投票方式,對迴歸問題採用簡單平均方法對新示例進行判別(分類器組合)。
3. AdaBoost,是英文”Adaptive Boosting”(自適應增強)的縮寫,是一種機器學習方法,由Yoav Freund和Robert Schapire提出。AdaBoost方法的自適應在於:前一個分類器分錯的樣本會被用來訓練下一個分類器。AdaBoost方法對於噪聲資料和異常資料很敏感。但在一些問題中,AdaBoost方法相對於大多數其它學習演算法而言,不會很容易出現過擬合現象。AdaBoost方法中使用的分類器可能很弱(比如出現很大錯誤率),但只要它的分類效果比隨機好一點(比如兩類問題分類錯誤率略小於0.5),就能夠改善最終得到的模型。而錯誤率高於隨機分類器的弱分類器也是有用的,因為在最終得到的多個分類器的線性組合中,可以給它們賦予負係數,同樣也能提升分類效果。

維基百科

AdaBoost方法是一種迭代演算法,在每一輪中加入一個新的弱分類器,直到達到某個預定的足夠小的錯誤率。每一個訓練樣本都被賦予一個權重,表明它被某個分類器選入訓練集的概率。如果某個樣本點已經被準確地分類,那麼在構造下一個訓練集中,它被選中的概率就被降低;相反,如果某個樣本點沒有被準確地分類,那麼它的權重就得到提高。通過這樣的方式,AdaBoost方法能“聚焦於”那些較難分(更富資訊)的樣本上。在具體實現上,最初令每個樣本的權重都相等,對於第k次迭代操作,我們就根據這些權重來選取樣本點,進而訓練分類器Ck。然後就根據這個分類器,來提高被它分錯的的樣本的權重,並降低被正確分類的樣本權重。然後,權重更新過的樣本集被用於訓練下一個分類器Ck。整個訓練過程如此迭代地進行下去。

以上轉自維基百科關於adaboost的介紹。
簡單總結一下AdaBoost演算法的思路:
選擇一個樣本->訓練一個分類器->根據訓練結果再進行抽樣->訓練分類器->根據訓練結果再進行抽樣->訓練分類器->…
- 樣本選擇:可以看做是有重複的抽樣,但是抽樣樣本有,即非等概率抽樣。抽樣樣本的權重是在每次訓練後更新的。更新權值與樣本被分錯的次數成正比,因為樣本被分錯說明當前分類器不能正確分類該樣本,從而希望這個被分錯的樣本更多的參與其他分類器的訓練,好讓它能被正確分類。
- 分類器組合:採用弱分類器的線性組合,組合權重取決於弱分類器的準確率,對於弱分類器C1(x),...,Cm(x),f(x)=aiCi

下面來自維基百科:

AdaBoost演算法
xiyi表示原始樣本集D的樣本點和它們的類標。用Wk(i)表示第k次迭代時全體樣本的權重分佈。這樣就有如下所示的AdaBoost演算法:

begin initial D={x1,y1,…,xn,yn},kmax(最大迴圈次數),Wk(i)=1/n,i=1,…,n
k ← 0
do k ← k+1
訓練使用按照Wk(i)取樣的D的弱學習器Ck
Ek ←對使用Wk(i)的D測量的Ck的訓練誤差

αk12ln1EkEkαk12ln1EkEk

Wk+1(i)Wk(i)Zk×{eαk,eαk,if hk(xi)=yiif hk(xi)yi

untilk=kmax
return Ck和αk,k=1,…,kmax(帶權值分類器的總體)
end
注意第5行中,當前權重分佈必須考慮到分類器Ck的誤差率。在第7行中,Zk只是一個歸一化係數,使得Wk(i)能夠代表一個真正的分佈,而hk(xi)是分量分類器Ck給出的對任一樣本點xi的標記(+1或-1),hk(xi) = yi時,樣本被正確分類。第8行中的迭代停止條件可以被換為判斷當前誤差率是否小於一個閾值。

最後的總體分類的判決可以使用各個分量分類器加權平均來得到:

g(x)=[k=1kmaxαkhk(x)]g(x)=[kmaxk=1αkhk(x)]

這樣,最後對分類結果的判定規則是:

H(x)=sign(g(x))H(x)=sign(g(x))

簡單解釋一下:
在進行第k個分類器訓練時,設xri,xwj費別為第i,j個被正確,錯誤分類的樣本,此時出錯率ek=jxwj/(i

相關推薦

整合學習——Bootstrap Bagging AdaBoost演算法

整合學習是使用一系列學習器進行學習,並使用某種規則把各個學習結果進行整合從而獲得比單個學習器更好的學習效果的一種機器學習方法。 簡單地說,就是通過抽樣等方式從原始資料集構造m個訓練集,再選擇一個弱分類器(比如決策樹)對這些訓練集進行訓練得到m個分類器,在待分類

第七章:整合學習(利用AdaBoost演算法...)

---恢復內容開始---   整合學習其實不能算一個演算法,應該算是一種框架,集百家之長。整合演算法具體有Bagging與Boosting兩種大類。兩者區別:   1)Bagging是並行的,它就好比找男朋友,美女選擇擇偶物件的時候,會問幾個閨蜜(幾個演算法)的建議,最後選擇一個綜合得分最高的一個作為男朋

python機器學習案例系列教程——整合學習Bagging、Boosting、隨機森林RF、AdaBoost、GBDT、xgboost)

可以通過聚集多個分類器的預測結果提高分類器的分類準確率,這一方法稱為整合(Ensemble)學習或分類器組合(Classifier Combination),該方法由訓練資料構建一組基分類器(Base Classifier),然後通過對每個基分類器的預測進行

整合學習Bagging和Boosting的簡介

一、什麼是整合學習 整合學習在機器學習演算法中具有較高的準確率,不足的就是模型訓練比較複雜,效率不高。 Boosting主要有:Adaboost、GBDT、XGBoost Bagging主要有:Random Forest 整合學習的思想: 整合學習的主要思想是構建出多個弱分

機器學習筆記之十——整合學習Bagging

上一節學習了決策樹:https://blog.csdn.net/qq_35946969/article/details/85039097 最後說到提升決策樹的效能,整合就是非常強大的解決方案。 藉助一個圖,直觀的瞭解整合學習:   Bagging   &nbs

整合學習介紹2—Boosting演算法介紹

一、Boosting演算法 Boosting整合分類器包含多個非常簡單的成員分類器,這些成員分類器的效能僅好於隨機猜想,常被稱為弱學習機。典型的弱學習機的例子就是單層決策樹。Boosting演算法主要針對難以區分的樣本,弱學習機通過在分類錯誤的樣本上進行學習來提高繼承分類器

你想看的整合學習bagging和boosting區別特徵及例子

這篇文章主要講述整合學習的bagging和boosting。 首先bagging和boosting是整合學習的兩個大家族,每個家族也包括很多成員,例如boosting包括adaboost、xgboost,bagging也有RandomForest等方法。既然b

機器學習筆記-整合學習Bagging,Boosting,隨機森林三者特性對比

整合學習的概念 定義:整合學習通過構建並結合多個學習器來完成學習任務。 分類:只包含同種型別的個體學習器,這樣的整合是“同質”的,例如都是神經網路或者決策樹;包含不同型別的個體學習器,這樣的整合是“異質”的,例如同時包括神經網路和決策樹。 作用:整合學習通過將多個學

十大經典預測演算法六---整合學習(模型融合演算法

模型融合演算法概念   它不是具體的指某一個演算法,而是一種把多個弱模型融合合併在一起變成一個強模型的思想 用模型融合演算法的原因   1、單個模型容易過擬合,多個模型融合可以提高範化能力   2、單個模型預測能力不高,多個模型往往能提高預測能力   3、對於資料集過大或過小,可以分別進行劃分和有放

[Mechine Learning & Algorithm] 整合學習方法——Bagging和 Boosting

  因為不同的模型具有不同的特點, 所以有時也會將多個模型進行組合,以發揮"三個臭皮匠頂一個諸葛亮的作用", 這樣的思路, 反應在模型中,主要有兩種思路:Bagging和Boosting 1. Bagging   Bagging 可以看成是一種圓桌會議, 或是投票選舉的形式,其中的思想是:"群眾的眼光

【Python-ML】SKlearn庫整合學習Bagging

# -*- coding: utf-8 -*- ''' Created on 2018年1月19日 @author: Jason.F @summary: Bagging,通過bootstrap樣本構建整合分類器,樣本有放回抽樣。降低模型方差,防止過擬合。 ''' impo

機器學習——提升方法AdaBoost演算法,推導過程

0提升的基本方法   對於分類的問題,給定一個訓練樣本集,求比較粗糙的分類規則(弱分類器)要比求精確的分類的分類規則(強分類器)容易的多。提升的方法就是從弱分類器演算法出發,反覆學習,得到一系列弱分類器(又稱為基本分類器),然後組合這些弱分類器,構成一個強分類器。大多數的提升方法都是改變訓練資料集的概率分佈

機器學習回顧篇(12):整合學習Bagging與隨機森林

  1 引言¶ 整合學習演算法是當下炙手可熱的一類演算法,在諸多機器學習大賽中都頻繁出現它的身影。準確來說,整合學習演算法並不是一個單獨的機器學習演算法,而是通過構建多個學習器,博採眾家之長,共同求解問題的一種思想。古語有云:&ldquo

[白話解析] 通俗解析整合學習bagging,boosting & 隨機森林

# [白話解析] 通俗解析整合學習之bagging,boosting & 隨機森林 ## 0x00 摘要 本文將盡量使用通俗易懂的方式,儘可能不涉及數學公式,而是從整體的思路上來看,運用感性直覺的思考來解釋 **整合學習**。並且從名著中延伸了具體應用場景來幫助大家深入這個概念。 在機器學習過程

整合學習 (AdaBoostBagging、隨機森林 ) python 預測

首先明確一下回歸與分類的區別: 分類和迴歸的區別在於輸出變數的型別。 定量輸出稱為迴歸,或者說是連續變數預測; 定性輸出稱為分類,或者說是離散變數預測。舉個例子: 預測明天的氣溫是多少度,這是一個迴歸任務; 預測明天是陰、晴還是雨,就是一個分類任務; 決策樹三種演算法特性對比:

機器學習演算法--整合學習2--AdaBoost

以《機器學習實戰為例》程式設計實現AdaBoost演算法。 1.AdaBoost演算法原理 Boosting演算法主要基於多個弱學習器來構建強學習器,最終結果由多個弱學習器的加權平均決定,每個基學習器的權重並不相同,每個權重代表對應分類器在上一輪的迭代中成功度。訓練中

R語言分類演算法整合學習Bootstrap Aggregating)

1.整合學習(Bootstrap Aggregating)原理分析: Bagging是Bootstrap Aggregating的縮寫,簡單來說,就是通過使用boostrap抽樣得到若干不同的訓練集,以這些訓練集分別建立模型,即得到一系列的基分類器,這些分類器

機器學習整合學習(ensemble),bootstrapBagging,隨機森林,Boosting

文章目錄 整合學習的樸素思想 Bootstrap理論 Bagging 隨機森林 Boosting 整合學習的樸素思想 整合學習基於這樣的思想:對於比較複雜的任務,綜合許多人的意見來進行決策會比“一家獨大”要更好。換句話說、就

機器學習sklearn19.0——整合學習——boosting與梯度提升演算法(GBDT)、Adaboost演算法

一、boosting演算法原理 二、梯度提升演算法 關於提升梯度演算法的詳細介紹,參照部落格:http://www.cnblogs.com/pinard/p/6140514.html 對該演算法的sklearn的類庫介紹和調參,參照網址:http://

整合學習中boosting、bagging、隨機森林演算法的介紹

整合學習的概念 定義:整合學習通過構建並結合多個學習器來完成學習任務。 分類:只包含同種型別的個體學習器,這樣的整合是“同質”的,例如都是神經網路或者決策樹;包含不同型別的個體學習器,這樣的整合是“異質”的,例如同時包括神經網路和決策樹。 作用:整合學習通過將多個學習器