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

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/266534.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

java 重定向 https_使用简单身份验证从HTTP重定向到HTTPS

我希望得到一些关于如何使用带有ember-simple-auth的ember初始化程序将用户从HTTP重定向到HTTPS的建议 .import ENV from cio/config/environmentSSLInitializer name: sslbefore: simple-auth-cookie-storeinitialize: (container, application) ->application.deferReadin…

你真的会数钱吗?

本文已迁移至:http://thinkinside.tk/2013/01/01/money.html 快年底了,假如你们公司的美国总部给每个人发了一笔201212.21美元的特别奖金,作为程序员的你, 该如何把这笔钱收入囊中? Table of Contents 1 美元&#xff…

Maven 系统环境变量配置

Download http://maven.apache.org/download.cgi http://mirrors.shu.edu.cn/apache/maven/maven-3/3.5.4/binaries/apache-maven-3.5.4-bin.zip 环境变量 1.添加 MAVEN_HOME: 变量名:MAVEN_HOME  变量值:C:\Program\apache-maven-3.5.4 注…

全国计算机等级考试题库二级C操作题100套(第19套)

第19套: 程序通过定义学生结构体变量,存储了学生的学号、姓名和3门课的成绩。函数fun的功能是将形参a所指结构体变量s中的数据进行修改,并把a中地址作为函数值返回主函数,在主函数中输出修改后的数据。 例如:a所指变量s中的学号…

eclipse中文乱码解决_解决git status显示中文文件名乱码问题

使用 git status 查看本地有改动但未提交的中文文件名时,发现会显示为一串数字,没有显示中文的文件名。具体如下所示:$ git status# 位于分支 master# 尚未暂存以备提交的变更:# (使用 "git add ..." 更新要提交的内容)# (使用 &qu…

MongoDB 3.X 用户权限控制

摘要: MongoDB 3.0 安全权限访问控制,在添加用户上面3.0版本和之前的版本有很大的区别,这里就说明下3.0的添加用户的方法。 环境、测试: 在安装MongoDB之后,先关闭auth认证,进入查看数据库,只有…

oracle和sql server取第一条记录的区别以及rownum详解

我们知道学生可能有重名的情况&#xff0c;那么当重名的时候假设只需要取得重名结果集中的第一条记录。 sql server:select top(1) num,Name from M_Student where name xy Oracle:select num,Name from M_Student where name xy and rownum < 1 对于rownum在oracle的使用…

全国计算机等级考试题库二级C操作题100套(第20套)

第20套&#xff1a; 给定程序中&#xff0c;函数fun的功能是&#xff1a;计算形参x所指数组中N个数的平均值&#xff08;规定所有数均为正数&#xff09;,将所指数组中小于平均值的数据移至数组的前部&#xff0c;大于等于平均值的数据移至x所指数组的后部&#xff0c;平均值作…

java enum 变量_java枚举使用详解

package com.ljq.test;/*** 枚举用法详解** author jiqinlin**/public class TestEnum {/*** 普通枚举** author jiqinlin**/public enum ColorEnum {red, green, yellow, blue;}/*** 枚举像普通的类一样可以添加属性和方法&#xff0c;可以为它添加静态和非静态的属性或方法**…

c#小游戏_C#小游戏—钢铁侠VS太空侵略者

身为漫威迷&#xff0c;最近又把《钢铁侠》和《复仇者联盟》系列又重温了一遍&#xff0c;真的是印证了那句话&#xff1a;“读书百遍&#xff0c;其意自现”。看电影一个道理&#xff0c;每看一遍&#xff0c;都有不懂的感受~ 不知道大伙是不是也有同样的感受&#xff0c;对于…

输入年份月份判断是平年还是闰年及这个月有多少天

import java.util.Scanner;public class year {public static void main(String[] args) {System.out.println("请输入年份");Scanner sc new Scanner(System.in);int s sc.nextInt();System.out.println("请输入月份");Scanner sc1 new Scanner(System…

VMware Workstation 虚拟机性能优化指南

我们经常使用虚拟机来体验各种新系统&#xff0c;做各类新鲜应用的测试&#xff0c;由于VMware Workstation虚拟机功能强大&#xff0c;又适用于最新的 Windows / linux /Sun等平台&#xff0c;而且操作方便&#xff0c;所以其普及率很高&#xff01;而 VMware Workstation 本身…

全国计算机等级考试题库二级C操作题100套(第21套)

第21套&#xff1a; 给定程序中&#xff0c;函数fun的功能是&#xff1a;计算形参x所指数组中N个数的平均值&#xff08;规定所有数均为正数&#xff09;,将所指数组中大于平均值的数据移至数组的前部&#xff0c;小于等于平 均值的数据移至x所指数组的后部&#xff0c;平均值…

pytorch已经安装成功了为什么不能使用import_使用auto keras的过程

成功安装的总结&#xff1a;1、创建环境名为mykeras、python版本为3.6的独立环境conda create --name mykeras python3.62、用pip安装 torch0.4.1&#xff08;一定要指定版本&#xff0c;否者安装auto keras时报错&#xff09;# Python 3.6 pip install https://download.pytor…

mysql5.0 php_php怎么连接mysql5.0?

PHP与MySQL的连接有三种API接口&#xff0c;分别是&#xff1a;PHP的MySQL扩展 、PHP的mysqli扩展 、PHP数据对象(PDO) &#xff0c;下面针对以上三种连接方式做下总结&#xff0c;以备在不同场景下选出最优方案。PHP的MySQL扩展是设计开发允许php应用与MySQL数据库交互的早期扩…

Android----Google code android开源项目(四)

Google code android开源项目(四) 1. sparserss http://code.google.com/p/sparserss/ 一个简洁的android rss阅读器 2. desktopsms http://code.google.com/p/desktopsms/ 在电脑写短信 3. kraigsandroid http://code.google.com/p/kraigsandroid/ 创建者…

面试题之--实现取余

def quyu(shu,chushu):if shuchushu:print(余数是0)elif shu<chushu:print(余数是&#xff1a;%s%shu)elif chushu0:print(除数不能为0)else:for i in range(0,shu):if shu-i*chushu>chushu:i1elif shu-i*chushuchushu:print(余数是0)breakelif shu-i*chushu0:print(余数…

全国计算机等级考试题库二级C操作题100套(第22套)

第22套&#xff1a; 给定程序中&#xff0c;函数fun的功能是&#xff1a;将自然数1&#xff5e;10以及它们的平方根写到名为myfile3.txt的文本文件中&#xff0c;然后再顺序读出显示在屏幕上。 请在程序的下划线处填入正确的内容并把下划线删除&#xff0c;使程序得出正确的结…

mysql可能锁的表命令_mysql 默许是表级锁一些不太常用命令

mysql 默认是表级锁一些不太常用命令1&#xff0c;mysql默认的是表级锁。如果是启用InnoDB存储引擎那么该数据库支持行级锁。2&#xff0c;查看数据库是否支持innodb的命令SHOW variables like "have_%";另一条命令SHOW ENGINES;更为准确。查看mysql数据库的详细信息…

python制作二级菜单_Python_简单三级菜单制作

一:制作要求 1.三级菜单  2.可依次选择进入各子菜单  3.所需新知识点:字典,列表 *本文通过三种方法完成,第一种:只使用循环,第二种:使用列表,第三种:使用字典 二:FlowChart流程图与上图对应,实现方式图解:while用来判断输入的数据和允许输入数据中的哪一项匹配,if来进行判断…