python iv值计算 空值处理,iv值计算 Python

  python iv值计算 空值处理,iv值计算 Python

  计算逻辑

  先计算不幸值,再计算静脉的值。

  其中Y或普通分别是是的,不,反应在因变量中,就是一和0。

  彝语是第我组中一的个数,YT是所有(总计)为一的个数。

  镍是第我组中0的个数,NT是所有(总计)为0的个数。

  举例

  数据如下,x分别取1-9,y对应是一和0。

  x,y

  1,1

  2,1

  3,0

  4,1

  5,1

  6,0

  7,0

  8,0

  9,1

  如果对于x这9行数据分成三组:

  第0组:x=1,2,3

  第一组:x=4,5,6

  第2组:x=7,8,9

  则第0组的武器工程军官武器工程师执行官值计算过程如下。

  Y0=2,因为分组内当x=1,2的时候y是1,共两个1,则是2.

  YT=5,因为y这一列总共有5个1。

  N0=1,因为分组内当x=3的时候y是0,共一个1,则是1.

  NT=4,因为y这一列共有四个0.

  悲哀_0

  =ln((2/5)/(1/4))

  =ln(0.4/0.25)

  =ln(1.6)

  =0.47

  有了悲哀,开始计算四:

  四_0

  =(2/5-1/4)*WOE_0

  =0.15*0.47

  =0.0705

  于是可计算出IV_0=0.0705。同理可计算出IV_1=0.070501,IV_2=0.274887。则该X的输入阀交互式视讯自变量(独立变量)即iv=iv_0 iv_2 iv_3=0.415888

  计算机编程语言代码

  进口熊猫作为螺纹中径

  将数组作为铭牌导入

  def iv_woe(数据:pd .DataFrame,target:str,bins:int=10) - (pd .数据框架,pd .数据帧):

  计算不幸和静脉的值

  参数:

  -数据:数据帧数据

  -目标:y列的名称

  -垃圾箱:分箱数(默认是10)

  newDF,woeDF=pd .DataFrame(),pd .数据帧()

  列=数据。列

  对于cols[~cols.isin([target])]中的ivars:

  # 数据类型在互补实验中、且数据10则分箱

  if( bifc 中的数据[ivars].数据类型.种类)和(len(np.unique(data[ivars]))10):

  binned_x=pd.qcut(data[ivars],bin,duplicates=drop )

  d0=pd .DataFrame({x: binned_x, y: data[target]})

  否则:

  d0=pd .DataFrame({x: data[ivars], y: data[target]})

  d=d0.groupby(x ,as_index=False).agg({y: [count , sum]})

  d.columns=[Cutoff , N , Events]

  d[ % of Events ]=NP。最大值(d[事件],0.5)/d[事件].总和()

  d[非事件]=d[N] - d[事件]

  d[%非事件]=np.maximum(d[非事件],0.5)/d[非事件]。总和()

  d[WoE]=np.log(d[%事件]/d[%非事件])

  d[IV]=d[WoE] * (d[%事件] - d[%非事件])

  d.insert(loc=0,column=Variable ,value=ivars)

  打印( ivars 的信息值是str(round(d[IV]).sum(),6)))

  温度=pd .DataFrame({Variable : [ivars], IV : [d[IV].sum()]},columns=[Variable , IV])

  newDF=pd.concat([newDF,temp],axis=0)

  woeDF=pd.concat([woeDF,d],axis=0)

  返回newDF,woeDF

  调用

  mydata=pd.read_csv( ./data.csv ,编码=utf8 )

  newDF,woeDF=iv_woe(mydata, y )

  即可得到。注意,此处默认10组,上例中的x值是0-10,不足以分10组,则每个值为一组。注意其中的如果判断语句

郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。

留言与评论(共有 条评论)
   
验证码: