經過構建並結合多個學習器來完成任務,常能夠得到比單一學習器更加優越的泛化性能。即便每一個簡單的模型能力很弱,預測精度很是低,但組合起來以後,精度獲得了顯著的提高,能夠和其餘類型的強模型相媲美。html
上圖是集成學習的通常結構: 先產生一組 個體學習器(概念見下節),再用某種策略將其結合起來。個體學習器一般由現有的一個算法從訓練中產生。此時集成中之包含同種類型的個體學習器,如決策樹集成中的個體學習器所有是決策樹,神經網絡模型中的個體學習器所有是神經網絡,這種集成是同質(homogenous)的,同質集成中的個體學習器也稱做基學習器。 對應的,有異質集成,若集成中包含不一樣類型的個體學習器,如同時包含決策樹集成和神經網絡集成,這時的個體學習器通常稱做組件學習器,而不是基學習器,或者,直接稱之爲個體學習器。node
根據個體學習器的生成方式不一樣,目前的集成學習方法大體分爲兩類:算法
工做機制:先從初始訓練機訓練出一個基學習器,再根據基學習器的表現對訓練樣本分佈進行調整,使得先前基學習器作錯的訓練樣本在後續受到更多的關注,而後基於調整後的樣本分佈來訓練下一個基學習器。bootstrap
Bagging 是並行式集成學習方法表明之一,其算法原理大體以下:網絡
當訓練數據不少時,一種更爲強大的結合策略是使用 「學習法」,即經過另外一個學習器來進行結合。 Stacking 是學習法的典型表明。這裏咱們把個體學習器稱爲初級學習器,用於結合的學習器稱爲次級學習器或元學習器 (meta-learner)。 Stacking 先從初始數據集訓練出初級學習器,而後 「生成」 一個新數據集用於訓練次級學習器。在這個新數據集中,初級學習器的輸出被當作樣例輸入特徵,而初始樣本的標記仍被看成樣例標記。dom
隨機森林是Bagging的表明算法,其原理與Bagging十分類似,在此基礎上作了一些改進:機器學習
隨機森林算法流程:性能
基於RF,有不少算法變種,應用很普遍,不止用於分類,還能夠用於特徵轉換,異常點檢測等。 一、 extra trees 原理與RF幾乎相同,具體的區別有:學習
gini
或者信息熵
等選擇一個最優特徵值劃分點,與傳統決策樹相同。但ET會隨機選擇一個特徵值來劃分決策樹。 因爲隨機選擇了特徵值的劃分點位,而不是最優勢位,這樣會致使生成的決策樹的規模通常會大於 RF 所生成的決策樹。也就是說,模型的方差相對於 RF 進一步減小,可是偏倚相對於 RF 進一步增大。在某些時候,ET的泛化能力比 RF 更好。 二、Totally Random Trees Embedding (如下簡稱 TRTE) TRTE 是一種非監督學習的數據轉化方法。它將低維的數據集映射到高維,從而讓映射到高維的數據更好的運用於分類迴歸模型。咱們知道,在支持向量機中運用了核方法來將低維的數據集映射到高維,此處 TRTE 提供了另一種方法。 三、 Isolation Forest(如下簡稱 IForest) 是一種異常點檢測的方法。它也使用了相似於 RF 的方法來檢測異常點RandomForestClassifier(n_estimators='warn', criterion='gini', max_depth=None, min_samples_split=2, min_samples_leaf=1, min_weight_fraction_leaf=0.0, max_features='auto', max_leaf_nodes=None, min_impurity_decrease=0.0, min_impurity_split=None, bootstrap=True, oob_score=False, n_jobs=None, random_state=None, verbose=0, warm_start=False, class_weight=None)_
.net
其中,參數2criterion
表示特徵劃分方法選擇,默認爲gini
,可選擇爲entropy
(信息增益) 兩者用於表示信息的純度,區別是計算方法的不一樣。