Scikit-Learn隨機森林
- 1、隨機森林
- 1.1、集成學習
- 1.2、Bagging方法
- 1.3、隨機森林算法
- 1.4、隨機森林的優缺點
- 2、Scikit-Learn隨機森林回歸
- 2.1、Scikit-Learn隨機森林回歸API
- 2.2、隨機森林回歸實踐(加州房價預測)
1、隨機森林
隨機森林是一種由決策樹構成的集成算法,它在大多情況下都能有不錯的表現。隨機森林既可用于回歸也可用于分類。隨機森林回歸在機器學習知識結構中的位置如下:
1.1、集成學習
隨機森林是一種由決策樹構成的(并行)集成算法,屬于Bagging類型,隨機森林通過組合多個弱分類器,最終結果通過投票或取均值,使得整體模型的結果具有較高的精確度和泛化性能,同時也有很好的穩定性,因此廣泛應用在各種業務場景中
隨機森林有如此優良的表現,主要歸功于隨機和森林。顧名思義,隨機森林是一個比喻,它由若干決策樹構成,每棵決策樹都是其基本單元。至于隨機,只是一個數學抽樣概念。隨機使它具有抗過擬合能力,森林使它更加精準
隨機森林的基本思想在于集思廣益,集中群眾的智慧,廣泛吸收有益的意見。這往往可以得到更好的解決方案。集思廣益在機器學習中對應一個關鍵概念——集成學習
集成學習(Ensemble Learning)通過訓練學習多個個體學習器,當預測時通過結合策略將多個個體學習器的結果組合作為最終強學習器的結果輸出
對于訓練數據集,我們訓練一系列個體學習器,再通過結合策略將它們集成起來,形成一個更強的學習器,這就是集成學習所做的事情
其中,個體學習器是相對于集成學習來說的,其實我們在之前了解到的很多模型,例如決策樹算法、樸素貝葉斯算法等,都是個體學習器
而集成可以分為同質集成和異質集成:
- 同質集成:只包含同種類型的個體學習器,個體學習器稱作基學習器。例如隨機森林中全是決策樹集成
- 異質集成:包含不同類型的個體學習器,個體學習器稱作組件學習器。例如同時包含決策樹和神經網絡進行集成
個體學習器代表的是單個學習器,集成學習代表的是多個學習器的結合
集成學習的核心問題有兩個:
- 使用什么樣的個體學習器?
- 準確性:個體學習器不能太弱,需要有一定的準確性
- 多樣性:個體學習器之間要存在差異性,即具有多樣性
- 如何選擇合適的結合策略構建強學習器?
- 并行組合方式:例如隨機森林
- 傳統組合方式:例如Boosting樹模型
1.2、Bagging方法
這里我們只講隨機森林的并行集成模型,而Bagging是并行式集成學習方法最著名的代表
Bagging方法全稱為自助聚集(Bootstrap Aggregating),顧名思義,Bagging由Bootstrap與Aggregating兩部分組成
要理解Bagging,首先要了解自助采樣法(Bootstrap Sampling)
自助采樣的過程為
- 給定包含m個樣本的數據集,先隨機取出一個樣本放入采樣集中,再把該樣本放回初始數據集,使得下次采樣時該樣本仍有可能被選中
- 重復上述過程m輪,得到包含m個樣本的采樣集,初始數據集中有的樣本在采樣集中多次出現,有的則從未出現
- 假設約63.2%的樣本出現在采樣集中,而未出現的約36.8%的樣本可用作驗證集來對后續的泛化性能進行包外估計
Bagging方法是在自助采樣基礎上構建的,上述的采樣過程我們可以重復T次,采樣出T個包含m個樣本的采樣集,然后基于每個采樣集訓練出一個基學習器,然后將這些基學習器進行結合
在對預測輸出進行結合時,Bagging通常對分類任務使用簡單投票法,對回歸任務使用