機器學習之決策樹

2021-09-24 06:10:37 字數 2923 閱讀 8236

3. 決策樹歸納演算法 (id3)

4. 總結

決策樹是乙個類似於流程圖 的樹結構,決策樹由有向邊和結點構成,決策樹的結點有兩種,一種是內部結點,一種是葉結點。分類決策樹中,內部結點代表特徵,葉結點代表類。回歸樹中,內部結點代表輸入空間的劃分區域,葉結點代表輸出值。每個內部節點表示在乙個屬性上的測試,每個分支代表乙個屬性輸出,而每個樹葉節點代表類或類分布

熵是表達隨機變數不確定性的一種度量,熵可以表示樣本集合的不確定性,熵越大,樣本的不確定性就越大,因此可以使用劃分前後集合熵的差值來衡量使用當前特徵對於樣本集合d劃分效果的好壞。

對於隨機變數x,p(x=xi)=pi定義

當對數以2為底時,單位為位元1bit=log2^2(log2以2為底),當對數以e為底時單位為納特。由定義可知,熵只和隨機變數x的分布有關和x的取值無關。

例如:假設世界盃32支球隊的概率相同,都為1/32,可計算

即說明可能需要經過5次的篩選(折半:16,8,4,2,1)最後得到結果(一支球隊能否奪冠)

更多熵概念資訊如圖所示:

簡要介紹:

要建立的決策樹的形式類似於「如果天氣怎麼樣,去玩;否則,怎麼著怎麼著」的樹形分叉。那麼問題是用哪個屬性(即變數,如天氣、溫度、濕度和風力)最適合充當這顆樹的根節點,在它上面沒有其他節點,其他的屬性都是它的後續節點。借用資訊理論的概念,我們用乙個統計量,資訊增益information gain來衡量乙個屬性區分以上資料樣本的能力。資訊增益量越大,這個屬性作為一棵樹的根節點就能使這棵樹更簡潔,比如說一棵樹可以這麼讀成,如果風力弱,就去玩;風力強,再按天氣、溫度等分情況討論,此時用風力作為這棵樹的根節點就很有價值。如果說,風力弱,再又天氣晴朗,就去玩;如果風力強,再又怎麼怎麼分情況討論,這棵樹相比就不夠簡潔了。計算資訊增益的公式需要用到「熵」(entropy)

gain(a)=info(d)-info_a(d),代表通過節點a進行分類獲取了多少資訊(單位是bit)

對於待劃分的資料集d,其 entroy(前)是一定的,但是劃分之後的熵 entroy(後)是不定的,entroy(後)越**明使用此特徵劃分得到的子集的不確定性越小(也就是純度越高),因此 entroy(前) - entroy(後)差異越大,說明使用當前特徵劃分資料集d的話,其純度上公升的更快。而我們在構建最優的決策樹的時候總希望能更快速到達純度更高的集合,這一點可以參考優化演算法中的梯度下降演算法,每一步沿著負梯度方法最小化損失函式的原因就是負梯度方向是函式值減小最快的方向。同理:在決策樹構建的過程中我們總是希望集合往最快到達純度更高的子集合方向發展,因此我們總是選擇使得資訊增益最大的特徵來劃分當前資料集d。

不考慮特徵age,income,student,credit_rating的情況下,根據class:buys_computer標記yes/no計算出的資訊熵:

根據age特徵計算出的資訊熵:

兩者的差值:

同理可計算出根據income,student,credit_rating的資訊獲取量為:

選擇最大的資訊獲取量gain(age)=0.246作為第乙個根節點:

注:在訓練集表中可以看到,age有三種分類,所以上圖中以age為根節點的樹中age下有三個分支

通過觀察可知,middle_aged分支下class全部都是yes,所以沒有必要在進行分支。而youth和senior分支下class還存在yes和no,需要進行遞迴處理。方法同上

不斷重複這個過程,直到所有的葉子節點下class均為yes或者no

對演算法的描述如下圖:

資訊增益缺點:資訊增益偏向取值較多的特徵

原因:當特徵的取值較多時,根據此特徵劃分更容易得到純度更高的子集,因此劃分之後的熵更低,由於劃分前的熵是一定的,因此資訊增益更大,因此資訊增益比較 偏向取值較多的特徵。

解決方法:資訊增益比

資訊增益比 = 懲罰引數 * 資訊增益

懲罰引數:資料集d以特徵a作為隨機變數的熵的倒數,即:將特徵a取值相同的樣本劃分到同乙個子集中(資料集的熵是依據類別進行劃分的)

資訊增益比缺點:資訊增益比偏向取值較少的特徵 ,因為特徵取值個數較少時,懲罰引數較大,由資訊增益比 = 懲罰引數 * 資訊增益知,取值較少的特徵的資訊增益比就越大。

相同點:都是貪心演算法,自上而下

不同點:屬性選擇 度量方法不同。c4.5(gain ratio),cart(gini index),id3(information gain)

如何處理連續型變數的屬性?設定閾值

優點:直觀,便於理解,小規模資料集有效

缺點:處理連續型變數效果不好,類別較多時錯誤增長得較快,規模性一般

機器學習之決策樹

在這裡,我想以更直觀的方式幫助各位理解 掌握並且運用 注意 是運用 決策樹,從而為機器學習作鋪墊。ps 但還是希望大家稍微知道決策樹大概是什麼樣子。1.根結點 root node 沒有入邊,但有零條或多條出邊 2.內部結點 internal node 恰有一條入邊和 兩條或多條出邊 3.葉結點 le...

機器學習之決策樹

決策樹是很常見的機器學習分類演算法,竟然叫決策樹,那麼它的模型其實就像樹一樣。通過對樣本集的學習,挖掘出有用的規則。對於程式設計師來說或許以條件語句來看就更好理解了,決策樹可以看成是多個if then條件語句的集合。這種模型等同於我們寫的條件語句,所以它的 分類速度是很快的。來個例子了解下決策樹分類...

機器學習之決策樹

簡介 決策樹是一種基本的分類方法,當然也可以用於回歸。我們一般只討論用於分類的決策樹。決策樹模型呈樹形結構。在分類問題中,表示基於特徵對例項進行分類的過程,它可以認為是if then規則的集合。在決策樹的結構中,每乙個例項都被一條路徑或者一條規則所覆蓋。通常決策樹學習包括三個步驟 特徵選擇 決策樹的...