如何利用剪枝方法設(shè)計(jì)更好的決策樹(shù)
譯文決策樹(shù)(DT)是一種有監(jiān)督的機(jī)器學(xué)習(xí)算法,用于解決分類和回歸問(wèn)題。以下了解一下如何使用剪枝(Pruning)方法設(shè)計(jì)一個(gè)決策樹(shù)。
決策樹(shù)分析是一種通用的、預(yù)測(cè)性的機(jī)器學(xué)習(xí)建模工具。它是機(jī)器學(xué)習(xí)最簡(jiǎn)單、最有用的結(jié)構(gòu)之一,通過(guò)使用一種根據(jù)不同條件拆分?jǐn)?shù)據(jù)集的算法方法構(gòu)建了決策樹(shù)。而決策樹(shù)是監(jiān)督學(xué)習(xí)中常用的功能性技術(shù)之一。
但在采用剪枝方法設(shè)計(jì)決策樹(shù)之前,需要了解它的概念。
理解決策樹(shù)
決策樹(shù)是一種有監(jiān)督的機(jī)器學(xué)習(xí)算法,用于解決分類和回歸問(wèn)題。決策樹(shù)遵循一組嵌套的if-else語(yǔ)句條件來(lái)進(jìn)行預(yù)測(cè)。由于決策樹(shù)主要用于分類和回歸,因此用于生長(zhǎng)它們的算法稱為CART(分類和回歸樹(shù))。并且提出了多種算法來(lái)構(gòu)建決策樹(shù)。決策樹(shù)旨在創(chuàng)建一個(gè)模型,通過(guò)學(xué)習(xí)從數(shù)據(jù)特征推斷出的簡(jiǎn)單決策規(guī)則來(lái)預(yù)測(cè)目標(biāo)變量的值。
決策樹(shù)的每個(gè)節(jié)點(diǎn)代表一個(gè)決策。
在上圖中,根節(jié)點(diǎn)是深度為零的決策樹(shù)圖的起點(diǎn)。然后是進(jìn)行二叉決策的子節(jié)點(diǎn)/內(nèi)部節(jié)點(diǎn)。最后,還有葉節(jié)點(diǎn),用于對(duì)類別進(jìn)行預(yù)測(cè)。
有助于構(gòu)建決策樹(shù)的算法旨在從變量及其屬性中預(yù)測(cè)目標(biāo)變量。決策樹(shù)的結(jié)構(gòu)是通過(guò)從根節(jié)點(diǎn)到分支的二叉序列進(jìn)行分割的。內(nèi)容要到達(dá)決策樹(shù)中的葉節(jié)點(diǎn),必須傳遞多個(gè)內(nèi)部節(jié)點(diǎn)來(lái)檢查所做的預(yù)測(cè)。
構(gòu)建決策樹(shù)時(shí)的假設(shè)
使用決策樹(shù)時(shí)必須做出的一些假設(shè)是:
- 整個(gè)訓(xùn)練集是根。
- 最好有分類特征值。在構(gòu)建決策樹(shù)模型之前使用離散值。
- 屬性值用于遞歸分發(fā)記錄。
- 統(tǒng)計(jì)方法用于確定應(yīng)將哪些屬性放置為決策樹(shù)的根節(jié)點(diǎn)或內(nèi)部節(jié)點(diǎn)。
在決策樹(shù)中使用乘積和(SOP)或析取范式表示。
一個(gè)類中的每個(gè)分支,從根到具有不同分支結(jié)尾的決策樹(shù)的葉節(jié)點(diǎn)形成一個(gè)析取(和),同一個(gè)類則形成值的合取(乘積)。
為什么選擇決策樹(shù)?
決策樹(shù)遵循與人類在現(xiàn)實(shí)生活中做出決策相同的過(guò)程,使其更易于理解。這對(duì)于解決機(jī)器學(xué)習(xí)中的決策問(wèn)題至關(guān)重要。它普遍用于訓(xùn)練機(jī)器學(xué)習(xí)模型的原因是因?yàn)闆Q策樹(shù)有助于思考問(wèn)題的所有可能結(jié)果。此外,與其他算法相比,對(duì)數(shù)據(jù)清理的要求更少。
但是,決策樹(shù)也有它的局限性,那就是過(guò)擬合。
決策樹(shù)中的過(guò)擬合
過(guò)擬合是決策樹(shù)中的一個(gè)重要的難題。如果允許決策樹(shù)增長(zhǎng)到最大深度,它將總是過(guò)擬合訓(xùn)練數(shù)據(jù)。當(dāng)決策樹(shù)被設(shè)計(jì)為完美擬合訓(xùn)練數(shù)據(jù)集中的所有樣本時(shí),就會(huì)發(fā)生過(guò)擬合。因此,決策樹(shù)最終會(huì)產(chǎn)生具有嚴(yán)格稀疏數(shù)據(jù)規(guī)則的分支,這會(huì)通過(guò)使用不屬于訓(xùn)練集的樣本來(lái)影響預(yù)測(cè)的準(zhǔn)確性。決策樹(shù)越深,決策規(guī)則序列就越復(fù)雜。而分配最大深度是簡(jiǎn)化決策樹(shù)和處理過(guò)擬合的最簡(jiǎn)單方法。
但是如何以更精確的方式改進(jìn)決策樹(shù)模型呢?以下進(jìn)行一下了解。
如何通過(guò)剪枝防止決策樹(shù)中的過(guò)擬合?
剪枝是一種用于消除決策樹(shù)中過(guò)擬合的技術(shù)。它通過(guò)消除最弱規(guī)則來(lái)簡(jiǎn)化決策樹(shù),可以進(jìn)一步分為:
- 預(yù)剪枝是指通過(guò)設(shè)置約束來(lái)限制決策樹(shù)在早期階段的生長(zhǎng)。為此,可以使用超參數(shù)調(diào)整來(lái)設(shè)置min_samples_split、min_samples_leaf或max_depth等參數(shù)。
- 在構(gòu)建決策樹(shù)之后使用后剪枝方法。當(dāng)決策樹(shù)變得非常深入并顯示模型過(guò)擬合時(shí)使用它。為此,還將通過(guò)成本復(fù)雜性剪枝來(lái)控制決策樹(shù)分支,例如max_samples_split和max_depth。
剪枝從一棵未剪枝的決策樹(shù)開(kāi)始。然后獲取子樹(shù)序列,通過(guò)交叉驗(yàn)證選擇最佳的子樹(shù)序列。
剪枝可以確保子樹(shù)是最優(yōu)的,這一點(diǎn)很重要,也就是說(shuō)它具有更高的精度,并且最優(yōu)子樹(shù)搜索在計(jì)算上是易于處理的。因此,剪枝不僅應(yīng)該減少過(guò)擬合,而且還應(yīng)該使決策樹(shù)比未剪枝的決策樹(shù)更簡(jiǎn)單、更容易理解和更有效地解釋,同時(shí)保持其性能。
結(jié)語(yǔ)
現(xiàn)在人們知道決策樹(shù)屬于一種有監(jiān)督的機(jī)器學(xué)習(xí)算法。與其他監(jiān)督學(xué)習(xí)算法相比,決策樹(shù)也可用于解決分類和回歸問(wèn)題。
決策樹(shù)用于構(gòu)建模型,以基于從先前訓(xùn)練數(shù)據(jù)中得出的簡(jiǎn)單決策規(guī)則來(lái)預(yù)測(cè)變量值或類別。剪枝有助于決策樹(shù)做出精確的決策,同時(shí)降低其復(fù)雜性并設(shè)置約束。
原文標(biāo)題:How to Design a Better Decision Tree With Pruning,作者:Mahipal Nehra