woe和IV实际实例解说(python代码拿⾛)
⼀.介绍
对于woe和IV,简单来说就是⽤来进⾏特征选择的⽅法,我做了两个例⼦来简单说明⼀下,例⼦的代码放到了⽂章的最后。如果你想看看原理:(你就想求IV和woe,可以直接看例⼦,跑代码)
⼆.银⾏例⼦(寻和标签关联最⾼的特征)
⾸先最简单的⽰例,也是⼀般官⽅提供的,我这⾥展⽰⼀下数据:
可以看出既有⽂字,也有数字。这⾥呢如果你有相似的数据需要处理,那你不⽤担⼼了,代码已经写好。你不必担⼼这⾥的数据是⽂字还是数字,都可以,有判断语句。
注意:标签y的类型⼀定要是1或0,如果是Exel读进来的数据可以直接使⽤。但有些时候会报数据类型错误,那问题的关键是输⼊的时候类型有问题。这⾥需要转换⼀下数据类型。我在第⼆个⽰例⾥⾯进⾏了说明。
结果:
三.图像例⼦(寻有可能写字的像素点)
这⾥我使⽤的是mnist⼿势识别的⼀部分数据,已经将图⽚转换成像素点了。
c语言书籍阅读顺序第⼀⾏是标签,后⾯每⼀⾏是⼀张图⽚,每⼀列是⼀个像素。
主要的⼯作是将图⽚转换成和银⾏例⼦⼀样的列表:
city = citys.drop([0])#删除第⼀⾏
matlab指数函数图像target = citys['x'][0].split()#⽤target标记标签
data=city['x'].str.split(pat = None,n = -1,expand = True) #分⾏
此时数据为:
以上以基本完成了数据转换,但是如果直接使⽤会报数据错误,主要原因是列名称是数字类型,并不是str类型,所以需要转换⼀下,表格⾥⾯的数据也需要转换成float。
data=np.asarray(data,float)
jspvztarget = np.asarray(target, int)#转换数据类型python基础代码写字
index1=[]
for i in range(data.shape[1]):
index1.append(str(i))
#index1.append('y')
df = pd.DataFrame(data,columns=index1)#列名称转换成str
下载送20金币df['target']=target#添加⼀⾏数据
查看最终转换的结果:
这⾥的数据和上个例⼦的例⼦已经⼀致了,进⾏计算获得最终结果。
通过woe和IV的计算,个⼈⼩有收获,不仅学习了特征选择的⼀个⽅法,⽽且对于数据的python处理学习的⼀些技巧。假如你要尝试我的代码,希望你关注⼀些数据的处理细节,这会让你受益匪浅
十进制转换二进制pta附录:源代码
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论