在上一篇我們稍為介紹了神經網路之後,我們要來看看另外一個機器學習的分支,Decision Tree。
而要如何運用決策樹呢?又或者換個問法,我們要如何創建一個決策樹。
我們來看看下面這個問題,在下面的例子,我們有一組數據,是關於鐵達尼號的生還者與受難者的資料。
在這組資料裡不僅有人名、性別、年齡...等。我們要如何試著透過決策樹來預測該乘客會不會遇難呢?
有玩過Kaggle的人應該都看過這個題目,這是在大數據分析競賽網站Kaggle裡,初學者最廣為人知的題目。
而我們可以透過創建決策樹來解決它,要創建決策樹,我們要對資料庫"問問題!"
我們可以和資料庫說把男生、女生分別分成兩組資料,這時我們決策樹的第一個決策點就誕生了!
我們就在剛才,利用了性別來當決策樹的第一個點!這時我們的資料經過決策樹時就會把資料分成"男生"、"女生"!
但是這個不是我瞎分的喔!還記的我們決策樹的目標是甚麼嗎?我們要預測乘客會不會受難!
乘客分成男生女生,我們都知道男生的體力比起女生的話,應該會好一點,那麼生存率應該會提高,於是我根據這樣的想法,創建了第一個決策點!在後續的決策點,我們也是照種思路去創建決策點,可能根據"年齡"來把乘客分成"壯年"或"老年"...等等~到最後我們就可以創建出一顆決策樹!長的可能就像下圖這樣!
但是,這樣做存在一些問題,因為從本質上講,
我只是記住我的數據,並將樹完美地擬合到其中。在實踐中,我們將要歸納為新數據,
並且已記住訓練集的模型可能無法在其中發揮出色的作用。有一些方法可以對其進行正則化,
例如設置每個葉節點的最小樣本數,葉節點的最大數或最大要素數。您還可以構建完整的樹,
然後修剪不必要的節點。為了真正從樹木中獲得最大收益,通常最好將它們合併成森林[來自課程內容]
課程中也提到了決策樹的問題,大家可以稍微參考一下。