【機器學習】決策樹

筆者邀請您,先思考:

1 決策樹算法的原理?

2 決策樹算法的優劣?

一棵樹在現實生活中有許多類比,並且結果表明它廣泛地影響機器學習,包括分類和迴歸。 在決策分析中,決策樹可用於在視覺上和明確地表示決策和作出決策。 顧名思義,它是使用樹狀的決策模型。 雖然它是數據挖掘中常用的工具以用於推導達到特定目標的策略,但它也廣泛用於機器學習,這將是本文的重要關注點。

如何將算法表示爲樹?

在此,我們考慮一個非常基本的例子,它使用泰坦尼克數據集來預測乘客是否能夠倖存。 下面的模型使用數據集中的3個特徵/屬性/列,即sex,age和sibsp(配偶或子女的數量)。

決策樹是倒置的,其根位於頂部。 在上圖中,黑色粗體文本表示條件/內部節點,樹基於該節點/內部節點分割成分支/邊緣。 分支的末端不再分裂是決定/葉子,在這種情況下,乘客是否死亡或倖存,分別表示爲紅色和綠色文本。

雖然,真實的數據集將具有更多的特徵,這只是一個更大的樹中的分支,但你不能忽視這個算法的簡單性。 特徵重要性很清楚,也容易查看關係。這種方法通常被稱爲來自數據的學習決策樹和上面樹稱爲分類樹,因爲目標是將乘客分類爲倖存者或死亡者。 迴歸樹以相同的方式表示,只是它們預測像房子價格這樣的連續值。 通常,決策樹算法稱爲CART或分類和迴歸樹

那麼,背後究竟發生了什麼? 生成樹涉及決定選擇哪些特徵以及用於分割的條件,以及知道何時停止。 由於樹木通常會隨意生長,因此您需要將其修剪下來才能看起來很漂亮。 讓我們從用於分裂的常用技術開始。

遞歸二叉分裂

在此過程中,將考慮所有函數,並使用成本函數嘗試和測試不同的分割點。 選擇具有最佳成本(或最低成本)的分割。

考慮從泰坦尼克號數據集中學習的樹的早期例子。在第一個分割或根中,考慮所有屬性/特性,然後根據這個分割將訓練數據分成組。我們有3個特徵,所以將有3個候選分割。現在,我們將使用一個函數來計算每次拆分的精度。選擇成本最低的分割方式,在我們的例子中是乘客的性別。這種算法本質上是遞歸的,因爲組成的組可以使用相同的策略進行細分。由於這個過程,這個算法又被稱爲貪心算法,因爲我們有一個過高的降低成本的願望。這使得根節點成爲最好的預測器/分類器。

分割代價

讓我們仔細看看用於分類和迴歸的成本函數。 在這兩種情況下,成本函數試圖找到最均勻的分支,或者具有相似響應的組的分支。 這是有道理的,我們可以更確定測試數據輸入將遵循某個路徑。

可以說,我們正在預測房屋的價格。 現在,決策樹將通過考慮訓練數據中的每個特徵開始分裂。 特定組的訓練數據輸入的響應平均值被認爲是該組的預測。 上述函數應用於所有數據點,並計算所有候選分割的成本。 再次選擇成本最低的分割。 另一個成本函數涉及降低標準差,更多關於它的信息可以在這裏找到

基尼分數通過分裂創建的組中響應類的混合程度,可以瞭解分割的好壞程度。 這裏,pk是特定組中存在的相同類輸入的比例。 當一個組包含來自同一類的所有輸入時,就會出現完美的類純度,在這種情況下,pk爲1或0且G = 0,其中作爲一個組中50-50分類的節點具有最差的純度, 所以對於二元分類,它將具有pk = 0.5和G = 0.5。

什麼時候停止分裂?

你可能會問什麼時候停止生長樹? 由於問題通常具有大量特徵,因此會導致大量分裂,從而產生巨大的樹。 這種樹很複雜,可能導致過度擬合。 那麼,我們需要知道何時停止? 這樣做的一種方法是設置每個葉子上使用的最小數量的訓練輸入。 例如,我們可以使用至少10名乘客來做出決定(死亡或倖存),並忽略任何少於10名乘客的葉子。 另一種方法是設置模型的最大深度。 最大深度是指從根到葉子的最長路徑的長度。

剪枝

通過剪枝可以進一步提高樹的性能。 它涉及刪除使用具有低重要性的特徵的分支。 這樣,我們降低了樹的複雜性,從而通過減少過度擬合來提高其預測能力。

Pruning can start at either root or the leaves. The simplest method of pruning starts at leaves and removes each node with most popular class in that leaf, this change is kept if it doesn't deteriorate accuracy. Its also called reduced error pruning. More sophisticated pruning methods can be used such as cost complexity pruning where a learning parameter (alpha) is used to weigh whether nodes can be removed based on the size of the sub-tree. This is also known as weakest link pruning.

CART的優點

  • 易於理解,解釋,可視化。
  • 決策樹隱式執行變量篩選或特徵選擇。
  • 可以處理數字和分類數據,還可以處理多輸出問題。
  • 參數之間的非線性關係不會影響樹性能。

CART的缺點

  • 決策樹學習者可以創建過於複雜的樹,這些樹不能很好地推廣數據。 這稱爲過度擬合。
  • 決策樹可能不穩定,因爲數據中的小變化可能導致生成完全不同的樹。 這稱爲方差,需要通過套袋和提升等方法降低。
  • 貪心算法無法保證返回全局最優決策樹。 這可以通過訓練多個樹來減輕,其中特徵和樣本隨機替換。
  • 如果某些類占主導地位,決策樹學習者會創建偏向它的樹。 因此,建議在擬合決策樹之前平衡數據集。

這是所有的基本知識,讓你與決策樹學習平起平坐。對決策樹學習方法進行了改進。實現這些算法的流行庫是Scikit-Learn。它有一個很好的api,可以用python中的幾行代碼讓您的模型運行起來。

原文鏈接: https://towardsdatascience.com/decision-trees-in-machine-learning-641b9c4e8052

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