作者:Marco Peixeiro
編譯:ronghuaiyang
導讀
決策樹,隨機森林,bagging,boosting的介紹以及背後的原理
基於樹的方法可以用於回歸或分類。它們涉及到將預測空間分割成幾個簡單的區域。分割規則集可以總結在樹中,因此名為決策樹方法。
單個決策樹的性能通常不如線性回歸、logistic回歸、LDA等。但是它可以損失一些可解釋性,大幅度提高預測精度。
在這篇文章中,我們將介紹關於決策樹、bagging、隨機森林和boosting算法的所有知識。這將是一個漫長的閱讀,但它將是值得的!
決策樹基礎
回歸樹
在討論理論之前,我們需要一些基本的術語。
樹是倒著畫的。最後的區域稱為葉子,樹中發生分割的點是一個分割節點。最後,連接節點的段是「分支」。
回歸樹示意圖
創建一個回歸樹:
- 將預測空間劃分為J個不同且不重疊的區域
- 對於一個區域內的每一個樣本值,將該區域內響應值的平均值作為預測值
每個區域都通過最小化RSS(Root-Sum-Squares)進行分割。為此,它採用自頂向下的貪婪方法,也稱為遞歸二元分割。
為什麼自頂向下?
因為所有的樣本在第一次分裂之前都在同一個區域。
為什麼是貪婪的方法?
因為最好的分割發生在特定的步驟中,而不是向前看並進行分割,從而在未來的步驟中得到更好的預測。
數學上,我們將這對半平面定義為:
我們要求j和s最小化:
然而,這可能導致過擬合。修剪樹將產生一個更小的子樹,我們可以使用交叉驗證進行驗證。
未修剪的樹的示意圖
分類樹
分類樹與回歸樹非常相似。但是,我們不能使用響應的平均值,因此我們現在預測一個區域中最常見的類。當然,RSS不能用作標準。相反,每次分割都是為了最小化分類錯誤率。
分類錯誤率就是在區域中不屬於最常見類的訓練樣本的比例。
分類錯誤率公式
不幸的是,這對樹的生長來說不夠敏感。在實踐中,還使用了另外兩種方法。
基尼指數:
基尼指數
這是對所有類的總方差的度量。如你所見,如果比例接近0或1,則基尼指數會很小,因此它是衡量節點純度的一個很好的指標。
類似的原理也適用於另一種稱為交叉熵的方法:
交叉熵
現在我們已經了解了基本決策樹的工作原理,讓我們看看如何改進它的性能!
Bagging, 隨機森林和Boosting
Bagging
我們之前已經看到bootstrap可以計算任意數量的標準差。對於決策樹,方差很大。因此,通過bootstrap聚合或bagging,可以減少方差,提高決策樹的性能。
Bagging包括從數據集中反覆取樣。這會生成B個不同的引導訓練集。然後,我們對所有的bootstrap訓練集進行訓練,得到每個集合的預測,並對預測進行平均。
數學上的平均預測為:
將其應用到決策樹中,意味著我們可以構造大量的具有高方差和低偏差的樹。然後,我們可以對他們的預測進行平均,以減少方差,以提高決策樹的性能。
隨機森林
隨機森林相比Bagging樹提供了一種改進,方法是對樹進行「裝飾」。
就像Bagging一樣,建立了多個決策樹。然而,在每次拆分時,從所有p個預測中隨機選擇m個隨機樣本。通常分割只允許使用m個預測中的一個
換句話說,在每次拆分時,算法都不允許考慮大多數可用的預測器!
為什麼?
假設數據集中有一個非常強的預測器,以及其他中等強的預測器。然後,在bagging樹的集合中,它們都將在頂部分割中使用這個強大的預測器。因此,所有的bagging樹都是非常相似的,平均它們的預測不會減少方差,因為預測是高度相關的。
隨機森林通過強制每個分割只考慮有效地「裝飾」樹的預測子集來克服這個問題。
當然,如果m等於p,這就像bagging。通常,p的平方根給出的結果最好,如下所示。
分類錯誤是樹的數量的函數。每行表示每個分割中可用的預測的數量。
Boost
boost的工作方式與bagging類似,但樹是按順序生長的:每棵樹使用以前生長的樹的信息。
這意味著算法學習速度很慢。每個樹都擬合模型的殘差,而不是目標變量。因此,每棵樹都很小,在它表現不佳的地方,它會慢慢地提高預測能力。
Boost有三個調優參數:
- 樹的數量(B):與bagging和隨機森林不同,如果B太大,boost可能會過適合。使用交叉驗證來選擇正確數量的樹。
- 收縮參數(alpha):控制boost學習速率的小正數。它通常設置為0.01或0.001。
- 每個樹的分割數(d):它控制增強的集成的複雜性。通常,單個分割(d = 1)效果很好。它也被稱為交互深度。
分類錯誤是樹的數量的函數。每一行表示不同的交互深度。
正如你在上面所看到的,交互深度為1似乎提供了最好的結果。
現在你知道了決策樹、隨機森林、提升和bagging的一切。決策樹既可以用於回歸,也可以用於分類,當結合使用boost、bagging時,它們的表現非常好。
在以後的文章中,我將展示如何使用Python在真實環境中實現決策樹!
英文原文:https://towardsdatascience.com/everything-you-need-to-know-about-decision-trees-8fcd68ecaa71
更多文章,請關注微信公眾號:AI公園