文章目录

前言

客户体系标签计算

事实类标签计算

交易次数和交易总额

转账次数和转账总额

其它标签

规则类标签的计算

有无高端消费

是否休眠客户

RFM模型

R/F/M的值的计算

RFM总得分

RFM可视化分析

预测类标签的计算

one-hot编码

​编辑

连续性数值等频离散化

构建客户价值等级预测模型

客户价值等级分布

客户标签间的相关性

交叉表

客户价值等级与月均消费频度可视化

文本类标签的计算

文本标签的提取方法

交易附言合并

CountVectorizer词频矩阵计算

TfidfVectorizer词频矩阵计算

描绘用户画像

客户文本标签的分析

总结


前言

上一节我们实现了客户交易行为的分析,接下来进行客户体系标签计算


客户体系标签计算

事实类标签计算

交易次数和交易总额

我们的标签是针对用户的,所以要提取标签。所以需要做到的是一行数据就是一个用户id的数据。

新建user_features表,用于存放客户的标签,表的索引为user_id。每提取一个标签,就在user_features表中新增一列进行存放。再使用groupby()函数对data根据user_id进行分组,计算客户的交易次数和交易总金额,并将其结果分别存储到user_features表的total_transactions_cnt和total_transactions_amt列中。最后计算交易流水总额时需要将每笔交易金额取绝对值,再使用sum()方法进行求和。

转账次数和转账总额

接下来提取客户的转账类标签。使用关键字转账进行匹配,将客户有转帐行为的流水记录提取出来,针对转账记录我们再对其进行分析,计算客户的转账次数、转账总金额和转账平均金额。

对某一列Series对象进行关键词匹配(即判断文本中有没有这个词),首先要将此列的文本数据转换为Pandas中的string类型( pandas .core.strings ),接着使用contains()函数带入关键词进行匹配。

可以进一步操作:比如短时间内转账次数多且数额大,那存在异常,进行风险提示。也可根据转账次数划分客户

其它标签

消费行为是金额流出的过程,我们首先选取交易金额大于0的交易记录。但是在金额流出的行为中,"转账"、"提现"、"转入"、“还款"等行为并不属于消费,我们需要将其剔除。在此部分我们同样使用关键词匹配的方法对客户交易数据进行筛选,接着提取出客户的单次最大消费金额、消费订单比例等标签。

规则类标签的计算

在完成事实类标签后,我们开始提取规则类标签。规则类标签是在事实类标签的基础上,结合人工经验,对客户的某项指标进行的计算或归类,如定义高端消费需要人为规定阈值。在项目中,我们提取的规则类标签包括有无高端消费、是否休眠、RFM类等9个标签。

有无高端消费

随着客户可支配收入水平的升高,客户的消费偏好会发生变化。对某些中、高档商品的购买和消费量会增加,对低档消费品的需求减少,因此在这里我们对是否有高端消费进行定义,作为客户的一个标签。

之前已经计算了客户的最大消费金额,我们取所有最大消费金额的上四分位数作为阈值,如果客户的最大消费金额有大于该阈值,则将该客户定义为有高端消费,反之则无高端消费。

从图中可以看出high_consumption这一列为是否高消费,即0为低消费,1为高消费。

是否休眠客户

精准营销的另一个目标是激活“休眠"客户。所谓“休眠"客户,是指那些已经了解企业和产品,却还在消费与不消费之间徘徊的客户。

“休眠"客户对于企业的发展具有重大作用,调查显示“休眠"客户的消费能力是普通客户消费能力的3一5倍,甚至更高,而企业挖掘新客户的花费是“休眠"客户的8倍,所以唤醒休眠客户对企业开展精准营销具有重大意义。

取出每个客户的交易记录,设定交易次数的下四分位数为阈值,交易次数total_transactions_cnt 小于阈值的客户则视为休眠客户(1) ,交易次数大于等于阈值的客户则视为活跃客户(O)。

从图中可以看出,sleep_customers这一列为是否休眠客户,即都不是休眠客户。

RFM模型

Recency计算:即距离观察点的时间差。

预处理的过程中,将数据集的时间限定在2027附近。在RFM模型中,观察点的时间设为2027.1.1。那由此可以根据每笔交易时间计算最近天数。RFM模型的前提是提取只属于消费类的数据。之前已经计算过该数据:从data中选取金额流出的交易记录,在剔除转账、提现、还款、转入等记录即可


R/F/M的值的计算

上一步设定了日期的观察点,并计算了每笔交易距离观察点的距离天数。现在需要将交易记录根据客户进行分组,计算每个客户的RFM值。

RFM总得分

上一步已经通过分组和聚合运算得到了每个客户RFM的具体值,根据这三个指标,又可以把客户分别进行四等分,得到不同指标的评分阶梯,根据阶梯计算客户RFM总得分。

理论上来说,同等的资源投入的情况下,一名优质客户带来的回报将会是一般客户的5倍,可以推出,在资源有限的前提下,满足客户的顺序应该也是自上而下的。

R分值越低越好,F,M分值越高越好,说明图中的RFM值都不错。

RFM可视化分析

前面的步骤中,已经计算好了recency 、 frequency . monetary 以及其对应的得分,并得到了单个客户的RFM总得分Total_score,得分取值范围为3-12。现在我们可以将它们进行一些组合,可视化分析其中的一些规律。将每个Total_score的取值作为一个类别进行分组,统计不同Total_score下RFM的取值分布情况。

从图中可以看出,随着Total_Score的增大,recency的平均值逐渐减小,这也印证了较优质的客户群体,最近一次消费普遍较近,随着Total_Score的增大,frequency、monetary的平均值逐渐增大,这也印证了越优质的客户群体,消费频率和消费金额普遍越高。

预测类标签的计算

one-hot编码

在建立模型之前我们需要对已经提取的标签进行处理,对于有缺失的标签,我们需要进行填充。消费渠道consumption_channel列为离散型变量,我们统一将空值填充为othersPay ,代表其他消费渠道。其他为空值的列均为连续性变量,我们将这些空值填为0,代表客户不具有这部分的交易行为。缺失值的填充步骤为题目预先完成,接下来我们还要对标签做一些其他的处理,如字符型标签进行编码、连续性标签进行离散化等。标签处理完成后进行训练测试集划分,接着训练模型并通过模型预测客户价值等级。

以上所做的操作只是为了更好的建立模型来预测客户价值等级,原始客户标签表user_features中的数据应当保留,不进行性何的数据处理。客户等级标签预测完成后,将其合并作为user_featunes表的最后一列。

为了保持user_features中标签数据不变,我们在这里复制一份user_features,保存为表user_features_predict ,在建模过程中的操作均在user_features _predict表中.

连续性数值等频离散化

对数据进行离散化时,若每个区间的间隔是相等的,称作等距离散化。另外─种叫做等频离散化,它是指每个区间的样本数相同。可以发现对于该数据集,连续型数值多呈长尾分布,若用等距离散化会在分布较少的区域会分出很多无意义的区间,在这里需要对连续型数值进行等频离散化。

构建客户价值等级预测模型

训练测试集划分,使用score数据来进行测试集的划分。

查看缺失值

发现含有缺失值,需要将其填充

划分训练集和测试集并查看大小

构建模型:

可以看出构建模型的准确度为98.36065,可以说准确率较高,模型比较优质。

客户价值等级分布

上一步建立了逻辑回归模型,并在测试集上进行了检验,达到了98%的准确率,并将数据整体合并保存在user_features表中。接下来通过可视化的方式来观察一下客户价值等级的数量分布。

客户标签间的相关性

对客户价值等级进行预测后,,现在分析一下各标签之间的关联程度,使用皮尔森相关系数来计算不同标签之间的相关性。皮尔森相关系数是用来反映两个变量线性相关程度的统计量,是一种线性相关系数,一般用r表示。r的取值在-1与+1之间。

若r>0,表明两个变量是正相关,即一个变量的值越大,另一个变量的值也会越大。

若r<0,表明两个变量是负相关,即一个变量的值越大另一个变量的值反而会越小。

r的绝对值越大表明相关性越强。在标签数较多的情况下,选取其中明显的几个标签,计算其相关性并使用热力图表示:

交叉表

在上一步中发现是否拥有高端消费( high_consumption )与客户价值等级(user_potential )之间的相关性较高。接下来来观察一下在有高端消费和无高端消费的人群中,不同客户价值等级的人数分布。

对于这种多重分组计算个数的问题,我们通常使用交叉表来计算。交叉表是一种常用的分类汇总表格,用于频数分布统计。

从图中可以看出:清晰可见在无高端消费的人群中,高价值等级客户的占比较小;在有高端消费的人群中,高价值等级客户的占比更多;说明客户价值等级高的群体更倾向买贵的物品。

客户价值等级与月均消费频度可视化

月均消费频度可视化

通过结果我们可以看到不论客户等级,其月均消费频度都在[60,75]区间内占比较多。在月均消费频度较低的区间内,低价值客户占比相对较多;在月均消费频度较高的区间内,高价值客户占比逐渐提升,说明高价值客户偏向于有更多的消费需求。

文本类标签的计算

文本标签的提取方法

在前面的步骤中,已经根据客户的交易记录建立了事实类标签,根据一些设定的规则建立了规则类标签,同时也建立模型预测了客户价值等级。接下来,我们要从每个客户的交易附言中提取文本标签。

在之前已经进行了文本预处理,具体步骤如下:

中文文本分词:将中文的句子切分成有意义的词语。

去除停用词:根据事先设置好的停用词,规避掉一些特殊符号或者常用但无意义的词语。

交易附言合并

先找出交易附言

CountVectorizer词频矩阵计算

采用CountVectorizer模型提取词频矩阵。首先我们在原有停用词的基础上再引入一些其他停用词,将有限公司、交易、转账、消费、余额、提现等词语归于停用词,以便计算出的词能更好的反映用户真实的消费特征。停用词已预先读入,保存在变量stop_words_list中。

可以得到稀疏矩阵如上图所示

第0条,记录中索引为36的词在文本中出现1次,即词频为1

输出稀疏矩阵的关键词如下图所示:

TfidfVectorizer词频矩阵计算

接下来采用TfidfVectorizer模型提取词频矩阵。在TfidfVectorizer模型中,还是通过设置参数min_df . max_df来控制某个词最小/最大的出现次数,设置max_feates=100 代表最终输出的关键词为100个。和CountVectorizer模型类似,TfidfVectorizer模型也通过get_feature_names()查看所有文本的关键字,通过toarray()查看词频矩阵的结果。

将提取出来的文本标签的词频矩阵和features表合并

描绘用户画像

在提取完了客户标签之后,我们来深入分析一下客户的行为特点。

首先选取其中交易次数( total_transactions_cnt )最多的客户进行分析。

选出该典型客户后,可以通过绘制交易附言的词云图展示客户的大致画像。

绘制出来的词云图如下图所示:

从词云图中可以看出,出现了很多交方式易的慈云,如支付宝、微信、现金,分期付款等,可以大致推断客户经常接触此类商品,可能从事银行金融方面的工作。

客户文本标签的分析

对该客户的交易流水进行可视化分析以后,我们可以对其进行文本特征的分析。在前面我们已经使用TfidfVectorizer模型提取了文本标签的tf-idf值,保存在了user_features表中。我们可以取出该客户文本标签的tf-idf值,将文本标签按tf-idf值由大到小进行排序,分析其行为特点。

选取id为145的文本标签

接下来进行客户数值标签的分析:

从交易附言可以看出,支付宝和网银较多,推测出该用户大概率为银行员工。

总结

本节进行了各户标签体系的构建,下一节将进行精准营销的应用。

大数据精准营销应用(三)相关推荐

  1. 大数据精准营销应用(一)

    文章目录​​​​​​​ 前言 一.精准营销简介 二.大数据精准营销过程 三.大数据精准营销方式 四.项目目标 五.项目流程 六.数据的处理​​​​​​​ 数据的预览 数据的读取 数据的解析 数据预处理 ...

  2. 大数据精准营销:买水培栀子花该推送啥

    文章讲的是大数据精准营销:买水培栀子花该推送啥,要说作为一个媒体人,每天对着电脑是常态,早晨上班到晚上下班,电脑对媒体人而言,比手机都亲,于是笔者也预备做个防辐射措施,买盆栀子花,一是心想真的能吸收一 ...

  3. 基于Spark的大数据精准营销中搜狗搜索引擎的用户画像挖掘

    重磅推荐专栏: <Transformers自然语言处理系列教程> 手把手带你深入实践Transformers,轻松构建属于自己的NLP智能应用! 转载请注明:转载 from http:// ...

  4. 运营商大数据精准营销获客的优点

    谈起精准营销,咱们自己的竞争对手群体,直接就是为我们提供精准客源渠道的最大资源池! 现阶段最新的获客方式,就是从竞争对手的手中把他们的精准客户资源变为自己的. 2022年最火的运营商大数据精准营销是拒 ...

  5. 大数据精准营销|七大关键要素

    说到大数据精准营销,不得不提到精准营销的关键要素,今天我们就来分享一下大数据精准营销的七个关键要素! 01用户画像 用户画像是根据用户社会属性.生活习惯和消费行为等信息而抽象出的一个标签化的用户模型. ...

  6. 转 基于Spark的大数据精准营销中搜狗搜索引擎的用户画像挖掘

    转载请注明:转载 from http://blog.csdn.net/u011239443/article/details/53735609  近期参加了CCF举办的"大数据精准营销中搜狗用 ...

  7. 大数据精准投放平台_大数据精准营销+全媒体精准投放+信息流广告=真实有效得客户...

    原标题:大数据精准营销+全媒体精准投放+信息流广告=真实有效得客户 什么是信息流? 信息流广告的投放特点是个性化投放,可以通过筛选APP去做精准投放.信息流依托海量的用户数据和信息流生态体系,可精准捕 ...

  8. 大数据精准营销有哪些特性呢?

    随着互联网的发展,搜索引擎的出现极大地方便了人们的上网体验.我们习惯了第一时间在搜索引擎上搜索,当我们遇到我们不理解的问题,或者不知道我们习惯的事情,希望得到解答.在搜索引擎中通过输入关键词进行搜索, ...

  9. 未来大数据精准营销构想 一个合格的DMP平台要具备哪些条件?

    随着互联网技术的发展,大数据已经不是一个概念,数据商业化在近几年真正影响着行业的发展和人们的生活的方方面面,在数据技术的驱动下,数字营销已经能够帮组企业更广泛更精准的覆盖人群,DMP 这个词对于广告主 ...

  10. 大数据精准营销发展趋势如何,为什么能够做到精准营销?

    企业可以通过大数据分析最近客户在网上喜欢看什么内容?喜欢去哪些网站?他们最关注的是产品的哪一个点的需求,只要了解客户的真正需求,我们就可以很准确地判断潜在市场的大小及产品设计生产成什么样,小走很多的弯 ...

最新文章

  1. ubuntu配置jdk环境
  2. centos7卸载mysql数据库,CentOS7 安装卸载MySQL
  3. Windows上SVN服务器搭建【转】
  4. 计算机操作系统-详细版-王道
  5. Visual Studio 2015的破解密钥
  6. OpenGL--纹理贴图基础
  7. 【菜鸟练习】软件测试等价类划分方法测试用例的编写。
  8. Redis 通过mset提速查询
  9. Web前端面试 面试官常问问题
  10. 支付宝扫码转银行卡技术/隐藏部分卡号
  11. Combo用户板中XG-PON资源利用率的提升方案
  12. 山东高速资产注入承诺何时兑现 期待画饼成真
  13. linux系统fasta程序,Linux生信练习2--fastq/fasta
  14. 王立柱《c语言》3.5.4
  15. python输入一个小数,提取整数部分
  16. 一步步教你怎么用python写贪吃蛇游戏!
  17. mug网络用语_游戏术语
  18. Python语言程序设计(MOOC崇天)第三章基本数据类型学习笔记(天天向上的力量+文本进度条)
  19. CAD使用天正打开可能引起索引色对应的RGB值变化
  20. 面向对象学不会看不懂?一文详解面向对象知识点总结

热门文章

  1. 谭浩强c语言不讲位运算呢,谭浩强C语言_CHAR12位运算.DOC
  2. 软件测试人员的素质要求
  3. 用电子计算机控制海洋牧场,教师用书2016 2017学年高中地理第2单元开发海洋资源第3节海洋生物资源及其开发整合提升.doc...
  4. JavaScript高级程序设计第四版_英文版
  5. .Net neatupload上传控件实现文件上传的进度条
  6. 自动控制原理3.2---一阶系统的时域分析
  7. SQL Server 中日期比较
  8. excel一列多行数据合并、一行多列合并
  9. Jupyter Nptebook里面的这几个知识点你知道吗
  10. log.io:浏览器端实时日志监管系统