[機器學習首部曲] 決策樹模型介紹 Decision Tree

本篇文章主要簡單介紹決策樹模型,以及模型背後的運算原理。

什麼是決策樹模型?

決策樹模型可分為處理類別變數的分類樹(Classification Tree)、處理連續變數的迴歸樹(Regression Tree)、同時包含分類與回歸的分類與迴歸樹(CART)及卡方自動交互作用偵測等等。

在影片中,我們以分類樹為例,引用Russell & Norvig裡餐廳是否值得等待的例子,來理解決策樹模型。決策樹模型屬於監督式模型的一種,在這裡我們的訓練集有12間餐廳的各種特徵資訊,包含顧客人數、價格高低、餐廳型態等等,而每間餐廳也貼上了是否值得等待的標籤。

決策樹模型就像是一棵樹,由樹根、樹幹到樹葉般地開枝散葉。而每個節點的部分,都是一個特徵。根據特徵一步又一步的細分,將得到餐廳是否值得等待的資訊。而這整棵樹所包含的決策流程,就是所謂的決策樹模型。

現在,問題來了! 我們有這麼多的特徵,到底該如何建構出一棵好的決策樹呢?

決策樹模型的運作原理

目標: 衡量特徵減少Entropy的程度。(選取資訊增益大的特徵)

Entropy: 不確定性的量度。Entropy=0為最穩定的狀態,Entropy=1為最混亂無序的狀態。

資訊增益(Information Gain): 不同狀態Entropy的差值。

影片中提供簡單的計算範例,有興趣的朋友可參考影片內容。

過度配適的問題

決策樹為歸納學習的一種,簡單來說就是從已知道資訊去做學習,以我們今天討論的例子來說,就是這12家餐廳。如果我們的特徵夠多,決策樹夠細,很容易導致過度配適的問題。意即我們所建造出的決策樹模型在這12家餐廳裡可以得到很好的結果,然而因為過度擬和這12家的結果,導致用在新的資料時表現的結果其實很差。

另外,考量到有些特徵中並非類別變數,可能包含連續變數,若單一採用資訊增益來當作節點的篩選也容易造成偏誤。因此,在特徵的選擇中我們可以藉由加入一些逞罰項來讓模型不會過度配合我們的訓練集。以下提供兩個方法參考。

Gain Ratio

藉由計算Split Information 加入逞罰項的概念。

然後以資訊增益除上Split Information的Gain Ratio來取代先前的資訊增益,當作選取特徵的基礎。

Gini Impurity

Gini Impurity 為分類器分錯的機率,愈小代表錯誤機率愈小。故也可以此來當作特徵的篩選標準。

另外,在處理過度配適的資料架構上,除了透過直接減少樹枝的發展外以避免過度配適外,還有另一種比較常見的做法—修剪樹枝。採用修剪樹枝比較好的做法就是將資料分為訓練集、修剪集以及測試集。用訓練集的資料來架構決策樹,架構好以後用修剪集的資料來修剪樹枝,最後拿到測試集看模型的表現。

這個單元,我們認識了決策樹模型、背後的運作原理以及如何解決過度配適的問題。下個單元,我們將用python來實作決策樹模型。

Share

發佈留言

發佈留言必須填寫的電子郵件地址不會公開。 必填欄位標示為 *