一、电商RFM模型

RFM模型是一个简单的根据客户的活跃程度和交易金额贡献所做的分类。因为操作简单,所以较为常用。

近度R:R代表客户最近的活跃时间距离数据采集点的时间距离,R越大,表示客户越久未发生交易,R越小,表示客户越近有交易发生。R越大则客户越可能会“沉睡”,流失的可能性越大。在这部分客户中,可能有些优质客户,值得公司通过一定的营销手段进行激活。

频度F:F代表客户过去某段时间内的活跃频率。F越大,则表示客户同本公司的交易越频繁,不仅仅给公司带来人气,也带来稳定的现金流,是非常忠诚的客户;F越小,则表示客户不够活跃,且可能是竞争对手的常客。针对F较小、且消费额较大的客户,需要推出一定的竞争策略,将这批客户从竞争对手中争取过来。

额度M:表示客户每次消费金额的多少,可以用最近一次消费金额,也可以用过去的平均消费金额,根据分析的目的不同,可以有不同的标识方法。一般来讲,单次交易金额较大的客户,支付能力强,价格敏感度低,是较为优质的客户,而每次交易金额很小的客户,可能在支付能力和支付意愿上较低。当然,也不是绝对的。

通过RFM分析将客户群体划分成一般保持客户、一般发展客户、一般价值客户、一般挽留客户、重要保持客户、重要发展客户、重要价值客户、要挽留客户等八个级别。

对于传统RFM模型,根据3个指标,划分8个客群,进行精细化运营、营销、管理。

二、MRC模型

根据RFM模型,整理线下支付机构最关注的指标,发现频次意义较小,线下支付机构主要靠商户端的套现手续费盈利。保留R、M,新增C指标,定义为笔均x贷记卡笔数占比。

从取数,到统计展示,做简单的过程梳理、记录。

1、取数

---支付机构MRC模型
select
t1.pos_sn,
t1.amt 总交易量,
ceil(sysdate - t1.maxday) 最后交易距今天数,
trunc((t1.amt/t1.cot)*(t1.credcot/t1.cot),0) 笔均x贷记卡笔占比,
t1.cot 笔数,
trunc(t1.amt/t1.cot,0) 笔均,
t1.credcot 贷记卡笔数,
trunc(t1.credcot/t1.cot,3) 贷记卡笔数占比,
p.agent_no 所属代理
from
(select ptd.pos_sn,max(ptd.order_time) maxday,sum(ptd.trans_amount) amt,
sum(ptd.trans_num) cot,
sum(case when ptd.card_type in ('CREDIT_CARD','SEMI_CREDIT_CARD') then ptd.trans_num else 0 end) credcot
from posp_boss.pos_trans_day ptd
group by ptd.pos_sn)t1
left join posp_boss.pos p on p.pos_sn = t1.pos_sn
where p.deposit_flg = 1 ---and pos.type = 'MF90'
order by t1.amt desc,ceil(sysdate - t1.maxday)

使用Oracle数据库,已有按聚合的机具日交易量表,取出关键指标。

2、分析

由于数据量超过40万,用EXCEL分析较为卡顿,使用python 进行统计展示。

               总交易量       最后交易距今天数      笔均X贷记卡笔占比
count 4.241090e+05 424109.000000 424109.000000
mean 5.513364e+05 46.862840 5105.828933
std 1.013319e+06 65.365966 4705.183574
min 1.000000e-02 2.000000 0.000000
25% 4.020922e+04 4.000000 1782.000000
50% 2.099190e+05 13.000000 3864.000000
75% 6.919676e+05 68.000000 7015.000000
max 4.194847e+07 372.000000 95453.000000

用简单的K均值聚类尝试分群

import pandas as pd
import numpy as np
from sklearn.cluster import KMeans
mrc = pd.read_csv("C:/Users/wangd/Desktop/MRC.csv")
mrc.head()
mrc.iloc[:,1:4].describe()
#转化为数组
km = np.array(mrc.iloc[:,1:4])
#设置随机数
seed=9
#对数据进行聚类
clf=KMeans(n_clusters=8,random_state=seed)
#拟合模型
clf=clf.fit(km)
#查看聚类质心点
clf.cluster_centers_
#对原数据表进行类别标记
mrc['label']= clf.labels_
#查看标记后的数据
mrc.head()
#计算每个类别的数据量
c=mrc["label"].value_counts()
array([[8.23851049e+04, 5.19385405e+01, 3.62929498e+03],
[3.57622006e+06, 5.53870694e+01, 7.05173435e+03],
[1.08953507e+06, 4.87523004e+01, 7.16840196e+03],
[1.04298146e+07, 6.42577938e+01, 5.69444724e+03],
[2.02866108e+06, 4.90190455e+01, 7.49004477e+03],
[4.96078891e+05, 3.00557403e+01, 6.84247185e+03],
[1.97803666e+07, 6.25615385e+01, 6.66596154e+03],
[6.13333712e+06, 6.27500000e+01, 6.26144459e+03]])

import matplotlib.pyplot as plt
from mpl_toolkits.mplot3d import Axes3D
from pylab import * 
mpl.rcParams['font.sans-serif'] = ['SimHei'] 

fig = plt.figure()
ax = Axes3D(fig)
ax.scatter(mrc['总交易量'],mrc['最后交易距今天数'],mrc['笔均X贷记卡笔占比'])

# 设置坐标轴显示以及旋转角度
ax.set_xlabel('总交易量')
ax.set_ylabel('最后交易距今天数')
ax.set_zlabel('笔均X贷记卡笔占比')
plt.show()
 
from sklearn import tree
clf = tree.DecisionTreeClassifier()
clf = clf.fit(mrc.iloc[:,1:4], mrc['label'])
from sklearn.externals import joblib
#保存模型
#joblib.dump(clf,'clf.model')
#加载模型
clf=joblib.load('clf.model')
from sklearn import tree
import pydotplus
from IPython.display import Image 
dot_data = tree.export_graphviz(clf, out_file=None,
                         #feature_names=['amount','recent','averper'], 
                         #class_names=['class'], 
                         filled=True, rounded=True, 
                         special_characters=True) 
graph = pydotplus.graph_from_dot_data(dot_data) 
Image(graph.create_png()) 

分类效果解读稍繁琐,也需要交叉验证。接下来尝试传统的三分法。

支付机构MRC模的更多相关文章

  1. 第三方支付设计——账户体系

    第三方支付架构设计之-帐户体系 一,      什么是第三方支付?         什么是第三方支付?相信很多人对这个名字很熟悉,不管是从各种媒体等都经常听到,可以说是耳熟能熟.但,如果非得给这个名词 ...

  2. python -django 之第三方支付

    神魔是第三方支付: 第三方支付是指具有一定实力和信誉保障的第三方独立机构.通过与各大银行签订合同,建立连接用户和银行支付结算系统的平台,从而实现电子支付模式.从另一个角度来看,第三方支付就是非金融机构 ...

  3. 微信公众号支付(JSAPI)对接备忘

    0 说明 本文里说的微信公众号支付对接指的是对接第三方支付平台的微信公众号支付接口. 非微信支付官方文档里的公众号支付开发者文档那样的对接.不过,毕竟腾讯会把一部分渠道放给银行或有支付牌照的支付机构, ...

  4. Extract - <<凤凰牌老熊-现代支付系统设计>>

    本文摘录自: http://blog.lixf.cn/essay/2017/04/01/concept-01-overview/ 一.支付概述-- 1. 支付与交易 交易过程: 交易的存在是支付发生的 ...

  5. springboot+支付宝条码支付开发详解

    背景:项目原有乐刷聚合支付,无法参加支付宝.微信等支付机构的官方活动 需求:增加原生支付(支付宝条码支付) 方法: 一.官方文档:https://docs.open.alipay.com/194/10 ...

  6. Java生鲜电商平台-商家支付系统与对账系统架构实战

    Java生鲜电商平台-商家支付系统与对账系统架构实战 说明:关于生鲜电商平台,支付系统是连接消费者.商家(或平台)和金融机构的桥梁,管理支付数据,调用第三方支付平台接口,记录支付信息(对应订单号,支付 ...

  7. 【零基础】为什么Facebook发币就不一样

    参考: https://baijiahao.baidu.com/s?id=1637182596912694597&wfr=spider&for=pc https://blog.csdn ...

  8. 解析 csv文件 java ***最爱那水货

    /** * csv文件解析 <br> * wx 微信明细数据 第1行是标题 ,最后2行 是总结 提取数据需要过滤<br> * zfb 支付宝明细数据 前4行 和最后4行是总结 ...

  9. 移动POS机

    1.怎么识别手刷机所属公司是否是二清公司,甚至是多清 去银行,手机银行,网上银行查询该笔款是哪里汇出的,如果是银行或合法支付公司汇出,一般为一清机,如果是个人或无支付牌照的支付公司,一般为二清机: 已 ...

随机推荐

  1. cdh 安装步骤

    http://www.cnblogs.com/jasondan/p/4011153.html 关于CDH和Cloudera Manager CDH (Cloudera's Distribution, ...

  2. Anisotropic Specular Shader

    [Anisotropic Specular] Anisotropic Specular(各向异性反射)模拟表面凹槽的方向性.就像CD表面一样.CD的表面凹槽是有方向的. BlinnPhong中Spec ...

  3. 06.Lucen入门程序-Field

    需求: 实现一个歌词搜索系统,通过关键字搜索,凡是文件名或文件内容包括关键字的文件都要找出来. 注意:该入门程序只对文本文件(.txt)搜索. Lucene中包含两个重要的类: IndexWriter ...

  4. 【总结整理】自带天气app,为什么还要下载

    很简单那就说明用户对天气这个功能的需求并没有表面那么简单呗,还有更深层次的需求~ 先声明我自己是没有这方面需求的,我就纯属YY一下 既然数据都一样的话,那是什么让用户觉得天气APP更专业呢? 1.历史 ...

  5. 如何用shell脚本执行或关闭jar包服务?

    现在springboot很流行,但是大家都知道springboot是以jar包的方式进行打包的,那样就少不了开启或关闭服务的操作了,但是命令方式未免过于繁琐. 下面记录shell脚本的方式启动或关闭服 ...

  6. sqlserver 时间函数用法

    1.DATEADD(datepart,number,date) 现在,我们希望向 "OrderDate" 添加 2 天,这样就可以找到付款日期,我们使用如下 SELECT 语句: ...

  7. Python手机开发调用DLL实现部分ADB功能-乾颐堂

    近期学了一点Python,然后正好有一个手机同步工具方面的预研工作要完成. 要实现PC与手机的通信,首先要找到他们的通信协议,还好的是Android有完善的协议:ADB ADB的代码是开源的,而且支持 ...

  8. java 获取 获取某年某月 所有日期(yyyy-mm-dd格式字符串)

    总结一些日期常用的代码,方便以后直接拿 <code> /** * java 获取 获取某年某月 所有日期(yyyy-mm-dd格式字符串) * @param year * @param m ...

  9. 并发编程CAS操作

    并发编程CAS操作 简介 CAS即compare and swap,中文就是比较并交换 CAS是Java并发包的基石 原理 其实CAS的原理相对来说比较简单.将要被改变的数据和期望的值作比较,当两个值 ...

  10. python 中面向对象编程简单总结2

    1.python中继承的特点: (1)总是从一个类继承,默认为object类 (2)不要忘记调用super.__init__方法来初始化父类的方法 def __init__(self,args): s ...