通俗講清楚為什麼使用資訊熵增益比而不是資訊熵增益?
來舉個簡單的例子:
資料集D(出去玩是標籤)
A代表屬性,A=心情、天氣
心情 天氣 出去玩
好 晴朗 玩
不好 下雨 不玩
不好 颳風 不玩
好了 ,現在建立決策樹,根節點是啥?
第一種方式(資訊熵增益):
令A=天氣
總熵S(D)=
−31log231−32log232=0.918
條件熵S(D|A)=
31⋅0+31⋅0+31⋅0=0
g(D,A)=S(D)-S(D|A)=0.918
令A=心情
總熵S(D)=
−31log231−32log232=0.918
條件熵S(D|A)=
31⋅0+32⋅0=0
g(D,A)=S(D)-S(D|A)=0.918
現在選擇哪一個呢?
顯然定不下來。
----------------計算心情的資訊熵增益率-------------
A=心情時,特徵熵=
31log231+32log232=0.918
A=天氣時,特徵熵=
−3⋅31log231=1.5849
那麼此時特徵A的資訊熵增益率是
1.58490.918=0.58
結論,可以看到,使用資訊熵增益率可以更好地對資料集進行劃分
讓劃分更加符合實際情況。
因為顯然,颳風天出不出去玩是看心情的。
相關推薦
通俗講清楚為什麼使用資訊熵增益比而不是資訊熵增益?
來舉個簡單的例子: 資料集D(出去玩是標籤) A代表屬性,A=心情、天氣 心情 天氣 出去玩 好 晴朗 玩 不好 下雨 不玩 不好 颳風 不玩 好了 ,現在建立決策樹,根節點是啥? 第一種方式(資訊熵增益): 令A=天氣 總熵S(D)=
(轉載)我們為什麼需要資訊增益比,而不是資訊增益?
我們為什麼需要資訊增益比,而不是資訊增益? 之前不知道為何要用資訊增益比,資訊增益比相對於資訊增益有何優勢,看了這篇文章感覺博主所述比較詳細,特此轉載用作複習 表一 滿足什麼情況才去玩高爾夫 [1]
機器學習:資訊熵,基尼係數,條件熵,條件基尼係數,資訊增益,資訊增益比,基尼增益,決策樹程式碼實現(一)
文章目錄 初始化,涉及到使用的變數: 資訊熵 定義公式,經驗公式 程式碼: 基尼係數 定義公式,經驗公式 程式碼: 條件熵,條件基尼係數 條件熵定義公式,經驗公式
資訊、資訊熵、條件熵、資訊增益、資訊增益比、基尼係數、相對熵、交叉熵
參考: http://www.cnblogs.com/fantasy01/p/4581803.html?utm_source=tuicool http://blog.csdn.net/xbmatrix/article/details/58248347 https://www
決策樹--資訊增益,資訊增益比,Geni指數的理解
部分理解: 關於決策樹生成 決策樹的生成過程就是 使用滿足劃分準則的特徵不斷的將資料集劃分為純度更高,不確定性更小的子集的過程。 對於當前資料集D的每一次的劃分,都希望根據某特徵劃分之後的各個子集的純度更高,不確定性更小。 而如何度量劃分資料集前後的資料集的純度以及不確定性呢? 答案:特徵選擇準
[機器學習]決策樹中的資訊增益和資訊增益比
一、特徵選擇中的資訊增益 什麼是資訊增益? 資訊增益是特徵選擇中的一個重要的指標,它定義為一個特徵能為分類系統帶來多少資訊,資訊越多,該特徵就越重要。 這樣就又有一個問題:如何衡量一個特徵為分類系統帶來了多少資訊呢? 對一個特徵而言,系統有它的時候和沒有它的時候資訊量將會發
一句話講清楚什麽是JavaEE
strong ++ 鏈接 com security 以及 XML 性能 java語言 軟件151 王強 1531610136 Java技術不僅是一門編程語言而且是一個平臺。同時Java語言是一門有著特定語法和風格的高級的面向對象的語言,Java平臺是Java語言編寫的特定應
P和P1指向了O和O1兩個變量(對象)的地址, 而不是O和O1的內容(對象的實際地址)——充分證明@是取變量(對象)的地址,而不是變量裏面的內容,夠清楚!
com 告訴 cnblogs src logs es2017 strong bsp html 如圖,為什麽這樣取出來的p,p1的值不一樣呢? 165232328群友庾偉洪告訴我: P和P1指向了O和O1兩個變量(對象)的地址, 而不是O和O1的內容(對象
試著把.net的GC講清楚(1)
sta 手動 重要 bject 內存回收 ram sof 特殊 連接 什麽是GC? GC(garbage collection)是對內存管理中回收已經不用的內存的一種機制,我們熟知的java和.net都有自己的GC機制,是內存管理的一部分。 為什麽會有GC呢?是因為動態的內
試著把.net的GC講清楚(2)
查找 alloc 修改 enc 模式 ren mar 直接 其它 試著把.net的GC講清楚(1) 上篇文章說了一些基本概念的東西,然後還有很多東西概念沒有頭緒,這篇文章我試著解釋 GC的回收算法詳細步驟? 上篇]文章講了.net GC的算法是Mark and Comp
試著把.net的GC講清楚(3)
優化 OS class 為什麽 特點 http com 我們 finalize 試著把.net的GC講清楚(1) 試著把.net的GC講清楚(2) 前兩篇寫的都是gc的一些概念和細節,這些東西對自己以後寫代碼有什麽用,本篇我就準備將這些內容。 root 第一篇文章中講了
試著講清楚:js代碼運行機制
監聽器 作用 網絡 效果 千萬 了解 請求 概念 使用 一、 js運行機制 js執行引擎 經常看文章的說到js是帶線程的,其實這個說法非常的模糊,準確的是js執行引擎是單線程的,js執行引擎就是js代碼的執行器,有了這個概念就可以下來說說js是如何運行的了。 js代碼如何運
資料治理怎麼做?這篇萬字長文終於講清楚了!
引言: 股份制改革對我國銀行業來說只是一個開始,企業在風險管理、創造價值等方面還有很長的路要走。風險管理要求提供精準的資料模型、創造價值要求充分銀行資料資產,這是資料治理的外部推動因素。此外,隨著第三次工業革命的到來,銀行業也需要進入定製化時代,以更低的成本,生產多樣化的金融產品,從而滿足不同顧
我是如何講清楚TCP協議是如何保證可靠傳輸的
1、UDP: (1)UDP,user datagram protocol,使用者資料報協議,不提供複雜的控制機制,利用IP提供面向無連線的通訊服務,並且它是將應用程式傳送過來的資料包在收到的那一刻,立即按照原樣傳送到上的一種機制。 (2)即使在網路擁堵的情況下,UDP也無法進行流量控制等避免網路
Java設計模式的六大原則(一句話講清楚版)
java設計 修改 變更 開閉原則 直接 接口隔離 裏氏替換原則 ava 低耦合 1. 單一原則 一個類只負責一個職責,一個方法應該只做一件事。否則當需求發生變更需要修改時,可能會引發意想不到的故障。 2. 裏氏替換原則 子類只在父類的基礎上擴展,而不去改寫父類的方法。 3
一個例子講清楚什麼是閉包,什麼是記憶體銷燬
//前言 閉包,這個概念對於每位JSer而言都不陌生,它幾乎伴隨著每個前端入門者的初學階段,重要到幾乎每家公司面試都會問。 關於閉包究竟是什麼,閉包乾嘛用的,網上各種回答也是五花八門,動不動就扯到隱匿變數/記憶體洩漏這些概念,讓沒有C基礎的初學者越看越暈,我不能說那些是錯的,不過顯然對新手不太友好。曾幾何
七張圖徹底講清楚ZooKeeper分散式鎖的實現原理【石杉的架構筆記】
歡迎關注個人公眾號:石杉的架構筆記(ID:shishan100) 週一至週五早8點半!精品技術文章準時送上! 一、寫在前面 之前寫過一篇文章(《拜託,面試請不要再問我Redis分散式鎖的實現原理》),給大家說了一下Redisson這個開源框架是如何實現Redis分散式鎖原理的,這篇文章再給大家聊一下ZooKe
一文講清楚什麼是閘道器、DNS、子網掩碼、MAC地址
前言 很多朋友多次問到什麼是閘道器、dns、子網掩碼,它有什麼作用,確實,我們平時在網路中總是在不斷的提到閘道器,卻很少真正的去了解它。 一、什麼是閘道器 1.什麼是閘道器 閘道器(Gateway)又稱網間聯結器、協議轉換器。閘道器在傳輸層上以實現網路互連,是最複雜的網路互連
程式設計師如何講清楚技術方案
程式設計師如何講清楚技術方案 最近在評審技術方案,和程式碼review的時候,遇到剛入行的同學們,很多都講不清楚技術方案。 具體表現是: – 上來不說需求,直接說演算法實現。臺下一頭霧水,根本不知道設計方案是否合理。 – 描述完需求後,又直接看程式碼,看錶結構,沒
【計算機網路】【TCP】如何講清楚Tcp的三次握手和四次揮手?
每一次TCP連線都需要三個階段:連線建立、資料傳送和連線釋放。 三次握手: 三次握手就發生在連線建立階段。 目的:三次握手的目的是為了防止已失效的連線請求報文段突然又傳送到了服務端,因而產