詳解2種集成學(xué)習(xí)方法:voting和bagging
來源:投稿 作者:小灰灰
編輯:學(xué)姐
目的是:多個(gè)模型來解決同一個(gè)問題就叫集成學(xué)習(xí),個(gè)體差異,而且多樣性。
按照個(gè)體生成的方式可以分成兩大類:
第一個(gè)是序列化的方法(Sequential method)(一個(gè)個(gè)體的生成與前一個(gè)有著或或少的關(guān)系)是boosting。
adabost(非常精確,非常簡單,理論基礎(chǔ)深厚)
第二個(gè)是并行化的方法(Parallel method)(所有的個(gè)體都可以同時(shí)來做bagging)Bootstrap Aggregating(縮寫為Bagging) ,名字來自成語“pull up by your own bootstraps”,意思是依靠你自己的資源,稱為自助法,它是一種有放回的抽樣方法。
還有一種劃分方法是:

Boosting和Bagging通常都是使用同一種基學(xué)習(xí)器(base learner),因此我們一般稱之為同質(zhì)集成方法。Stacking通常都是基于多個(gè)不同的基學(xué)習(xí)器做的集成,因此我們稱之為異質(zhì)集成方法。
使用集成學(xué)習(xí)方法,可以提高準(zhǔn)確率。
模擬不同分類器的集成效果,每個(gè)分類器的準(zhǔn)確率只有51%(只比隨機(jī)猜好一點(diǎn)),但是集成后的效果有顯著提升,如果用1000個(gè)分類器,最終準(zhǔn)確率可達(dá)75%。如果用10000個(gè)分類器,最終準(zhǔn)確率高達(dá)97%

集成學(xué)習(xí)方法有投票Voting,Bagging,Adaboost
Voting
首先我們使用sklearn自帶的make_moons數(shù)據(jù)集。

接下來數(shù)據(jù)集分割
X_train, X_test, y_train, y_test = train_test_split(X, y , test_size=0.25, random_state=42)
我們進(jìn)行了三個(gè)基本的基分類器。
邏輯回歸
決策樹
SVM
定義硬投票分類器:

可以看到三個(gè)基分類器LogisticRegression = 0.8822857142857143,DecisionTreeClassifier = 0.9977142857142857,SVC = 1.0,三個(gè)集成起來,VotingClassifier = 0.9994285714285714。
定義軟投票分類器 :

Bagging—隨機(jī)森林
Bagging是一種框架算法,以隨機(jī)森林(RDF)算法為代表, 采用的是隨機(jī)有放回的選擇訓(xùn)練數(shù)據(jù)然后構(gòu)造分類器,最后組合。
從原始樣本集中使用Bootstraping方法隨機(jī)抽取n個(gè)訓(xùn)練樣本,共進(jìn)行k輪抽取,得到k個(gè)訓(xùn)練集。(k個(gè)訓(xùn)練集之間相互獨(dú)立,元素可以有重復(fù))
對(duì)于k個(gè)訓(xùn)練集,我們訓(xùn)練k個(gè)模型(這k個(gè)模型可以根據(jù)具體問題而定,比如決策樹,knn等)
對(duì)于分類問題:由投票表決產(chǎn)生分類結(jié)果;對(duì)于回歸問題:由k個(gè)模型預(yù)測(cè)結(jié)果的均值作為最后預(yù)測(cè)結(jié)果。(所有模型的重要性相同)
隨機(jī)森林怎么與深度學(xué)習(xí)結(jié)合:
基于LBF方法的人臉對(duì)齊,出自Face Alignment at3000 FPS via Regressing Local Binary Features,源自于CVPR2014 ,由于該方法提取的是局部二值特征(LBF),論文作者的LBF fast達(dá)到了3000fps的速度,該算法的核心工作主要有兩部分,總體上采用了隨機(jī)森林和全局線性回歸相結(jié)合的方法,相對(duì)于使用卷積神經(jīng)的深度學(xué)習(xí)方法,LBF采用的算法是傳統(tǒng)的機(jī)器學(xué)習(xí)方法。

通過在特征點(diǎn)附近隨機(jī)選擇點(diǎn)做殘差來學(xué)習(xí)LBF特征,每一個(gè)特征點(diǎn)都會(huì)學(xué)到由好多隨機(jī)樹組成的隨機(jī)森林,因此,一個(gè)特征點(diǎn)就得用一個(gè)隨機(jī)森林生成的0,1特征向量來表示,將所有的特征點(diǎn)的隨機(jī)森林都連接到一起,生成一個(gè)全局特征,后續(xù)過程就可以使用該全局特征做全局線性回歸了。

這里面的分類模型要一樣,如果是決策樹那么組合在一起的時(shí)候就是隨機(jī)森林。
我們使用load_iris()鳶尾花數(shù)據(jù)
設(shè)置基分類SVM,抽取了500個(gè)樣本,進(jìn)行有放回抽樣。

設(shè)置基分類決策樹,抽取了500個(gè)樣本

Sklearn也提供了直接實(shí)現(xiàn)隨機(jī)森林的API

關(guān)注“學(xué)姐帶你玩AI”公眾號(hào)
回復(fù)“機(jī)器學(xué)習(xí)”領(lǐng)取機(jī)器學(xué)習(xí)必讀書籍PDF+免費(fèi)課件