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-----------------


分享到:


相關文章: