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

下午学习了python数据分析的应用案例---金融营销活动中欺诈用户行为分析。数据来源于DC竞赛数据:https://www.dcjingsai.com/common/cmpt/2018%E5%B9%B4%E7%94%9C%E6%A9%99%E9%87%91%E8%9E%8D%E6%9D%AF%E5%A4%A7%E6%95%B0%E6%8D%AE%E5%BB%BA%E6%A8%A1%E5%A4%A7%E8%B5%9B_%E7%AB%9E%E8%B5%9B%E4%BF%A1%E6%81%AF.html,详细数据信息可去网站查看,标签为1表“羊毛党”,0表“正常用户”

首先,数据导入

1 import numpy as np
2 import pandas as pd
3 from collections import Counter
4 import matplotlib.pyplot as plt
5 from pymining import itemmining,assocrules,perftesting,seqmining
6 import pyecharts as pe
7 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())#查看两类用户的事务性数据操作

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

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

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

1 #多账号羊毛,多个账号公用银行帐号、各种设备号、手机
2 def cl(x):
3     return set(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")#近似为幂函数曲线,数据明显存在问题

1 #记录各acc_id2下用户数大于3的用户ID,疑似为羊毛党ID
2 z4=set([])
3 for i in z2.values:
4     if len(i)>3:
5         z4=z4|i
6 z5=set(rt[rt.Tag==1].UID.values)
7 print(len(z4),len(z5),len(z4&z5))#查看预测的羊毛党数量,实际的羊毛党数量,预测对的羊毛党数量
845 3993 725
 1 #同理分析某一标签x0下的用户,>x1的为疑似羊毛党
 2 def u1(x0,x1):
 3     def cl(x):
 4         return set(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 in z2.values:
10         if len(i)>x1:
11             z4=z4|i
12     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

原文地址:https://www.cnblogs.com/dahongbao/p/11073697.html

时间: 2024-11-08 21:18:33

python案例:金融营销活动中欺诈用户行为分析的相关文章

15个邮件营销技巧增长“订阅用户”

近期,HubSpot发表了一个有趣的研究营销数据库,通过使用仿真模拟,发现业务数据库每年自然降低22.5%.而Marketing Sherpas的研究表明,B2B每月数据衰减率为2.1%,与每年22.5%相差.全球领先的多渠道智能化营销服务机构webpower的研究数据同样表明,国内邮件营销数据列表同样面临着用户数据不断坏死.失效和流失的考验.用户的组织工作变动.取消订阅或放弃旧的邮件地址等都可能酿成邮件订阅用户的流失和减少,这直接影响了用户潜在销售转化几率,降低邮件转化率.影响业绩.对于企业,

电子邮件营销在数字营销浪潮中扮演关键角色

这可能是成为邮件营销人员的最好时机.电子邮件营销似乎在新兴营销渠道面前相形见绌,时下一个全新的视角对其所扮演的角色重新定义.营销者们就邮箱地址本身如何通过广泛的数字化营销渠道,深入了解用户行为,进行个性化营销,带来持续性的影响力展开激烈探讨. 在最近的一次行业活动中,LUMA的合作伙伴Brian Anderson发表了题为<不断变化的数字营销技术远景>的演讲.Anderson再次强调邮件是ROI(投资回报率)最高的营销渠道,并分享了邮件远远超越ROI的更多价值.他认为个人邮箱地址连接一切数字渠

微信营销活动策划方案怎么写

营销活动方案怎么做,是许多企业都关心的问题.微信运营中的活动策划的重要性不言而喻,既可提高粉丝活跃度.又可以借活动提升营销转化率,通过搜集到的用户信息得以进一步针对性服务和营销.透过活动与用户高频次互动,加深用户对品牌的认知和了解,强化品牌忠诚度.小编认为,微信营销活动方案策划应该从以下方向着手: 一.用户体验至上 在做营销活动设计时目的尽可能的明确而且单一,很多人喜欢在一个营销活动中融入多个营销目的.而每个目的都会增加用户的操作,最后用户反而觉得体验不好难度太大而放弃参与. 比如看到一个抽奖活

09_用户行为分析_广告精准推送项目介绍

1.用户行为分析 用户行为分析,是指在获得网站访问量基本数据的情况下,对有关数据进行统计.分析,从中发现用户访问网站的规律, 并将这些规律与网络营销策略等相结合,从而发现目前网络营销活动中可能存在的问题,并为进一步修正或重新制定网络营 销策略提供依据.这是狭义的只指网络上的用户行为分析 意义:通过对用户行为监测获得的数据进行分析,可以让企业更加详细.清楚地了解用户的行为习惯,从而找出网站.推 广渠道等企业营销环境存在的问题 2.用户行为分析与个性化推送服务技术: 用户的行为分析是基于数据的,它利

Python在金融,数据分析,和人工智能中的应用

Python在金融,数据分析,和人工智能中的应用 Python最近取得这样的成功,而且未来似乎还会继续下去,这有许多原因.其中包括它的语法.Python开发人员可用的科学生态系统和数据分析库.易于和几乎所有其它技术集成,以及其开源地位. 自 从1991它出现在编程场景中,比于其他编程语言,Python取得了少有的地位.面向对象,容易学习,使用语法,以及由此产生的低维护成本,是 Python持续获得好评的一部分原因.开源是一个很明显的优势,跨平台的有效性,多目标,垃圾回收(自动的),代码的简洁性,

Python在金融,数据分析,和人工智能中的应用 !

Python最近取得这样的成功,而且未来似乎还会继续下去,这有许多原因.其中包括它的语法.Python开发人员可用的科学生态系统和数据分析库.易于和几乎所有其它技术集成,以及其开源地位.--来自Yves Hilpisch的Python金融大数据分析(姚军译). 自从1991它出现在编程场景中,比于其他编程语言,Python取得了少有的地位.面向对象,容易学习,使用语法,以及由此产生的低维护成本,是Python持续获得好评的一部分原因.开源是一个很明显的优势,跨平台的有效性,多目标,垃圾回收(自动

Python 提取Twitter特定话题中转载tweet的用户

CODE: #!/usr/bin/python # -*- coding: utf-8 -*- ''' Created on 2014-7-7 @author: guaguastd @name: user_retweet_statuses.py ''' if __name__ == '__main__': # import login, see http://blog.csdn.net/guaguastd/article/details/31706155 from login import tw

python案例-用户登录

要求: •输入用户名密码 •认证成功后显示欢迎信息 •输错三次后锁定 1 #!/usr/bin/env python 2 # -*- coding:utf-8 -*- 3 4 """ 5 用户登陆功能实例 6 1.获取db文件中所有的用户信息 7 2.比较用户信息 8 如果用户名不存在,则直接退出 9 如果用户名存在 10 检测密码,如果密码存在,则提示登陆成功,并将登陆错误次数重置为 0 ,修改内存中的字典中记录的登陆错误次数.(并写入文件) 11 如果密码不存在 12 修

PYTHON练习题 二. 使用random中的randint函数随机生成一个1~100之间的预设整数让用户键盘输入所猜的数。

Python 练习 二. 使用random中的randint函数随机生成一个1~100之间的预设整数让用户键盘输入所猜的数,如果大于预设的数,屏幕显示"太大了,请重新输入"如果小于预设的数,屏幕显示"太小了,请重新输入"如此循环,直到猜中,显示"恭喜你,猜中了!共猜了N次"N为用户猜测次数. 答案: import random def guess_number(): true_num = random.randint(1, 100) user_n