wangxishi

2020-08-19   阅读量: 6460

大数据 IV值 python

关于变量IV值测算问题

扫码加入数据分析学习群

各位老师,请教个问题,我之前找了一段代码测算变量的IV值,然后现在使用测试数据(虚假数据)进行IV测算的时候,代码总是报错,代码本身试了其他数据是可以跑出来的,这组数据想请老师看下是什么问题,导致测算IV值总是报错,测试数据已上传至附件,代码及报错信息见图片,或者老师有其他方法可以测算出IV吗

test.xlsx

#%% woe分箱, iv and transform
data_woe = data #用于存储所有数据的woe值
civ_list = []
n_positive = sum(data['target'])
n_negtive = len(data) - n_positive
for column in list(data.columns[1:]):
    if data[column].dtypes == 'object':
        civ = fp.proc_woe_discrete(data, column, n_positive, n_negtive, 0.05*len(data), alpha=0.05)
    else:            
        civ = fp.proc_woe_continuous(data, column, n_positive, n_negtive, 0.05*len(data), alpha=0.05)
    civ_list.append(civ)
    data_woe[column] = fp.woe_trans(data[column], civ)
    
civ_df = eval.eval_feature_detail(civ_list,'data5.xlsx')

报错1.png

27.8619 4 4 关注作者 收藏

评论(4)

wangxishi
2020-08-21

请问有更好的计算IV的代码吗?

0.0000 0 0 回复
PGC123
2020-08-21

目前还没发现有能计算各种数据,应对各种情况的包。只能是根据遇到的具体问题、具体分析并探索出合理的解决方案。

0.0000 0 0 回复
wangxishi
2020-08-20

前面要先连接上python数据包:

import pandas as pd
import numpy as np
import os
import Data_quality_report as dqr
import scorecardpy as sc
import matplotlib.pyplot as plt
import woe.feature_process as fp
import woe.eval as eval
import math


35.8908 1 0 回复
wangxishi
2020-08-20

前面的报错是这样的,截图内容是否够?

报错1.png

35.8908 1 0 回复
PGC123
2020-08-20

我看了一下,代码报错是因为这个日期类型不能使用这个库来做分箱处理,可以考虑将时间这两列拿出来人工分箱处理。包也是有局限性的,要么需要研究数据反复做数据预处理,要么需要研读woe这个包的代码并做一些修改才能真正完成。路漫漫兮其修远~

35.8908 2 0 回复
jdtk_gl
2020-08-19

请问代码是那一句执行报错了?

35.8908 1 0 回复

推荐课程

推荐帖子