ShichenXie / scorecard

Scorecard Development in R, 评分卡
http://shichen.name/scorecard
Other
160 stars 63 forks source link

关于woebin分组的问题 #35

Closed zjyoung closed 4 years ago

zjyoung commented 4 years ago

谢老师您好,我关注这个包很久了。目前存在一个不能算bug的争议点希望能跟你探讨一下。我有一个变量,有70%的值是0,这个变量我自己用python决策树分箱做woe后iv可以达到1.5, 用smbinning的话也是相同的结果,算是一个很重要的变量。但是用scorecard分不出组(也就是【-inf,inf】)。我猜测是因为R语言里的区间是左闭右开,所以0这个值很容易被合并掉,我想问下您这里有没有什么可以解决的方案或者好的建议? test.xlsx

ShichenXie commented 4 years ago

可以把这列和y发我试试么

zjyoung commented 4 years ago

可以把这列和y发我试试么

我更新了问题。附件是test.xlsx。

ShichenXie commented 4 years ago

这里的0是填充的吧,如果是可以试着填为-1、-9,、-999之类的;

library(data.table)
library(scorecard)

woebin(setDT(dat)[var == 0, var := -1],  y = 'label')

也可以把0设置为特殊值;

woebin(dat, y = 'label', special_values = list(var = 0))
zjyoung commented 4 years ago

这里的0不是填充的,0代表某种行为进行了0次,其他的值也依次类推。而且有一个前后矛盾的点,我用var_filter来看这个变量的话,iv是1.5,说明iv是可以算出来的。但是到了woebin这一步,就又算不出来了。

ShichenXie commented 4 years ago

我更新了下下。你安装github上面的版本试试。修改了初始化分箱点的方法。

另外,var_filter里面的iv值与woebin里面的iv值都是调用相同函数计算的。区别在于var_filter里面计算的iv是变量分箱之前的iv值,woebin里的分箱之后的iv值

zjyoung commented 4 years ago

我更新了下下。你安装github上面的版本试试。修改了初始化分箱点的方法。

另外,var_filter里面的iv值与woebin里面的iv值都是调用相同函数计算的。区别在于var_filter里面计算的iv是变量分箱之前的iv值,woebin里的分箱之后的iv值

已经好了,完美的解决了我的困惑,非常感谢!!

ShichenXie commented 4 years ago

good