1. 程式人生 > >決策樹學習之一——幹什麼

決策樹學習之一——幹什麼

在擼決策樹的時候總有這麼一個問題一直重複在我腦海裡出現:我要擼出來的到底是一個什麼東西?一堆資料,餵給它,它吃進去,自行向下生長,然後呢?也正因為這個問題的困擾,一直沒擼順決策樹,總覺得july大那篇blog缺了點什麼。這兩天連續翻了好幾本書,終於弄明白了這個玩意兒的作用(也就是我寫出來程式碼的需求分析)。

       決策樹的分支機理這裡掠過,因為提及的很多了,ID3,C4.5,估計大家都懂,那麼決策樹拿來幹什麼?

       很簡單,它是用於預測的,舉個栗子:我手頭有一堆萌新的簡歷,然後我肯定要按某種順序挨個面他們吧,但人太多,我想針對性地面一些人。那麼很好,我把以往我收到的萌新的簡歷和麵試結果扔進某種決策樹,它應當返回一個樹結構,最終的節點的標誌在於錄取/未錄取(以下簡稱P/N),那麼我要做的就是把新的萌新們的簡歷再扔進這個樹結構,根據它原先的分支進行分類,然後挑出所有以P為標誌的萌新簡歷,挨個面試他們,完結。

用闡述性的語言來說,決策樹通過對給出的學習樣本進行學習,自行產生出一個樹結構,每個葉節點都對應一簇資料,這一簇資料導向的結果是相同的;之後,將該樹結構抽離出來,對所需要進行分類並預測結果的資料進行分類,並預測其結果。這就是決策樹的活動過程。

需求分析:

0.學習樣本資料,樹依託於此建立。

1.一個自行向下生長的樹(依賴於某種規則分支),並依託某些控制引數終止樹長成。

2.抽離出樹的分支原則。

3.對要進行分類的資料基於樹的分支原則進行分支,得出的葉與原樹的葉具有相同的返回值,即我們所需求的預測值。

那麼為什麼說決策樹會overfitting(過度擬合數據)?因為它僅僅針對資料進行分類,分類必定有對應返回值,也即意味著,它只能處理它見過的東西,碰上沒見過的就不知道怎麼分類了,此外訓練資料若是不是正常的資料的話,也會非常的影響到資料的分類,因為整個決策樹的基石就是訓練資料,基石立歪了,樹也肯定長歪了。

此即鄙人淺見。

寫於一個與沼躍魚大小姐欣賞滕斯泰特與倫敦愛樂的馬勒第五的夜晚。