機器學習(8)決策樹

決策樹生成是一個遞歸過程,是一種簡單高效並且具有強解釋性的模型,廣泛應用於數據分析領域。其本質是一顆由多個判斷節點組成的“樹”。

有一堆水果,其中有香蕉,蘋果,杏這三類,現在要對它們分類,可以選擇的特徵有兩個:形狀和大小,其中形狀的取值有個:圓形和不規則形,大小的取值有:相對大和相對小。現在要對其做分類,我們可以這樣做:

首先根據特徵:形狀,如果不是圓形,那麼一定是香蕉,這個就是葉子節點;

如果是圓形,

再進一步根據大小這個特徵判斷,如果是相對大的,則是蘋果,如果否,則是杏子,至此我們又得到兩個葉子節點,並且到此分類位置,都得到了正確劃分三種水果的方法。

這就是一個決策分類,構建樹的一個過程,說成是樹,顯得有點高大上,再仔細想想就是一些列 if 和 else 的嵌套,說是樹只不過是邏輯上的一種神似罷了。

剛纔舉的這個例子,有兩個特徵:形狀和大小,並且選擇了第一個特徵:形狀作爲第一個分裂點,大小作爲第二個分裂點,那麼不能選擇第二個特徵作爲第一分裂點嗎? 這樣選擇有沒有公式依據呢?

先提一個概念:信息熵。是度量樣本集合純度最常用的一種指標。其實就是純度的意思....當zy要分類的種類越多純度越低,分類的種類越小純度越高,純度越高則越容易劃分屬性。

信息熵公式:

p是當前樣本結合D中第i類樣本所佔的比例。

以下是一個判斷是否去相親的例子:

假如我是紅娘,我手頭上有20個boy,其中符合該相親條件的有9個,不符合該相親條件的有11個,那麼正例爲9/20,反例爲11/20.

由信息熵公式求出信息熵爲:

求和符號上面的那個2,是因爲只有兩個分類結果

現在介紹信息增益公式:

這裏只展示一個類別,所以看不出其他屬性的信息增益的大小,當計算出Gain()後,值最大的那個屬性被劃分出來。

決策樹的基本公式就上面的兩個,還有其他的加強算法這裏就不講了。以後遇到問題再寫吧。

決策樹學習方法檢測速度很快,但容易過度擬合,於是有剪枝的方法。

剪枝分爲預剪枝和後剪枝。預剪枝是指再決策樹生成過程中,對每個結點再劃分前先進行估計,若當前劃分不能帶來泛化性能提高,則停止劃分並將當前結點作爲葉結點;後剪枝則先從訓練集生成一棵完整的決策樹,然後自底向上地對非葉結點進行考察,若將該結點對應的子樹替換成葉結點能帶來泛化性能提高,則將該子樹替換成葉結點。

這裏的算法只是粗略帶過,需要儘快進入強化學習的副本

日常深推公衆號:



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