1. 程式人生 > >隨機森林算法梳理

隨機森林算法梳理

total 模型 http auto criterion 會員 times dba bootstrap

---恢復內容開始---

隨機森林算法梳理

1. 集成學習概念


通過構建並結合多個學習器來完成學習任務,有時也被稱為多分類器系統、基於委員會的學習等

2. 個體學習器概念


通常由一個現有的算法從訓練數據產生的基學習器。

3. boosting bagging


boosting: 是一族可將弱學習器提升為強學習器的算法。這族算法的工作機制類似:先從初始訓練集訓練出一個基學習器,再根據基學習器的表現對訓練對訓練樣本分步進行調整,使得先前基學習器做錯的訓練樣本在後續受到更多的關註,然後基於調整後的樣本分布來訓練下一個基學習器;如此重復進行,直到 基學習器數目達到事先指定的值T,最終將這T個基學習器進行加權結合。

bagging:是並行式學習方法最著名的代表。給定包含m個樣本的數據集,我們先隨機取出一個樣本放入采樣集中,再把該樣本放回初始數據集,使得下次采樣時該樣本時該樣本仍有可能被選中,選出T個含有m個訓練樣本的采樣集,然後基於每個采樣集訓練出一個基學習器,再將這些基學習器進行結合。

4. 結合策略(平均法,投票法,學習法)


平均法:對各個基學習器的數值輸出進行平均(簡單平均法,加權平均法)

投票法:每一基學習器輸出一個標記,根據標記的出現次數來決定最終標記(絕對多數投票法、相對多數投票法、加權投票法)。

學習法:通過另一個學習器來學習如何結合。

5. 隨機森林思想


隨機森林在以決策樹為基學習器構建Bagging集成的基礎上,進一步在決策樹的訓練過程中引入隨機屬性選擇。

6. 隨機森林的推廣


extra trees、

Totally Random Trees Embedding、

Isolation Forest

7. 優缺點


隨機森林

優點:簡單、容易實現、計算開銷小

缺點:基學習器的多樣性不僅來自樣本擾動、還有屬性擾動

8. sklearn參數


隨機森林

class sklearn.ensemble.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)

n_estimators:隨機森林樹的數量

criterion:衡量生成的隨機森林質量的參數

max_depth:隨機森林樹的最大深度

min_samples_split:樹分裂的最小個數

min_samples_leaf :某一葉節點上樣本的最小數量

min_weight_fraction_leaf:葉結點的最小加權分數

max_features:在生成最佳森林時最大特征數

max_leaf_nodes:最大葉結點

min_impurity_decrease:如果某一節點分裂後,隨機森林減少的熵大於此值則增加該分支

bootstrap:在生成樹隨機森林時,是否采用bootstrap樣本

oob_score:是否使用out-of-bag樣本測試泛化性

n_jobs:是否使用多線程

random_state :隨機種子

verbose:在優化和預測時控制模型詳細程度

warm_start:是否重新生成隨機森林

class_weight:每一等級的權重

2 9.應用場景


隨機森林:數據維度相對低(幾十維),同時對準確性有較高要求時。

某俱樂部人員分布,根據會員信息預測該會員的消費能力。

隨機森林算法梳理