洞察纵观鸿蒙next版本,如何凭借FinClip加强小程序的跨平台管理,确保企业在数字化转型中的高效运营和数据安全?
665
2022-10-08
RPackage007---smbinning
title: “Learning R—smbinning” author: “刘栋” date: “2018年4月5日” output: word_document
knitr::opts_chunk$set(echo = TRUE)
这个包主要是进行woe分组时候用的,有比较丰富的函数可以用。简单介绍其中两个函数,最优分箱和自定义分箱。业务希望可以自动寻参,虽然实际用的时候,自动分箱经常无解,但是也可以通过手动设置阈值来作为参考。
Intro
对R的版本有要求,3.4.0以上。升级R的话用installr倒是可以,但是默认是升级到最新版本。最新版本的R,RStudio又不支持,所以还是很坑的。
最优分箱
评分卡模型中需要对数值型连续变量进行分箱处理,这一过程又称为有监督的离散化。这里最优分箱采用的算法是条件推断决策树(Conditional Inference Tree)。该算法开始排除缺失值进行分割点的寻找,最后计算IV值时,会考虑缺失值。
函数形式
library(smbinning)smbinning(df, y, x, p = 0.05)
其中各个参数的意义如下:
df 数据框y 响应变量(0,1),必须是整数且变量名不能包含"."x 连续性变量,至少5个不同的值且变量名不能包含"."p 每组样本占比,默认5%,即分箱之后每组样本数不能小于5%。该参数区间为0-0.5
Examples
# Load library and its datasetlibrary(smbinning) # Load package and its data# Example: Optimal binningresult=smbinning(df=chileancredit,y="fgood",x="cbs1") # Run and save result
分组情况和IV值的计算
result$ivtable # Tabulation and Information Value
这里woe的计算:
WOE可以理解为当前分组中好用户占所有好用户的比例和坏用户占所有坏用户的比例的差异,如果差异越大,说明这个组别的区分能力越强。比如woe越大,该段用户的违约风险就越低
IV值的计算:
一般而言,IV值小于0.02认为变量没有什么价值,0.1-0.3预测力中等,0.3以上预测能力强。IV值相当与WOE的修正,比如分子分母差很多,woe会很小,但是IV值会偏大些,因为有个乘积项。
还有下面几个返回结果,不多说
result$iv # Information valueresult$bands # Bins or bandsresult$ctree # Decision tree
自定义分箱
library(smbinning)smbinning(df, y, x, cuts)
cuts 人为给定的分割点看一个例子,输出和最优分箱一致:
# Load library and its datasetlibrary(smbinning) # Load package and its data# Custom cutpoints using percentiles (20% each)cbs1cuts=as.vector(quantile(chileancredit$cbs1, probs=seq(0,1,0.2), na.rm=TRUE)) # Quantilescbs1cuts=cbs1cuts[2:(length(cbs1cuts)-1)] # Remove first (min) and last (max) values# Example: Customized binningresult=smbinning.custom(df=chileancredit,y="fgood",x="cbs1",cuts=cbs1cuts) # Run and saveresult$ivtable # Tabulation and Information Value
Summary
还有数据探索、画图的函数,总体比较简单,可以看help。
2018-04-05 于杭州
版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。
发表评论
暂时没有评论,来抢沙发吧~