如何使用ML.NET实现基于RFM模型的客户价值分析

技术如何使用ML.NET实现基于RFM模型的客户价值分析本篇文章为大家展示了如何使用ML.NET实现基于RFM模型的客户价值分析,内容简明扼要并且容易理解,绝对能使你眼前一亮,通过这篇文章的详细介绍希望你能有所收获。RF

本文向您展示了如何利用model实现基于RFM模型的客户价值分析。内容简洁易懂,一定会让你眼前一亮。希望通过这篇文章的详细介绍,你能有所收获。

RFM模型

在众多的客户价值分析模型中,RFM模型的应用非常广泛,尤其是在零售和企业服务领域,是一种经典的分类方法。其核心定义来源于基础交易数据,并借助合适的聚类算法,体现了对客户的直观分类说明。对于没有数据分析和机器学习技术支持的初创公司来说,这是分析客户的简单方法之一。

如何使用ML.NET实现基于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用于在原始数据中增加四个字段,即金额(单价和数量相乘的结果)、日期(发票日期的整数值)、今天(今天日期的整数值)和日期差异(今天和日期的差值)。

如何使用ML.NET实现基于RFM模型的客户价值分析

建立透视图,得到每个客户的金额之和,DateDiff的最大值和最小值,通过计算公式Amount/(DateDiff最大值-DateDiff最小值1)计算频率值。

如何使用ML.NET实现基于RFM模型的客户价值分析

根据以下规则计算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分。

如何使用ML.NET实现基于RFM模型的客户价值分析

有小伙伴可能存在疑问,为什么要这么划分,其实这就是对数据分布合理分段的一种思想,为了减小数据源的不平衡性对机器学习的影响,我们尽量使得数据的分布是自然的。
编码部分

还是熟悉的味道,创建DotNet Core控制台应用程序,通过Nuget添加对ML.NET的引用。

  • 创建用于学习的数据结构

如何使用ML.NET实现基于RFM模型的客户价值分析

训练部分

如何使用ML.NET实现基于RFM模型的客户价值分析

评估部分

如何使用ML.NET实现基于RFM模型的客户价值分析

预测部分

如何使用ML.NET实现基于RFM模型的客户价值分析

调用部分

如何使用ML.NET实现基于RFM模型的客户价值分析

运行结果

如何使用ML.NET实现基于RFM模型的客户价值分析

可以看到,我用于测试的客户,被分到了第2类上面。

尽管完成了聚类的工作,对于学习出来的这5个类别,仍然需要按原始数据集全部遍历预测出对应的分类,根据客户的RFM评分与分类的对应关系,才能够对每个类别的意义进行有效地解释。

这个简单的案例为大家展示了使用ML.NET完成聚类的机器学习。对于想要上手针对自己公司的业务,进行一些门槛较低的客户分析,使用ML.NET将是一个不错的选择。当然ML.NET还在不断迭代中,希望大家持续关注新的特性功能发布。

上述内容就是如何使用ML.NET实现基于RFM模型的客户价值分析,你们学到知识或技能了吗?如果还想学到更多技能或者丰富自己的知识储备,欢迎关注行业资讯频道。

内容来源网络,如有侵权,联系删除,本文地址:https://www.230890.com/zhan/79842.html

(0)

相关推荐

  • PyTorch中的数据并行处理是怎样的

    技术PyTorch中的数据并行处理是怎样的PyTorch中的数据并行处理是怎样的,针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易行的方法。通过 PyTorch 使用

    攻略 2021年12月4日
  • Python如何爬取抖音APP热点榜数据

    技术Python如何爬取抖音APP热点榜数据Python如何爬取抖音APP热点榜数据,很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所收获。今天给大家

    攻略 2021年10月26日
  • ADO.NET中如何使用连接模式访问数据库中的数据

    技术ADO.NET中如何使用连接模式访问数据库中的数据本篇内容介绍了“ADO.NET中如何使用连接模式访问数据库中的数据”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处

    攻略 2021年12月3日
  • 怎样使用HLAscan进行HLA分型

    技术怎样使用HLAscan进行HLA分型这篇文章将为大家详细讲解有关怎样使用HLAscan进行HLA分型,文章内容质量较高,因此小编分享给大家做个参考,希望大家阅读完这篇文章后对相关知识有一定的了解。HLAScan是由韩

    攻略 2021年11月10日
  • Python捕捉异常举例分析

    技术Python捕捉异常举例分析这篇文章主要讲解了“Python捕捉异常举例分析”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“Python捕捉异常举例分析”吧!1.pyt

    2021年12月8日
  • java的getclass方法(java中class使用方法)

    技术Java中的Object.getClass()怎么使用这篇文章主要介绍“Java中的Object.getClass()怎么使用”,在日常操作中,相信很多人在Java中的Object.getClass()怎么使用问题上

    攻略 2021年12月22日