關於決策樹你需要了解的一切

2019-08-22     AI公園
作者:Marco Peixeiro
編譯:ronghuaiyang

導讀

決策樹,隨機森林,bagging,boosting的介紹以及背後的原理

基於樹的方法可以用於回歸或分類。它們涉及到將預測空間分割成幾個簡單的區域。分割規則集可以總結在樹中,因此名為決策樹方法。

單個決策樹的性能通常不如線性回歸、logistic回歸、LDA等。但是它可以損失一些可解釋性,大幅度提高預測精度。

在這篇文章中,我們將介紹關於決策樹、bagging、隨機森林和boosting算法的所有知識。這將是一個漫長的閱讀,但它將是值得的!

決策樹基礎

回歸樹

在討論理論之前,我們需要一些基本的術語。

樹是倒著畫的。最後的區域稱為葉子,樹中發生分割的點是一個分割節點。最後,連接節點的段是「分支」。

回歸樹示意圖

創建一個回歸樹:

  1. 將預測空間劃分為J個不同且不重疊的區域
  2. 對於一個區域內的每一個樣本值,將該區域內響應值的平均值作為預測值

每個區域都通過最小化RSS(Root-Sum-Squares)進行分割。為此,它採用自頂向下的貪婪方法,也稱為遞歸二元分割

為什麼自頂向下?

因為所有的樣本在第一次分裂之前都在同一個區域。

為什麼是貪婪的方法?

因為最好的分割發生在特定的步驟中,而不是向前看並進行分割,從而在未來的步驟中得到更好的預測。

數學上,我們將這對半平面定義為:

我們要求js最小化:

然而,這可能導致過擬合。修剪樹將產生一個更小的子樹,我們可以使用交叉驗證進行驗證。

未修剪的樹的示意圖

分類樹

分類樹與回歸樹非常相似。但是,我們不能使用響應的平均值,因此我們現在預測一個區域中最常見的類。當然,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有三個調優參數:

  1. 樹的數量(B):與bagging和隨機森林不同,如果B太大,boost可能會過適合。使用交叉驗證來選擇正確數量的樹。
  2. 收縮參數(alpha):控制boost學習速率的小正數。它通常設置為0.01或0.001。
  3. 每個樹的分割數(d):它控制增強的集成的複雜性。通常,單個分割(d = 1)效果很好。它也被稱為交互深度

分類錯誤是樹的數量的函數。每一行表示不同的交互深度。

正如你在上面所看到的,交互深度為1似乎提供了最好的結果。

現在你知道了決策樹、隨機森林、提升和bagging的一切。決策樹既可以用於回歸,也可以用於分類,當結合使用boost、bagging時,它們的表現非常好。

在以後的文章中,我將展示如何使用Python在真實環境中實現決策樹!

英文原文:https://towardsdatascience.com/everything-you-need-to-know-about-decision-trees-8fcd68ecaa71

更多文章,請關注微信公眾號:AI公園

文章來源: https://twgreatdaily.com/POBD1WwBJleJMoPMUv55.html