R

特徵選擇的互信息

  • January 12, 2018

我很難(再次)理解特徵選擇的互信息。

這是一些R代碼:

library(infotheo)

#variables
response = c(0,0,0,0,0,0,0,1,0,1)
var_1 = c(1,2,3,4,5,6,7,10,9,10)
var_2 = c(1,2,3,4,5,6,7,8,9,10)

#case 1
mutinformation( var_1, response )
[1] 0.5004024

#case 2
mutinformation( var_2, response )
[1] 0.5004024

當 a10出現在 var_1 中時,它總是與1響應中的 a 相對應,而 invar_2則根本沒有任何關係。

問題:不應該var_1response比更高的互信息var_2嗎?

我認為您對結果的困惑來自於我在研究互信息時遇到的同一個問題:您試圖解釋結果時考慮到(a)預測來自另一個信號的能力和(b)忘記統計成分,它始終存在於互信息計算中。從這個意義上說,“互信息”名稱在某種程度上具有誤導性,因為您可能會想:好吧,如果我知道一個信號並且可以 100% 確定地預測另一個信號,那麼這些信號應該具有最高的互信息。但這種情況並非如此。讓我舉兩個例子來說明這種說法。

  1. 考慮兩個信號和有函數依賴的

如果你知道的話你可以預測100% 確定,但如果你知道, 你找不到因為方程有無數個解。因此,如果互信息相互依賴的一種度量,它就會是非對稱的:它會給相互依賴帶來很高的價值相互依賴價值低. 但是互信息對稱的

因此*,它不能*衡量一個變量對另一個變量的依賴程度。

  1. 另一個例子。想像兩個具有完美功能依賴的信號

在哪裡. 首先,假設是均勻分佈的

則聯合分佈矩陣為

並且互信息將為您提供所有 2 x 2 概率矩陣的最高值

這正是您對相互信息的期望,即使您將其視為相互依賴的衡量標準。但是如果我們採用非均勻分佈的隨機變量怎麼辦?

那麼聯合概率矩陣是

互信息是

請注意,我們仍然具有完美的預測能力:給定我們肯定知道反之亦然。但是現在互信息少了很多。發生了什麼事?答案也很簡單:互信息不是相互依賴的量度,而是互熵的量度。熵減少了,互信息也減少了。

這就是為什麼我個人不喜歡“互信息”這個名稱而更喜歡我自己的命名約定:互熵。但我確實明白這個名字的來源——熵確實是信息的量度,包含在信號中。在第一個例子中有最大熵並且完全相關,這就是為什麼它們的互熵也是. 在第二個例子中,完美的相關性仍然存在,但每個信號的熵降低了,它們的互熵也降低了。

最後,以您的問題為例。信號response只有兩個可能的值,和. 它的熵是

信號var_1var_2更豐富,具有更高的熵,但熵和不能高於每種成分的熵——他們只能分享他們擁有的東西。所以我們應該看看是否var_1var_2可以減少 的熵response。但事實並非如此:我們總能推斷出 的var_1值。這就是為什麼互信息值在兩種情況下都相同並且等於 的熵。var_2``response``response

我說我不喜歡“互信息”這個詞,但我並不是說它是錯誤的——它只是不是很直觀,而且互信息方面的推理也不是很直觀。假設我們有兩個發送器:一個發送器只發送 0 和 1 ( response),另一個發送從 1 到 10 的值 (var_1var_2)。第二個發射器可以發送比第一個發射器更多的信息(因為信號的熵更大)。但是我們說:想像他們正在向某個遙遠的星球發送相同的信息,只是以不同的方式對其進行編碼。然後第二個發送器正在發送很多額外的(即無用的)信息:何時僅發送值就足夠了,var_1發送 8 個不同的值 -. 這是額外的,不需要,但我們仍然可以response從重建信號var_1。同樣適用於-我們可以從中var_2重建信號,只是它使用了更多無用的信息-它使用了2個不同的值-response``var_2``var_2和為了對 1 的值進行編碼。我們仍然可以重建信號response,這就是為什麼互信息值相同並且等於 的熵(信息)值的原因response

PS我承認我的一些論點是純粹的揮手。

引用自:https://stats.stackexchange.com/questions/322814

comments powered by Disqus