python营销骗局_python案例:金融营销活动中欺诈用户行为分析

首先,数据导入

1 importnumpy as np2 importpandas as pd3 from collections importCounter4 importmatplotlib.pyplot as plt5 from pymining importitemmining,assocrules,perftesting,seqmining6 importpyecharts as pe7 rt=pd.read_csv(r"E:\transaction_train_new.csv",sep=",")8 ro=pd.read_csv(r"E:\operation_train_new.csv",sep=",")9 rtt=pd.read_csv(r"E:\tag_train_new.csv",sep=",")

然后,数据预处理与简单统计

1 #数据处理与简单统计

2 rt=pd.merge(rt,rtt)3 ro=pd.merge(ro,rtt)#把标签与行为合并方便结合标签分析行为

4 z1=ro.day.astype(np.str)5 z2=rt.day.astype(np.str)#把day转为字符串

6 ro.time=pd.to_datetime("2018-01-"+z1+" "+ro.time)7 rt.time=pd.to_datetime("2018-01-"+z2+" "+rt.time)#把time下面单纯的小时改为标准模式的时间

8 #统计用户总数,羊毛党数量,交易行为数,操作行为数

9 print(len(rtt.UID.values),len(rtt[rtt.Tag==1].UID.values),len(rt),len(ro))

其次,欺诈用户的一般特征分析。

从两个方面1,羊毛党通常事务性操作很少,交易性操作较多。2、羊毛党,通常会多个用户共用银行账户、各种设备等信息

1、#行为时序分析

plt.plot(ro[ro.Tag==1].groupby("day").size())

plt.plot(ro[ro.Tag==0].groupby("day").size())#查看两类用户的事务性数据操作

1723087-20190623180950641-1711719939.png

图中,蓝色为“羊毛党”,黄色为“普通用户。可见,羊毛党的事务操作较少,而交易性操作较多,即以尽可能少的成本获取尽可能多的利益

plt.plot(rt[rt.Tag==1].groupby("day").size())

plt.plot(rt[rt.Tag==0].groupby("day").size())#查看两类用户的交易性操作

1723087-20190623181036469-1736325133.png

2、多账户羊毛党行为分析

1 #多账号羊毛,多个账号公用银行帐号、各种设备号、手机

2 defcl(x):3 returnset(x.UID.values)4 z2=rt[rt.acc_id2.notnull()].groupby("acc_id2").apply(cl)#统计各转出账号acc_id2下的用户

5 p2=Counter(z2.apply(len).values)#acc_id2用户数量类别的计数

6 plt.loglog(p2.keys(),p2.values(),"o")#近似为幂函数曲线,数据明显存在问题

1723087-20190623182318858-489972349.png

1 #记录各acc_id2下用户数大于3的用户ID,疑似为羊毛党ID

2 z4=set([])3 for i inz2.values:4 if len(i)>3:5 z4=z4|i6 z5=set(rt[rt.Tag==1].UID.values)7 print(len(z4),len(z5),len(z4&z5))#查看预测的羊毛党数量,实际的羊毛党数量,预测对的羊毛党数量

845 3993 725

1 #同理分析某一标签x0下的用户,>x1的为疑似羊毛党

2 defu1(x0,x1):3 defcl(x):4 returnset(x.UID.values)5 z2=rt.groupby(x0).apply(cl)6 p2=Counter(z2.apply(len).values)7 plt.loglog(p2.keys(),p2.values(),"o")8 z4=set([])9 for i inz2.values:10 if len(i)>x1:11 z4=z4|i12 return [z4,len(z4),len(z5),len(z4&z5)]

定义函数u1(x0,x1)分析x0标签下,疑似为用户共用情况,共用用户数>x1则认为是羊毛党

在"acc_id1"”acc_id2“"acc_id3""device_code1""device_code2"下分析羊毛党行为

1 y1=u1("acc_id1",3)#以ip作为分析指标

2 y1[1:4]3 [845, 3993, 725]4 y2=u1("acc_id2",2)5 y2[1:4]6 [333, 3993, 322]7 y3=u1("acc_id3",3)#以ip作为分析指标

8 y3[1:4]9 [298, 3993, 287]10 de1=u1("device_code1",4)#以同-设备号上有>4个用户,疑似为羊毛党

11 de1[1:4]12 [1338, 3993, 809]13 de2=u1("device_code2",4)#手机品牌标签下的羊毛党分析

14 de2[1:4]15 [1023, 3993, 805]

最后,汇总分析这5个指标的筛选结果

1 w=y1[0]|y2[0]|y3[0]|de1[0]|de2[0]2 print(len(w),len(z5),len(w&z5))3 f0=len(w&z5)/len(w)4 f1=len(w&z5)/len(z5)5 f2=f0*f1*2/(f0+f1)6 print(f0,f1,f2)#仅仅用简单的条件就能达到0.4以上1967 3993 1282

0.6517539400101677 0.3210618582519409 0.4302013422818792

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值