隨機森林隨筆(一)

2018年6月20日 多雲

終於開始動筆寫點隨機森林的東西,隨機森林之前也接觸過,但第一次感受到隨機森林的魅力是看了周志華團隊的這篇文章:Deep forest: Towards an alternative to deep neural networksGithub上也有源碼,調試了一番也跑出來(建議在Linux環境下跑).

說起隨機森林,就必然要談到決策樹學習.決策樹學習是很多先進算法的基礎,包括隨機森林和boosting算法,也是被用作隨機森林和boosting算法等模型的基石,因此,瞭解單個決策樹的所有算法細節也是深入分析這些方法的先決條件.

最初的決策樹學習算法是心理學家兼計算機科學家E.B.Hunt1962年在研究人類的概念學習過程時提出來的CLS(Concept Learning System),這個算法確立了決策樹“分而治之”的學習策略.隨後,Hunt的學生羅斯·昆蘭1978年到斯坦福大學訪學,寫了一個類似於CLS的程序完成了一項作業,這項改進是引入了信息增益準則.1979年將他自己的工作整理出來並發表出來,這就是ID3算法.1986年昆蘭應邀Machine Learning雜誌社,重新發表了ID3算法,掀起了決策樹研究的熱潮.而後的幾年間,更多的決策樹算法問世,ID4、ID5等名字被其他研究者佔用,昆蘭也只好將自己的ID3後繼算法命名C4.0,在此基礎上進一步提出了著名的C4.5算法.

決策樹優點有如下幾點:

·決策樹是非參數的,它們可以模擬出複雜的輸入和輸出的關係,不需要任何的先驗假設.

·決策樹能夠處理不同種類的數據(有序的或分類變量,或者兩者的混合).

·決策樹本質上實現了特徵選擇.

·決策樹會無視異常值或標籤中錯誤.

·決策樹是可分析的,容易被理解的.


一般的,一顆決策樹包含一個根節點、若干個內部節點和若干個葉節點;葉節點對應於決策結果,其他每個節點則對應於一個屬性測試;每個節點包含的樣本集合根據屬性測試的結果被劃分到子節點中;根節點包含樣本全集.從根節點到每個葉節點的路徑對應了一個判定測試序列.

決策樹學習的目的是爲了產出一顆泛化能力強的決策樹,其基本流程遵循簡單且直觀的“分而治之”策略.

對於決策樹學習,如何選擇最優劃分屬性.目前主要有三種劃分方式:

·信息增益:ID3算法

·增益率:C4.5算法

·基尼指數:CART(Classification and Regression Tree)算法

爲了防止決策樹學習算法“過擬合”,會採用剪枝(pruning)的手段.決策樹剪枝的基本策略有“預剪枝”和“後剪枝”.

決策樹對於連續值和缺失值的處理都有着良好的適應性.

以上是對決策樹有了個大致的介紹.具體內容參閱周志華的《機器學習》P73-P95.













發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章