今天要介紹的演算法是決策樹 (Decision Trees),決策樹非常容易被應用,也常被用於解決線性迴歸問題。在產生決策樹時要找到最佳的分枝法是一個NP-hard問題,因此貪婪演算法 (Greedy algorithm) 是要長出一個最佳的決策樹最可能的方法。
決策樹是最直覺的ML演算法之一,而且可以被用在分類及迴歸分析中,也就是Classification and Regression Tree (CART) 演算法,而假設今天我們要對一個問題進行決策樹演算時,首先我們要先把這個問題的資料特徵列出來,如果這個特徵為非數列,則可以透過決策樹以分類來長出不同樹枝,例如男性、女性,符合各項分類條件的資料則分別往那些樹枝丟過去;如果特徵是數列,則可以定出不同的數字標準作為樹枝,例如小於等於10、大於10等,符合各項迴歸條件的資料則分別往那些樹枝丟過去。
有時候因為一開始在選擇分類條件或是數列標準時,可能會因為對於資料瞭解不夠明確,或是後來發現經過調整結果會更好等,因此適度的調整分類出現的順序,或是移除不必要的節點,這也都是可能會發生的事情。
以鐵達尼號乘客清單之資料及為例,最後長出來的決策樹可能會如同下圖,而每筆新的資料進到這棵樹後,就會從頂端開始,每個節點都是一個判斷條件,經過一個一個節點後得到最後輸出之結果: