集成算法

2021-03-02 AI社區

君不見,黃河之水天上來,奔流到海不復回。

君不見,高堂明鏡悲白髮,朝如青絲暮成雪。

                              --李白 《將進酒》

1、概念

通過一定的策略組合多個學習器(稱為基學習器)完成學習任務,相比單個學習器學習效果更好。

2、三種集成算法

(1)Bagging

並行的訓練多個分類器,取平均值(也可以是加權平均,或其它策略)

代表算法:隨機森林

(2)Boosting

依次串行的訓練基學習器,每訓練一個模型,重新調整樣本的權重,使下一個模型更加重視上一次訓練出錯的樣本。

代表算法:AdaBoost、Xgboost

(3)Stacking

分兩階段堆疊分類器,第一階段訓練多個分類器,將學習的結果作為特徵輸入第二階段訓練一個高層學習器。

(1)加載數據

from sklearn import model_selectionfrom sklearn.datasets import load_irisfrom sklearn.ensemble import AdaBoostClassifierfrom sklearn.ensemble import BaggingClassifier, RandomForestClassifierfrom sklearn.ensemble import StackingClassifierfrom sklearn.linear_model import LogisticRegressionfrom sklearn.pipeline import make_pipelinefrom sklearn.preprocessing import StandardScalerfrom sklearn.svm import LinearSVCfrom sklearn.tree import DecisionTreeClassifier
data = load_iris()x = data.datay = data.targetkfold = model_selection.KFold(n_splits=10, random_state=0, shuffle=True)

(2)Bagging

model = BaggingClassifier(base_estimator=DecisionTreeClassifier(), n_estimators=100, random_state=0)score = model_selection.cross_val_score(model, x, y, cv=kfold)print(score.mean())

(3)Bosting

model = AdaBoostClassifier(base_estimator=DecisionTreeClassifier(), n_estimators=100, random_state=0)score = model_selection.cross_val_score(model, x, y, cv=kfold)print(score.mean())

(4)Stacking

estimators = [    ('rf', RandomForestClassifier(n_estimators=10, random_state=42)),    ('svr', make_pipeline(StandardScaler(), LinearSVC(random_state=42)))]model = StackingClassifier(estimators=estimators, final_estimator=LogisticRegression())score = model_selection.cross_val_score(model, x, y, cv=kfold)print(score.mean())

加小編微信(備註:機器學習)

拉你入「機器學習交流群」



相關焦點

  • 集成學習算法與Boosting算法原理
    1 集成學習的概念集成學習(ensemble learning)從概念上講,它並不是一個單獨的機器學習算法,而是通過構建並結合多個機器學習器來完成學習任務。也就是我們常說的「博採眾長」。集成學習可以用於分類問題集成,回歸問題集成,特徵選取集成,異常點檢測集成等等,可以說所有的機器學習領域都可以看到集成學習的身影。從下圖,我們可以對集成學習的思想做一個概括。對於訓練集數據,我們通過訓練若干個個體學習器,通過一定的結合策略,就可以最終形成一個強學習器,以達到博採眾長的目的。
  • 通俗講解集成學習算法!
    集成學習(ensemble learning)通過構建並結合多個學習器來完成學習任務,有時也被稱為多分類器系統(multi-classifier system)、基於委員會的學習(committee-based learning)。集成學習是這樣一個過程,按照某種算法生成多個模型,如分類器或者稱為專家,再將這些模型按照某種方法組合在一起來解決某個智能計算問題。
  • 一種面向高維數據的集成聚類算法
    第二個階段是基聚類結果集成,根據聚類集成算法對前一個階段採集的基聚類結果進行處理,使之能夠最大限度地分享這些結果,從而得到一個對原始數據最好的聚類集成結果。根據表四,比較集成前的K均值算法、LB方法和SSLB方法,可以看出,在數據集Four-Gaussian上,SSLB在四種評價指標上都可以看出,其聚類性能明顯優於集成前的K均值算法和LB聚類集成算法。
  • 快速弄懂機器學習裡的集成算法:原理、框架與實戰
    集成算法就是這樣一種算法,它本身不是一個單獨的機器學習算法,或者說沒有自身的機器學習思維,而是採用集成的方式來完成對數據或事物的學習、訓練過程。2.關於集成學習算法的框架體系集成學習算法作為機器學習裡的一個分支,已形成了一套的理論體系,其相關概念也比較多,如個體學習器、結合策略、bagging、AdaBoost算法、XGB、LGBT等等,讓初學者眼花繚亂,每個具體算法的原理不同又會讓大家暈頭轉向。實際上,這些繁多的內容背後,集成學習算法可以分成兩大框架,這也是集成學習著重解決的兩個算法。
  • 算法大賽神器:集成學習方法關鍵點介紹
    因此,首先讓我們簡單地解釋一下集成學習,以了解它如何針對這些類型的誤差:集成學習是將不同的學習算法組合成一個預測模型的策略。它的核心方法在於「投票」,能夠起到「群眾智慧」或「團結就是力量」的目的。其主要思想是基於「集合更多的預測方法能夠建立一個更好的模型」。
  • 集成學習介紹之二——Boosting算法
    我們上一次介紹了集成學習中的Bagging算法以及由它拓展的隨機森林(《取長補短、互通有無——集成學習介紹之Bagging&隨機森林》),今天我們繼續介紹集成學習的另一類——Boosting算法。
  • 集成學習介紹之三——Stacking算法
    ,或點擊文末閱讀原文直接提交報名信息呦~1算法原理Stacking方法是一種分層模型集成框架。以兩層為例,首先將數據集分成訓練集和測試集,利用訓練集訓練得到多個初級學習器,然後用初級學習器對測試集進行預測,並將輸出值作為下一階段訓練的輸入值,最終的標籤作為輸出值,用於訓練次級學習器(通常最後一級使用Logistic回歸)。
  • 以XGBoost為代表的集成算法體現的哲學思想與數學技巧
    在一般的梯度提升樹GBDT算法中,沒有這樣的直接權重來反應樣本的重要程度。我們如何才能在不同的弱的決策樹算法中,體現錯分樣本或者確切的說,未訓練好樣本的重要程度呢?那就是梯度,梯度是一個很好的替代指標。
  • 機器學習(一)集成學習
    關於集成學習的概念  集成學習是機器學習中一個非常重要且熱門的分支,是用多個弱分類器構成一個強分類器,其哲學思想是「三個臭皮匠賽過諸葛亮」。一般的弱分類器可以由決策樹,神經網絡,貝葉斯分類器,K-近鄰等構成。已經有學者理論上證明了集成學習的思想是可以提高分類器的性能的,比如說統計上的原因,計算上的原因以及表示上的原因。
  • 集成學習:機器學習兵器譜的「屠龍刀」
    本文作者認為,集成學習是一種立竿見影、從不過時的方法,堪稱機器學習兵器譜上排名第一的「屠龍刀」。作者在文章中介紹了集成學習的概念和發展,它有RF和GBDT兩大殺器,著重講解了嫁接法、集成半監督學習等最新進展,以及集成學習成功的關鍵。機器學習是一個大武林,這裡面江湖人士頗多,「發明」出來的算法兵器也是五花八門,浩瀚如海,足夠你數上三天兩夜了。
  • 機器學習算法——隨機森林算法簡介
    而隨機森林集成了所有的分類投票結果,將投票次數最多的類別指定為最終的輸出,這就是一種最簡單的 Bagging 思想,隨機森林算法的過程如下:2隨機森林的相關術語1 .信息熵以及信息增益的概念熵是用來度量不確定性的,當熵越大,不確定性越大,反之越小。對於機器學習中的分類問題而言,熵越大即這個類別的不確定性更大,反之越小。
  • 集成模型的五個基礎問題
    引言如果你曾經參加過數據科學競賽,你一定意識到集成模型(Ensemble Modeling)舉足輕重的作用。事實上,集成模型提供了最有說服力的方式之一,來建立高度精確的預測模型。Bagging和Boosting算法進一步加強了這一方法的精確性。所以,你下次構建預測模型的時候,考慮使用這種算法吧。
  • 機器學習入門 13-1 什麼是集成學習?
    什麼是集成學習?本章會介紹機器學習領域中非常重要的集成學習方法。在機器學習中,集成學習方法使用多種學習算法來獲得比使用任何單獨的學習算法更好的預測性能。集成學習類似新世紀福音戰士(EVA)中名為 "三賢者" 的超級電腦。
  • 集成學習(Ensemble Learning)
    在機器學習的有監督學習算法中,我們的目標是學習出一個穩定的且在各個方面表現都較好的模型,但實際情況往往不這麼理想,有時我們只能得到多個有偏好的模型
  • 從Boosting到Stacking,概覽集成學習的方法與性能
    大多數集成方法使用單一基礎學習算法來產生同質的基礎學習器,即相同類型的學習器,為同質集成。還有一些使用異構學習器的方法,即不同類型的學習器,為異構集成。為了使集成方法比其中的任何單一算法更準確,基礎學習器必須儘可能準確和多樣化。
  • 機器學習集成模型之Bagging
    本文的話題是機器學習集成模型中的Bagging及其典型算法隨機森林的原理。
  • DSP集成開發環境中的混合編程及FFT算法的實現
    1  引言        CCS(Code Composer Studio)是TI公司的DSP集成開發環境。前者可以脫離DSP晶片,在PC機上模擬DSP指令集與工作機制,主要用於前期算法實現和調試。後者實時運行在DSP晶片上,可以在線編制和調試應用程式。
  • 一文讀懂集成學習(附學習資源)
    有人把它稱為機器學習中的「屠龍刀」,非常萬能且有效,集成模型是一種能在各種的機器學習任務上提高準確率的強有力技術,集成算法往往是很多數據競賽關鍵的一步,能夠很好地提升算法的性能。哲學思想為「三個臭皮匠賽過諸葛亮」。拿分類問題舉個例,直觀的理解,就是單個分類器的分類是可能出錯,不可靠的,但是如果多個分類器投票,那可靠度就會高很多。
  • 機器學習分類算法總結
    主要分類方法介紹解決分類問題的方法很多,單一的分類方法主要包括:決策樹、貝葉斯、人工神經網絡、K-近鄰、支持向量機和基於關聯規則的分類等;另外還有用於組合單一分類方法的集成學習算法
  • 使用 scikit-learn 玩轉機器學習——集成學習
    👆集成學習是結合多個單一估計器的預測結果對給定問題給出預測的一種算法,集成學習相對於單一的估計器來說會有更好的泛化能力和魯棒性,教科書式的定義的確會讓人頭昏腦漲,以下我們就來拿小華做作業來舉個慄子。小華這個參考同學作業的慄子就體現出了集成學習的思想。下面我們依次看下幾個典型的集成學習:Voting ClassifierVoting classifier 可能是思想最樸素的集成學習分類器了,它就是利用了上述小華同學想到的「少數服從多數的原則」或者是平均化多個分類器對於未知樣本屬於某個類別的概率的思想。