1. 什麼是決策樹
決策樹又稱為判定樹,decision tree。 決策樹與平時我們常畫的流程圖十分相似。
根據資料:
可以創造出類似以下的決策樹:
每乙個內部結點表示對某乙個屬性的測試(流程圖中的菱形), 每個分支的產生代表乙個屬性的乙個可取值,而樹葉結點表示類的分布。
應用最廣的分類演算法之一,模型學習的結果是一棵決策樹,這棵決策樹可以被表示成多個if-else的規則。決策樹實際上是將空間用超平面進行劃分的一種方法,每次分割的時候,都將當前的空間一分為二,比如說下面的決策樹:
這樣使得每乙個葉子節點都是在空間中的乙個不相交的區域。學習得到如上這棵決策樹之後,當輸入乙個待分類的樣本例項進行決策的時候,我們就可以根據這個樣本的兩個特徵(x, y)的取值來把這個樣本劃分到某乙個葉子節點,得到分類結果了,這就是決策樹模型的分類過程,決策樹的學習演算法有id3演算法和c4.5演算法等。
2. 熵(entropy)
詳見
資訊獲取量(information gain),又稱為資訊增益
資料d中,a的資訊獲取量:gain(a) = info(d) - info_a(d). 即沒有a的資訊-有a的資訊。如果使用熵作為資訊的多少判斷標準,則資訊增益是熵的差值。
3. 決策樹的幾個代表
根據選擇屬性結點的方法不同,決策樹有多種型別
(1) id3 ------ 使用資訊增益作為屬性選擇的度量方法
上面的資料整體的資訊熵中,
有age的資訊熵:
所以 gain(age) = info(d) - info_age(d) = 0.246。
類似的,gain(income)=0.029, gain(student)=0.151, gain(credit_rating) = 0.048。
可見age這乙個屬性提供了最大的資訊獲取量,所以將age作為樹的第乙個結點
選取age作為第乙個結點後,按照age的value創造子結點。子節點迴圈上面的判斷過程。注意,子節點不再判斷age這乙個屬性,即子幾點不再判斷父結點及祖結點。
id3容易過擬合。 避免過擬合的方法:1.不做沒必要的** 2. 剪枝
(2)c4.5 ------使用 gain ratio作為屬性選擇度量方法
資訊增益:
則(3)cart ------ 使用gini index作為屬性選擇度量方法
4. 樹剪枝 ,避免overfitting
剪枝,顧名思義就是指除去部分樹枝。
(1)先剪枝 構造樹過程中,達到一定情況就停止。例如,子節點的類的純度達到一定的值,就不再繼續構造
(2)後剪枝 先構造完樹,根據一定的規則(例如結點純度)再剪枝。
5. 決策樹的優缺點
優點:直觀
缺點:處理連續變數不好,規模性不好; 只能線性分割資料; 貪婪演算法(可能找不到最好的樹)
**參考:
機器學習之決策樹
在這裡,我想以更直觀的方式幫助各位理解 掌握並且運用 注意 是運用 決策樹,從而為機器學習作鋪墊。ps 但還是希望大家稍微知道決策樹大概是什麼樣子。1.根結點 root node 沒有入邊,但有零條或多條出邊 2.內部結點 internal node 恰有一條入邊和 兩條或多條出邊 3.葉結點 le...
機器學習之決策樹
決策樹是很常見的機器學習分類演算法,竟然叫決策樹,那麼它的模型其實就像樹一樣。通過對樣本集的學習,挖掘出有用的規則。對於程式設計師來說或許以條件語句來看就更好理解了,決策樹可以看成是多個if then條件語句的集合。這種模型等同於我們寫的條件語句,所以它的 分類速度是很快的。來個例子了解下決策樹分類...
機器學習之決策樹
簡介 決策樹是一種基本的分類方法,當然也可以用於回歸。我們一般只討論用於分類的決策樹。決策樹模型呈樹形結構。在分類問題中,表示基於特徵對例項進行分類的過程,它可以認為是if then規則的集合。在決策樹的結構中,每乙個例項都被一條路徑或者一條規則所覆蓋。通常決策樹學習包括三個步驟 特徵選擇 決策樹的...