回答
IG(Y|X) = H(Y) - H(Y|X) >= 0
,因爲H(Y) >= H(Y|X)
最壞的情況是,X和Y是獨立的,因此H(Y|X)=H(Y)
去想它是通過觀察隨機變量X取某個值,我們要麼不獲得或者一些有關信息的另一種方式Ÿ(你不會失去任何)。
編輯
讓我澄清的決策樹(事實上,我腦子裏想擺在首位,因爲我從一個機器學習背景來)上下文信息增益。
假設給定一組實例和標籤(離散類)時給出分類問題。
選擇在樹的每個節點處分割哪個屬性的想法是選擇將類屬性拆分爲兩個最純粹可能的實例組(即最低熵)的特徵。
這反過來相當於採摘具有最高信息增益的功能,因爲
InfoGain = entropyBeforeSplit - entropyAfterSplit
在分裂後的熵是通過向下分支的實例的數量加權的每個分支的熵的總和。
現在不存在可能產生的分類值,這些分類值將產生純度更高(更高的熵)的情況。
舉一個二元分類問題的簡單例子。在某個節點,我們有5個正面實例和4個負面實例(總共9個)。因此熵(分裂前)是:
H([4,5]) = -4/9*lg(4/9) -5/9*lg(5/9) = 0.99107606
現在讓我們考慮一些分裂的情況。最理想的情況是,目前的屬性拆分實例完全(即一個分支都是陽性,其餘全部負):
[4+,5-]
/ \ H([4,0],[0,5]) = 4/9*(-4/4*lg(4/4)) + 5/9*(-5/5*lg(5/5))
/ \ = 0 // zero entropy, perfect split
[4+,0-] [0+,5-]
然後
IG = H([4,5]) - H([4,0],[0,5]) = H([4,5]) // highest possible in this case
試想一下,第二個屬性是最差可能的情況下,在創建沒有得到任何情況下的一個分支,而所有實例再往其他(可能發生。例如,如果屬性是跨實例不變,因此沒用):
[4+,5-]
/ \ H([4,5],[0,0]) = 9/9 * H([4,5]) + 0
/ \ = H([4,5]) // the entropy as before split
[4+,5-] [0+,0-]
和
IG = H([4,5]) - H([4,5],[0,0]) = 0 // lowest possible in this case
現在,在這兩種情況之間的某個地方,你會看到任何數量的類似情況:
[4+,5-]
/ \ H([3,2],[1,3]) = 5/9 * (-3/5*lg(3/5) -2/5*lg(2/5))
/ \ + 4/9 * (-1/4*lg(1/1) -3/4*lg(3/4))
[3+,2-] [1+,3-]
和
IG = H([4,5]) - H([3,2],[1,3]) = [...] = 0.31331323
所以無論你如何分割的9實例中,您總是可以獲得信息的正面收益。我意識到這不是數學證明(去MathOverflow的!),我只是認爲一個實際的例子可以幫助。
(注意:根據谷歌所有計算)
這沒有太大的幫助。你剛纔陳述的直覺沒有證據,並給出了一個例子,即使是真的並不能證明它的一般情況。 – atulgangwar 2016-10-23 16:06:37
@atulgangwar信息收益總是非負的。如果你想要更徹底的東西,請看這裏:https://en.wikipedia.org/wiki/Kullback%E2%80%93Leibler_divergence#Properties – Amro 2016-10-23 18:10:48
當然可以。
信息增益是信息熵從一個狀態到另一個狀態正好的變化:
IG(防爆,A)= H(例子) - H(防爆|一)
這種狀態變化可以去在任何方向 - 它可以是積極的或消極的。
這是很容易通過例子來看看:
決策樹算法是這樣的:在一個給定的節點,計算其信息熵(自變量)。
你可以這樣想:信息熵是對連續變量的方差是分類/離散變量)。當然,差異只是標準差的平方。因此,例如,如果我們正在根據各種標準預測價格,並且我們已將數據集任意分組爲兩組,其中A組的價格爲(50,60和70),B組的價格是(50,55,60),B組具有最低的方差 - 即它們靠得很近。 當然,方差不能是負的(因爲在將每個點與平均值的距離相加後,將其平方),但方差的差異當然可以是。
要了解這與信息熵/信息增益有何關係,假設我們不是預測價格,而是預測其他信息,例如我們網站的訪問者是否會成爲註冊用戶或高級訂戶,或者都不是。這裏的獨立變量是離散的,不像價格那樣連續,所以你不能以有意義的方式計算方差。信息熵是用來代替的。 (如果您懷疑方差和IE之間的緊密類比,您應該知道,大多數能夠處理離散和連續變量的決策樹算法,在後一種情況下,算法將使用方差作爲分裂標準,而不是使用IG。)
無論如何,在計算給定節點的信息熵後,然後在每個變量的每個值上將該數據分割到該節點(如果您在根節點處是整個數據集)然後爲每個分組計算兩個組的IE,並取加權平均IE。接下來進行導致最低加權平均IE的拆分,並將其與節點IE(顯然它只是一個組)進行比較。如果該分割的加權平均IE爲低於節點IE,則在該節點處分割數據(形成分支),如果不是,則停止,即,該節點不能被進一步分割 - 你在底部。
總而言之,決策樹算法的核心是確定是否拆分節點的標準 - 這就是它們的結構。這個標準是IG是正面的還是負面的。
你的陳述是不正確的,信息增益總是**非負**。它與互信息是一樣的,它是'I(X; Y)> = 0' http://en.wikipedia.org/wiki/Mutual_information#Relation_to_other_quantities – Amro 2010-07-20 23:22:34
我幾乎從來沒有說服過沒有證據。我的觀點無論如何並不重要,但是我認爲IG真正具有正值和負值的現實世界應用是決定性的。 (第三種可能性是IG的定義在不同學科之間有多種變化,這並不是第一次,OP的問題沒有提到上下文。) – doug 2010-07-21 04:01:34
我用一個實際的決策樹例子 – Amro 2010-07-21 06:17:19
對於任何遇到此問題的人,儘管其年齡,我提供這個答案和建議。
首先,答案是否定的,它不能是否定的。絕對最糟糕的可能性是沒有變化,或IG爲零。如果您想要證明,請像Amro指出的那樣查看MathOverFlow上的完整證明。
現在的建議。如果你只做決策樹的第一層,似乎很明顯它不會出現負面情況。但是,當使用信息增益構建我的第一棵樹時,我發現自己的第三分支負面收益。這似乎沒有用或不可能,所以我爭先恐後地檢查我的數學。數學很好。我有錯誤的部分是基本公式的第一部分。我使用上面的答案作爲我的起始熵,但這是錯誤的,因爲它包含來自其他數據集的信息。你需要確保對於你的起始熵,你可以單獨確定熵分支!這意味着你的「起始熵」實際上可能高於此之前的水平。
換句話說,在計算IG時,請確保您只使用當前數據集。
- 1. 信息增益的負值
- 2. 爲什麼我會得到負面的信息收益?
- 3. 存儲信息價值bean
- 4. 我可以更改Environment.NewLine的價值嗎?
- 5. Scrapy/Python:以收益率處理值
- 6. 我可以向IntConstraintOccurrence提供負值嗎?
- 7. 信息增益
- 8. Summernote數據值收益爲未定義
- 9. RavenDB中價值級別的價值混淆信息
- 10. 爲什麼不能以負值計算價值?
- 11. BITMAPINFOHEADER BMP中的寬度字段可以爲負值嗎?
- 12. 如何獲得可以爲正值或負值的隨機值?
- 13. 可以賦值爲空嗎?
- 14. 負載MySQL的價值
- 15. 如何從收益回報中顯示價值?
- 16. 簡單平均收益 「不正確」 與否,價值
- 17. 有人可以解釋爲什麼嵌套的收益率執行(C#收益率回報)嗎?
- 18. 我可以收到另一個應用程序的信息嗎?
- 19. 從信息頁面獲取價值Opencart
- 20. jQuery驗證 - 錯誤信息價值
- 21. C#信息getKey從IDictionary中的值 - 值可以repeted
- 22. 價值休息
- 23. 我可以從2個具有SharedPreferences的活動中接收價值數據嗎?
- 24. 我可以收集mmap讀/寫統計信息嗎?
- 25. 如何計算信息增益的值以減少浮點逼近誤差?
- 26. 具有等價負值和負值模式的Java NumberFormat
- 27. 我可以使用它在小數有負值爲正值
- 28. 可以使用收益率返回「現場」JSON嗎?
- 29. 集團回收的價值
- 30. 布爾真或假,負收益
順便說一句,你需要插入一個正確的鏈接到有問題的紙張 – Amro 2010-07-20 18:42:08