R語言——信息增益率、Gini係數、WOE、IV值

今天會把這幾個概念放在一塊兒主要是因為一個巧合

教材中介紹決策樹的段落裡在講信息增益率的時候提到了信息分支度這麼個名詞,但它又實在是沒講清楚這玩意兒怎麼算的,百度直接搜這個詞出來了一堆亂七八糟的,害得我一時間出了餿招去搜索它的英文(書上寫的是information value)

然後我就莫名奇妙地被截胡去看了IV值和WOE的相關介紹(IV值全稱貌似也叫information value),在過了N久發現自己跑偏了之後,再繞回來接著找信息增益率的帖子,所幸算是搞明白了大概是個什麼東西

R語言——信息增益率、Gini係數、WOE、IV值

解釋了這麼一大通,最終其實也就想表達一個意思,今天又是隨便寫寫的一天,親們湊合看吧

1) 信息增益率 GainRatio

先放完整代碼,基本是參照前天的熵值計算改的

#信息增益率
GainRatio ycol PYi EnY xcol Temp Ti LPXi EnXi EnX Pr InfVal GainR return(GainR) }

具體改了點啥見下圖:

R語言——信息增益率、Gini係數、WOE、IV值

重點分解步驟和代入結果也放一個

R語言——信息增益率、Gini係數、WOE、IV值

2) Gini係數(基尼係數)

#Gini係數
Gini Gi

代碼就兩行,額。。。我很懷疑自己是不是搞錯了什麼??

R語言——信息增益率、Gini係數、WOE、IV值

3) WOE打分和IV值

代碼如下,感覺這個應該沒做錯

#WOE打分和IV值
WOE.IV ycol xcol T1 pni pyi WOE IV Result return(Result) }

代入數據測試下結果

R語言——信息增益率、Gini係數、WOE、IV值

別被裡頭的一堆負無窮大給嚇到了,這個是正常現象,當某些分類裡的個數是0的時候,取對數的結果就是-Inf,所以WOE和IV值這兩個指標一般都不適用於有空分類的情況

--------------End-----------------


分享到:


相關文章: