關於機器學習中比較深奧的熵的理解

2021-07-11 22:56:26 字數 1155 閱讀 9509

機器學習裡有介紹了3種分類器:

***** bayes

support vector machine

decision tree

其中decision tree 裡面引入了entropy的概念,

為什麼要引入這個呢?因為電腦不是人腦,它在做這個決策樹的時候最大的問題就是不知道用哪種分類條件來對樣本進行分類。

電腦必須知道哪一種分類條件最合適,怎樣通過計算知道哪種最合適呢,答案就是這個熵的值。

有乙個網頁介紹得很好:

裡面舉了乙個例子,並做了演示。

我再簡單描述一下,通常的熵的計算公式是乙個和,如果簡單一點,我們只考慮有2個項,a和b,a = 3,b=4

那麼p(a) = 3/7 ,p(b) = 4/7

entropy = - 3/7*log2(3/7) - 4/7*log2(4/7) = 0.9852

這個0.9852很接近1,說明這個case很不確定,很難區分,實際上也是如此,因為a=3,b=4分布很均勻。

假如a=6,b=1

重新計算的結果變為:0.5917

計算的方法是用python,這樣比較方便

>>> l1 = 3.0/7

>>> l2 = 4.0/7

>>> el = -l1*math.log(l1,2) - l2*math.log(l2,2)

>>> el

0.9852281360342516

>>> r1 = 6.0/7

>>> r2 = 1.0/7

>>> er = -r1*math.log(r1,2) - r2*math.log(r2,2)

>>> er

0.5916727785823275

由於7個裡面大多數都是a,因此比較容易區分,熵的值就變低了。

需要注意的是只計算乙個熵的值是無法做出決策的,必須計算出乙個決策樹在分支之前的熵的值,同時計算它的2個分支各自的熵的值,然後比較分支之前和分支之後,熵減少了多少。如果分支前後,熵不發生變化,則表示沒有必要進行分支,如果有多種分支條件,則找出令熵的值減少最快的那個進行分支。

由此可見,熵其實就是代表複雜度,經過分支之後,它的複雜度不斷下降,最後當所有分類都清晰之後,它的複雜度就降為0.

也可以想象成一種純度,一開始不純,後面逐步純淨的乙個過程。

詳解機器學習中的熵 聯合熵 條件熵 相對熵和交叉熵

4 相對熵 relative entropy 也稱kl散度 kullback leibler divergence 5 交叉熵 cross entropy 但是真實分布不可知,假設訓練資料是從真實資料中獨立同分布取樣的,p train p real 因此,我們希望學到的模型分布至少和訓練資料的分布一...

交叉熵在機器學習中的使用

概率越小,資訊量越大,事件x x 0x x 0 x x0 的資訊量為 i x 0 log p x0 i x 0 log p x 0 i x0 lo g p x0 熵表示所有資訊量的期望 h x i 1n p xi log p x i h x sum n p x i log p x i h x i 1...

機器學習 資訊熵 資訊增益的概念

資訊熵表示 隨機變數 的不確定性。不確定性越大 即所謂的資訊量越大 資訊熵越大。首先從直覺上來講,是可以的。不然我們怎麼覺得有的人廢話特別多,卻沒什麼資訊量 而有的人一語中的,一句話就傳達了很大的資訊量。有些事情本來不是很確定 例如 明天 是漲是跌 1 明天nba決賽開始了 和 跌漲 沒關係,所以 ...