本文向您展示了如何利用model实现基于RFM模型的客户价值分析。内容简洁易懂,一定会让你眼前一亮。希望通过这篇文章的详细介绍,你能有所收获。
RFM模型
在众多的客户价值分析模型中,RFM模型的应用非常广泛,尤其是在零售和企业服务领域,是一种经典的分类方法。其核心定义来源于基础交易数据,并借助合适的聚类算法,体现了对客户的直观分类说明。对于没有数据分析和机器学习技术支持的初创公司来说,这是分析客户的简单方法之一。
RFM模式有三个主要指标:
最近:最新消费区间
频率:消费频率
货币:消费金额
如果我们根据这三个指标对客户进行评分,总共会有27种可能的组合。通过使用K-Means算法,可以将其减少到指定的有限数量的箱(一般为五类),并可以计算每个客户在箱中的位置,即客户价值。
当然,RFM模式还有更多衍生版本。你可以参考维基:RFM(顾客价值)。
ML.NET和K-Means
ML.NET从v0.2开始提供了K-Means聚类的实现,也是最常见的无监督学习的训练,正好适合机器学习对于RFM模型的分类。
00-1010
动手实践
Visual Studio 2017或Visual Studio代码
DotNet Core 2.0
ML。NET v0.3
基本要求
本案数据来源于UCI:在线零售,这是一个跨国数据集,包含2010年12月1日至2011年12月9日在英国注册的非门店在线零售业务的所有交易。该公司主要为全体观众销售独特的礼物。该公司的许多客户都是批发商。
属性信息:
发票号:发票号。标称值,为每个事务唯一分配的6位整数。如果该代码以字母“c”开头,则表示取消。
代码:产品(项目)代码。标称值,为每个不同产品唯一指定的5位整数。
描述:产品(项目)名称。名义上。
数量:每个交易中每个产品(项目)的数量。数字。
发票日期:发票日期和时间。用于生成每个交易的日期和时间的数字。
单价:单价。数量,单位产品的磅价。
CustomerID:客户编号。标称值,一个唯一分配给每个客户的5位整数。
国家:国家名称。每个客户所在国家的名称。
00-1010 Excel用于在原始数据中增加四个字段,即金额(单价和数量相乘的结果)、日期(发票日期的整数值)、今天(今天日期的整数值)和日期差异(今天和日期的差值)。
建立透视图,得到每个客户的金额之和,DateDiff的最大值和最小值,通过计算公式Amount/(DateDiff最大值-DateDiff最小值1)计算频率值。
根据以下规则计算RFM的分数
R: (datediff最大值-DateDiff最小值-2000)差值,小于480为3分,480和570之间为2分,570和750之间为1分,大于750为0分。
f:频率值:大于1000时5分,在500到1000之间时4分,在100到500之间时3分,在50到100之间时2分,在0到50之间时1分,小于0时0分。
M:M:金额之和值,大于10000,5分,5000-10000之间4分,2000-5000之间3分,1000-2000之间2分,0-1000。
之间计1分,小于0计0分。
有小伙伴可能存在疑问,为什么要这么划分,其实这就是对数据分布合理分段的一种思想,为了减小数据源的不平衡性对机器学习的影响,我们尽量使得数据的分布是自然的。
编码部分
还是熟悉的味道,创建DotNet Core控制台应用程序,通过Nuget添加对ML.NET的引用。
-
创建用于学习的数据结构
训练部分
评估部分
预测部分
调用部分
运行结果
可以看到,我用于测试的客户,被分到了第2类上面。
尽管完成了聚类的工作,对于学习出来的这5个类别,仍然需要按原始数据集全部遍历预测出对应的分类,根据客户的RFM评分与分类的对应关系,才能够对每个类别的意义进行有效地解释。
这个简单的案例为大家展示了使用ML.NET完成聚类的机器学习。对于想要上手针对自己公司的业务,进行一些门槛较低的客户分析,使用ML.NET将是一个不错的选择。当然ML.NET还在不断迭代中,希望大家持续关注新的特性功能发布。
上述内容就是如何使用ML.NET实现基于RFM模型的客户价值分析,你们学到知识或技能了吗?如果还想学到更多技能或者丰富自己的知识储备,欢迎关注行业资讯频道。
内容来源网络,如有侵权,联系删除,本文地址:https://www.230890.com/zhan/79842.html