溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務(wù)條款》

關(guān)于決策樹你需要了解的一切

發(fā)布時間:2020-08-11 04:00:44 來源:ITPUB博客 閱讀:180 作者:dicksonjyl560101 欄目:互聯(lián)網(wǎng)科技
作者:Marco Peixeiro
編譯:ronghuaiyang

導(dǎo)讀

決策樹,隨機森林,bagging,boosting的介紹以及背后的原理
關(guān)于決策樹你需要了解的一切

基于樹的方法可以用于回歸或分類。它們涉及到將預(yù)測空間分割成幾個簡單的區(qū)域。分割規(guī)則集可以總結(jié)在樹中,因此名為 決策樹方法。

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

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

決策樹基礎(chǔ)

回歸樹

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

樹是倒著畫的。最后的區(qū)域稱為葉子,樹中發(fā)生分割的點是一個分割節(jié)點。最后,連接節(jié)點的段是“分支”。

關(guān)于決策樹你需要了解的一切

回歸樹示意圖

創(chuàng)建一個回歸樹:

  1. 將預(yù)測空間劃分為J個不同且不重疊的區(qū)域
  2. 對于一個區(qū)域內(nèi)的每一個樣本值,將該區(qū)域內(nèi)響應(yīng)值的平均值作為預(yù)測值

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

為什么自頂向下?

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

為什么是貪婪的方法?

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

數(shù)學(xué)上,我們將這對半平面定義為:

關(guān)于決策樹你需要了解的一切

我們要求 js最小化:

關(guān)于決策樹你需要了解的一切

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

關(guān)于決策樹你需要了解的一切

未修剪的樹的示意圖

分類樹

分類樹與回歸樹非常相似。但是,我們不能使用響應(yīng)的平均值,因此我們現(xiàn)在預(yù)測一個區(qū)域中最常見的類。當(dāng)然,RSS不能用作標(biāo)準(zhǔn)。相反,每次分割都是為了最小化 分類錯誤率

分類錯誤率就是在區(qū)域中不屬于最常見類的訓(xùn)練樣本的比例。

關(guān)于決策樹你需要了解的一切

分類錯誤率公式

不幸的是,這對樹的生長來說不夠敏感。在實踐中,還使用了另外兩種方法。

基尼指數(shù)

關(guān)于決策樹你需要了解的一切

基尼指數(shù)

這是對所有類的總方差的度量。如你所見,如果比例接近0或1,則基尼指數(shù)會很小,因此它是衡量節(jié)點純度的一個很好的指標(biāo)。

類似的原理也適用于另一種稱為交叉熵的方法:

關(guān)于決策樹你需要了解的一切

交叉熵

現(xiàn)在我們已經(jīng)了解了基本決策樹的工作原理,讓我們看看如何改進它的性能!

Bagging, 隨機森林和Boosting

Bagging

我們之前已經(jīng)看到bootstrap可以計算任意數(shù)量的標(biāo)準(zhǔn)差。對于決策樹,方差很大。因此,通過bootstrap聚合或 bagging,可以減少方差,提高決策樹的性能。

Bagging包括從數(shù)據(jù)集中反復(fù)取樣。這會生成 B個不同的引導(dǎo)訓(xùn)練集。然后,我們對所有的bootstrap訓(xùn)練集進行訓(xùn)練,得到每個集合的預(yù)測,并對預(yù)測進行平均。

數(shù)學(xué)上的平均預(yù)測為:

關(guān)于決策樹你需要了解的一切

將其應(yīng)用到?jīng)Q策樹中,意味著我們可以構(gòu)造大量的具有高方差和低偏差的樹。然后,我們可以對他們的預(yù)測進行平均,以減少方差,以提高決策樹的性能。

隨機森林

隨機森林相比Bagging樹提供了一種改進,方法是對樹進行“裝飾”。

就像Bagging一樣,建立了多個決策樹。然而,在每次拆分時,從所有 p個預(yù)測中隨機選擇 m個隨機樣本。通常分割只允許使用 m個預(yù)測中的一個

關(guān)于決策樹你需要了解的一切

換句話說,在每次拆分時,算法都不允許考慮大多數(shù)可用的預(yù)測器!

為什么?

假設(shè)數(shù)據(jù)集中有一個非常強的預(yù)測器,以及其他中等強的預(yù)測器。然后,在bagging樹的集合中,它們都將在頂部分割中使用這個強大的預(yù)測器。因此,所有的bagging樹都是非常相似的,平均它們的預(yù)測不會減少方差,因為預(yù)測是高度相關(guān)的。

隨機森林通過強制每個分割只考慮有效地“裝飾”樹的預(yù)測子集來克服這個問題。

當(dāng)然,如果 m等于 p,這就像bagging。通常, p的平方根給出的結(jié)果最好,如下所示。

關(guān)于決策樹你需要了解的一切

分類錯誤是樹的數(shù)量的函數(shù)。每行表示每個分割中可用的預(yù)測的數(shù)量。

Boost

boost的工作方式與bagging類似,但樹是按順序生長的:每棵樹使用以前生長的樹的信息。

這意味著算法學(xué)習(xí)速度很慢。每個樹都擬合模型的殘差,而不是目標(biāo)變量。因此,每棵樹都很小,在它表現(xiàn)不佳的地方,它會慢慢地提高預(yù)測能力。

Boost有三個調(diào)優(yōu)參數(shù):

  1. 樹的數(shù)量( B):與bagging和隨機森林不同,如果 B太大,boost可能會過適合。使用交叉驗證來選擇正確數(shù)量的樹。
  2. 收縮參數(shù)( alpha):控制boost學(xué)習(xí)速率的小正數(shù)。它通常設(shè)置為0.01或0.001。
  3. 每個樹的分割數(shù)( d):它控制增強的集成的復(fù)雜性。通常,單個分割( d = 1)效果很好。它也被稱為 交互深度。
關(guān)于決策樹你需要了解的一切

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

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

現(xiàn)在你知道了決策樹、隨機森林、提升和bagging的一切。決策樹既可以用于回歸,也可以用于分類,當(dāng)結(jié)合使用boost、bagging時,它們的表現(xiàn)非常好。

在以后的文章中,我將展示如何使用Python在真實環(huán)境中實現(xiàn)決策樹!

英文原文:

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

https://www.toutiao.com/a6727985346639823363/

向AI問一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進行舉報,并提供相關(guān)證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI