接触数据分析这么久,都是处在比较笼统的层面,比如知道先要去学习SQL语句用法,使用Python pandas和numpy库进行数据处理和计算,掌握Excel的Vlookup和数据透视表等工具。业务知识也只是停留在推文和视频了解基础上,没有细致深入去理解,上周六下午有机会和数据蛙Datafrog小伙伴线下交流,对2个业务场景指标做预测分析,接下来简单做个小结。
一.客户经理推广支付产品的KPI指标确定
1、业务背景
某聚合支付公司现有一款支付产品app,在全国各地线下推广,合作商户安装app,激活后,顾客购买商品,扫描app二维码或条形码支付成功,此单交易完成。对客户经理进行绩效评估,便于部门整合资源,合理投入,提高产出。
2、业务探索分析
从商户所属不同行业出发,按全国不同区域划分为华北,华中,华东,华南,华西。分别对不同区域城市的业务经理负责的商户交易行为进行分析,头脑风暴总结几点,具体如下图。
二.商户行为预测
(一)商户交易流水预测商户套现行为
1、业务背景
聚合支付或第三方支付公司,和不同区域城市商户合作。套现,属于消费,只是刷卡消费后,不是拿商品,而是商户给你同等金额的现金,套现是有免利息的时间的,一般是20-56天不等,同时可以全额度或翻倍额度套现。常见的有信用卡套现、公积金套现、证券套现等。套现风险交易识别,便于支付公司定位挖掘维系优质商户群体。
参考来源:https://mp.weixin.qq.com/s/fLqOJNmP7RlUetIpG2X03g
2、业务探索分析
常见支付交易类型分析时,一般采用RFMS模型,有点类似RFM吧,
R(Recency):最近一次交易间隔时间;
F(Frequency):最近一段时间交易次数;
M(Monetary):某段时间交易金额;
S(Standard Deviation):某段时间内交易金额标准差;
2.1 原始建模特征
按照传统的聚类方式,对商户信息、交易流水提取多维度特征,进行聚类,来覆盖商户交易行为特点。
按交易额划分:大额交易类,小额交易类
刷卡类型:借记卡类,贷记卡类
(1)交易活跃程度:有交易天数/商户上线累计天数;
(2)月平均有交易天数、交易笔数、交易金额及其标准差;
(3)大额交易平均金额及其比例;
(4)整数交易平均金额及其比例;
(5)MCC码众数,反映交易中最频繁的类别;
(6)频繁时段:找出每个商户交易最密集的时段;
(7)最近一个月的交易笔数,平均单笔交易金额及其标准差;
2.2 套现定义
从商户交易行为层面,怎么去判别商户存在套现行为?先对商户做个聚类,
(1)双模网络:比如同一张银行卡会在多个商户上套现,那就可以通过银行卡,把商户进行聚类;
(2)KS距离:随着交易金额x的变化,统计不同商户的累计分布函数值f(x),2个f(x)值越接近,就可假设这2个商户为1个聚类;
根据上面的聚类方式,得出套现的定义区间,
(1)一张卡在一个商户1天内交易笔数大于n笔,且交易金额最高M以上;
交易笔数大于n笔,且交易金额最高1w以上;
至少3个月月贷记卡交易总金额大于额度的90%;
(2)符合条件(1)中的单张银行卡,在其他商户产生的累计金额大于M,且累计笔数大于n,定义为套现。
3、数据与特征处理
通过特征工程对数据进行预处理,选择算法模型时,可以减少噪声干扰,这样方便找出趋势。选择适合的特征,通过简单的模型也能达到很好的效果,常用技巧如下,
(1)数值型
a.幅度调整/归一化
b.统计值max,min,mean,std
c.离散化
d.hash分桶
(2)类别型
a.one-hot编码
b.哑变量
c.Hash与聚类处理
(3)时间类
a.连续值
持续时间(单页浏览时长)
间隔时间(上次购买/点击离现在的时间)
b.离散值
一天中哪个时间段(hour_0-23)
一周中星期几(week_monday...)
一年中哪个星期
一年中哪个季度
工作日/周末
(4)文本型
a.词袋
文本数据预处理后,去掉停用词,剩下的词组成list,在词库中的映射稀疏向量。
把词袋中的词扩充到N-gram中。
参考N-gram模型介绍:https://blog.csdn.net/songbinxu/article/details/80209197#Word2Vec_243
b.TF-IDF
一种统计方法,用来评估一个字词对于一个文件集或一个语料库中的其中一份文件的重要程度。字词的重要性随着它在文件中出现的次数成正比增加,但同时会随着它在语料库中出现的频率成反比下降。
TF:Term Frequency
TF(t)=(词t在当前文中出现次数)/(t在全部文档中出现次数)
IDF:Inverse Document Frequency
IDF(t)=ln(总文档数/含t的文档数)
TF-IDF权重=TF(t)*IDF(t)
参考:https://www.cnblogs.com/likai198981/p/3344060.html,文章从信息检索问题的概率视角,解释TD-IDF的概率意义,并指出不合理之处。
(5)统计型
用例子来看,比较直观,
(1) 前一天的购物车商品很有可能第二天就被购买 =>规则
(2) 剔除掉在30天里从来不买东西的人 => 数据清洗
(3) 加车N件,只买了一件,剩余不会买 => 规则
(4) 购物车购买转化率 =>用户维度统计特征
(5) 商品热度 =>商品维度统计特征
(6) 对不同item点击/收藏/购物车/购买的总计 =>商品维度统计特征
(7) 对不同item点击/收藏/购物车/购买平均每个user的计数 =>用户维度统计特征
(8) 变热门的品牌/商品 =>商品维度统计特征(差值型)
(9) 最近第1/2/3/7天的行为数与平均行为数的比值 =>用户维度统计特征(比例型)
(10) 商品在类别中的排序 =>商品维度统计特征(次序型)
(11) 商品交互的总人数 =>商品维度统计特征(求和型)
(12) 商品的购买转化率及转化率与类别平均转化率的比值=>商品维度统计特征(比例型)
(13) 商品行为/同类同行为均值=>商品维度统计特征(比例型)
(14) 最近1/2/3天的行为(按4类统计)=>时间型+用户维度统计特征
(15) 最近的交互离现在的时间=>时间型
(16) 总交互的天数=>时间型
(17) 用户A对品牌B的总购买数/收藏数/购物车数=>用户维度统计特征
(18) 用户A对品牌B的点击数的平方 =>用户维度统计特征
(19) 用户A对品牌B的购买数的平方=>用户维度统计特征
(20) 用户A对品牌B的点击购买比=>用户维度统计特征(比例型)
(21) 用户交互本商品前/后,交互的商品数=>时间型+用户维度统计特征
(22) 用户前一天最晚的交互行为时间=>时间型
(23) 用户购买商品的时间(平均,最早,最晚)=>时间型
汇总这么多,慢慢理解~
(6)组合特征
通过特征组合后再来选择特征:如对用户id和用户特征最组合来获得较大的特征集再来选择特征,这种做法在推荐系统和广告系统中比较常见。
先用GBDT产出特征组合路径,再和原始特征加入LR训练,最早由Facebook使用,参考链接:
GBDT: http://breezedeus.github.io/2014/11/19/breezedeus-feature-mining-gbdt.html
GBDT详解参考:https://www.cnblogs.com/peizhe123/p/5086128.html
4、特征提取
根据上面的聚类方式,判别出以下特征指标,
信用卡交易:信用卡交易频率,信用卡交易标准差
大额交易:大额交易比例,大额交易频率,大额交易总金额
整数交易:整数交易比例,整数交易均值,整数交易标准差
疑似套现交易:疑似有套现行为卡数量,月疑似套现金额平均值,月疑似套现金额最大值,月疑似同安县标准差,套现交易比例,疑似有套现行为卡比例
其他交易:平均每月交易总金额,月交易金额最大值,单笔交易最大金额
5、指标展示
样例编号,所属类别,正常交易均值,月平均疑似套现交易均值,资金需求稳定性
以上,通过聚类模型和其他辅助模型,利用支付交易行为来区分商户套现行为和商户属性;
(二)商户白名单预测
1、细分行业及商户数
按同比均范围划分,每个商户都要在同类行业中,划分才才是公允且有意义的。
如根据行业划分为:百货商店,餐饮类,超市类,批发类,建材类,综合零售类,电子商务类,医药器械类,金融服务类,生鲜速冻类等。
2、商户评分表维度
可以从6个类别,企业属性,交易金额,交易活跃,经营稳定,风险交易,成长能力,如果一个类别内的指标比较多,那怎么划分权重?
类内处理:一般1个指标是不希望占用多份贡献,如果指标有2份贡献,就会占用2份权重,那就需要减少指标之间的贡献性,另外,需要对异常进行惩罚。
a.从888个指标中,通过筛选,合并,主成分分析等方法,最终选定8个综合性指标
b.通过中位数打分,反向中位数打分,中值打分等方式进行指标评分
c.通过高低位异常值惩罚,对数异常值惩罚等方式对异常样本进行删除
d.运用AHP层次分析法确定商户8个大类及细分综合指标的权重
3、打分标准
3.1分值取值为0-100,分值高的商户信用好。
对每个商户基于同行业比较进行打分,共有3种打分方法:
分位数打分:
越大越好的指标,一般采用这种。取值高于99%的用户,则记为99分;
反向分位数打分:
越小越好的风险类指标,一般采用这种。按从小到大排序,如果排名高于99%的用户,则记为99分;
中值打分:
取均值较好的指标,一般采用这种。取值等于均值时为100分,差距越大则打分越小,负数取1,;
3.2异常状况的惩罚机制
有3种惩罚方式:
低异常值惩罚,
低于均值-3倍标准差,则计为1分;如指标值太小,需要剔除掉。
高异常值惩罚,
高于均值+3倍标准差,则计为1分;如信用卡交易过高,剔除掉。
对数低异常值惩罚,
所有取值计算对数,低于均值-k倍标准差,则计为最低分;一般金额相关的指标,是取对数较多。
4、层次分析法
确定8个维度二级指标以及对应三级指标的权重,避免主观赋权。步骤如下,
a.建立层次结构模型
b.构造成对比较矩阵
c.做一致性检验
d.若通过检验,使用和积法确定权重进行后续分析
综上,小微商户聚类来判别套现商户,利用层次分析法来做商户白名单模型,都是做了无监督学习方法。
(三)流失商户识别模型
a.流失定义
b.根据流失定义,做些变量提取,特征设计,如,
代理商信息,交易金额变化率,
消费者集中度变化率,看这个商户有多少消费者。由信息熵定义计算衍生而来。
c.统计模型
如,Logistic回归,XGBoost,LightGBM,Random Forest
d.输出预测概率,
流失概率高--数据源信息判定不准确
流失概率低--数据源信息判定准确
从支付公司角度来说,流失概率高的商户,就需要采取相应措施去维系。
从数据分析角度来说,可以判断支付公司提供的商户数据,是否稳定刻画商户的经营状态。
(四)商户贷中监控模型
不同水平和指标下,在贷前贷后对比情况。
一个指标,采用类似T检验的方式,计算前后商户行为对比分析。
多个指标,采用联合,高维假设检验方式,来选出需要特别关注的异常行为商户。
(五)点评类外部数据源分析
(1)点评类数据获取,可以利用爬虫技术
比较常见的问题,商户在点评和美团账户上,预留的店铺名称和地址信息,和其在支付公司预留的信息不一致,
先把店铺信息以图片格式存储,采用深度学习模型,学习店铺地址和支付公司预留地址是否相同,就可以获取相应商户信息;
(2)根据获取到的商户信息进行数据分析
商户真实性,商户评分,
文本情感分析,评论热度分析,
同商圈竞争分析,同品类竞争分析,
分店铺数量,分店铺经营分析,
比如做同商圈和同品类的竞争分析,
商户存在商圈中,经营程度的好坏,也受到周围同品类的影响,利用双模网络来定位中心度,衡量有多少消费者,与其他消费者结合的紧密程度--紧密中心度;
中介中心度:2个商户中间,要经过最多/最近的那个店铺,粉丝度最高的店铺,也就是中心度高的商户。
小结:
各种搜索,加上浅显理解,做了简单的汇总。目前在理解业务和确定指标上,向前迈了一小步。获取数据集,特征处理和特征选取,做了基础含义理解,还需要结合case,深入理解原理。