決策樹的基本思想:
對每乙個特徵做if-else的條件判斷,與邏輯回歸不一樣(邏輯回歸是把所有特徵丟進網路),入門的案例有鐵達尼號存活**。
決策樹的兩個問題:
三種常見的決策樹:
id3:採用資訊增益來選擇樹叉。
資訊熵:
ln fo
(d)
=−∑i
=1mp
ilog2
(pi)
\ln \operatorname(\mathrm)=-\sum_^ p_ \log _(p i)
lnfo(d)
=−i=
1∑m
pilog2
(pi)
資訊增益:
infoa
(d)=
∑j=1
v∣dj
∣∣d∣
∗inf
o(dj
)\operatorname_(d)=\sum_^ \frac\right|} * i n f o\left(d_\right)
infoa
(d)=
j=1∑
v∣d
∣∣dj
∣∗
info
(dj
)在id3的處理演算法流程裡,在劃分當前結點時,遍歷所有,取能帶來最大資訊增益的那個feature作為當前劃分標準。一旦按某特徵切分後,該特徵在之後的演算法執行中,將不再起作用。
特點:1)容易造成過度擬合。2)使用標稱型資料,但是很難處理連續型資料。
c4.5:採用增益率
用資訊增益比率(gain ratio)來作為選擇分支的準則。在id3上的兩個改進。1)引入乙個被稱作**資訊(split information)的項來懲罰取值較多的feature,2)處理連續性特徵資料,但是因為是掃瞄排序,所以效能會下降。
cart樹:
gini指標:
相比前兩種決策村演算法,cart最大的特色它是一棵二叉樹,採用二元切分法,每次把資料切成兩份,分別進入左子樹、右子樹。
gini(
d)=1
−∑i=
1mpi
2\operatorname(d)=1-\sum_^ p_^
gini(d
)=1−
i=1∑
mpi
2對於每乙個子集,要麼屬於(d1),要麼不屬於(d2),所以計算結果如下:
ginia
(d)=
∣d1∣
∣d∣∗
gini(
d1)+
∣d2∣
∣d∣∗
gini(
d2
)\operatorname_(d)=\frac\right|} * \operatorname\left(d_\right)+\frac\right|} * \operatorname\left(d_\right)
ginia
(d)=
∣d∣∣
d1∣
∗gi
ni(d
1)+
∣d∣∣
d2∣
∗gi
ni(d
2),
選出最小的gini指標對應的那個子集作為樹的分支。
樹形結構不需要歸一化。
1)因為數值縮放不影響**點位置,對樹模型的結構不造成影響。2)樹模型是尋找最優**點,是階躍不可導的,求導沒有意義,所以不需要歸一化。
歸一化與梯度下降相關,特徵值差別很大時,若不歸一化,迭代次數會比較大,效能不能保證。
按照任務的不同,可以分為分類決策樹和回歸決策樹。
預剪枝和後剪枝:
預剪枝:其中的核心思想就是,在每一次實際對結點進行進一步劃分之前,先採用驗證集的資料來驗證如果劃分是否能提高劃分的準確性。如果不能,就把結點標記為葉結點並退出進一步劃分;如果可以就繼續遞迴生成節點。
後剪枝:後剪枝則是先從訓練集生成一顆完整的決策樹,然後自底向上地對非葉結點進行考察,若將該結點對應的子樹替換為葉結點能帶來泛化效能提公升,則將該子樹替換為葉結點。
詳情見這篇部落格《決策樹及決策樹的生成與剪枝》
機器學習(三)決策樹學習
決策樹學習是一種逼近離散值目標函式的方法,在這種方法中學習到的函式被表示為一棵決策樹。決策樹通過把例項從艮節點排列到某個葉子結點來分類例項,葉子結點即為例項所屬的分類。樹上的每乙個結點指定了對例項的某個屬性的測試,並且該結點的每乙個後繼分支對應於該屬性的乙個可能值。分類例項的方法是從這棵樹的根節點開...
機器學習筆記 三 決策樹
學習機器學習演算法之決策樹,這個大俠的文章寫得不錯 總結一下 1.對於資訊熵的理解 選假設有乙個離散型隨機變數x有4中可能的結果 a 1 2,b 1 4,c 1 8,d 1 8,後面的是每種結果的發生概率。那麼如果順序的去猜測x,就會有以下事件可能發生 問到a,命中a,用一次,問a b,命中b,用兩...
機器學習之三 決策樹
決策樹通過 分而治之 的策略,採用遞迴的方式學習得到樹結構,目標為學習乙個泛化能力強的決策樹。有三種情形會導致遞迴返回 1.當前節點包含的樣本均屬於同一類別 2.當前節點屬性集為空或所有樣本在所有屬性上取值相同 3.當前節點樣本集為空 出現以上三種情況中的任意一種,該節點標記為葉節點,對1來說,該葉...