【SPSS】基于RFM+Kmeans的电商客户价值聚类分析

🤵‍♂️ 个人主页:@艾派森的个人主页

✍🏻作者简介:Python学习者
🐋 希望大家多多支持,我们一起进步!😄
如果文章对你有帮助的话,
欢迎评论 💬点赞👍🏻 收藏 📂加关注+


目录

1.项目背景

2.项目简介

2.1分析目标

2.2数据说明

3.算法理论

4.实验步骤

4.1数据探索

4.2构建RFM模型

4.3聚类分群

5.总结


摘要

电子商务服务业属于电子商务生态系统中的重要组成部分,经过近十年的迅猛发展,在物流快递、在线支付和电子认证等服务业发展推动下,电子商务服务业快速发展。2020年中国电子商务服务业营业收入达5.45万亿元,较2019年增加了0.98万亿元,同比增长21.9%。2020年受新冠肺炎疫情冲击,线下遭遇关店潮,线上服务需求迅速增长。直播购物、网上支付、无接触式配送、上门退货等成为疫情下消费者网购的“新常态”,商家对于IT解决方案、新型营销服务、专业运营服务、物流服务的需求直线上升。随着电商的快速发展,行业竞争也越来越激烈,客户就是上帝,商家只有牢牢抓住客户,才能在行业中站住立脚,对客户进行分群,针对不同的客户群体特征制定不同的营销策略,实现收益最大化。本次实验使用聚类分析对电商客户价值进行分析。

1.项目背景

随着电商的不断发展,网上购物变得越来越流行。更多电商平台崛起,对于电商卖家来说增加的不只是人们越来越高的需求,还要面对更多强大的竞争对手。面对这些挑战,就需要能够及时发现店铺经营中的问题,并且能够有效解决这些实际的问题,从而提升自身的竞争力。

根据已有数据对店铺整体运营情况进行分析,了解运营状况,对未来进行预测,已经成为电商运营必不可少的技能。

2.项目简介

2.1分析目标

使用RFM模型+聚类算法对电商客户进行分群,进行精准营销。

2.2数据说明

数据来源于数据科学竞赛平台Kaggle总共1591条数据,4个字段。详情见下表。

字段名

字段描述

Customer ID

客户的ID

消费频率

客户在本超市累计消费的次数

最近消费时间间隔

上一次消费距今的时间差

消费金额

客户累计的消费金额

3.算法理论

聚类,即将物理或抽象对象的集合分成由类似的对象组成的多个类的过程。由聚类所生成的簇是一组数据对象的集合,这些对象与同一个簇中的对象彼此相似,与其他簇中的对象相异。聚类分析又称群分析,它是研究(样品或指标)分类问题的一种统计分析方法。聚类分析起源于分类学,但是聚类不等于分类。聚类与分类的不同在于,聚类所要求划分的类是未知的。聚类分析内容非常丰富,有系统聚类法、有序样品聚类法、动态聚类法、模糊聚类法、图论聚类法、聚类预报法等。在数据挖掘中,聚类也是很重要的一个概念。传统的聚类分析计算方法主要有划分方法、层次方法、基于密度的方法、基于网格的方法、基于模型的方法五种。

聚类的目的是把数据分类,但是事先我们不知道如何去分,完全是靠算法判断数据之间的相似性,相似的就放在一起。

K-means算法原理
k-means算法是一种简单的迭代型聚类算法,采用距离作为相似性指标,从而发现给定数据集中的K个类,且每个类的中心是根据类中所有值的均值得到,每个类用聚类中心来描述。对于给定的一个包含n个d维数据点的数据集X以及要分得的类别K,选取欧式距离作为相似度指标,聚类目标是使得各类的聚类平方和最小,即最小化:

结合最小二乘法和拉格朗日原理,聚类中心为对应类别中各数据点的平均值,同时为了使得算法收敛,在迭代过程中,应使最终的聚类中心尽可能的不变。

K-means是一个反复迭代的过程,算法分为四个步骤:

1)选取数据空间中的K个对象作为初始中心,每个对象代表一个聚类中心;

2)对于样本中的数据对象,根据它们与这些聚类中心的欧氏距离,按距离最近的准则将它们分到距离它们最近的聚类中心(最相似)所对应的类;

3)更新聚类中心:将每个类别中所有对象所对应的均值作为该类别的聚类中心,计算目标函数的值;

4)判断聚类中心和目标函数的值是否发生改变,若不变,则输出结果,若改变,则返回2)。

传统的聚类分析计算方法主要有如下几种:

 1、划分方法(partitioning methods)

给定一个有N个元组或者纪录的数据集,分裂法将构造K个分组,每一个分组就代表一个聚类,K聚类算法中可以放宽);对于给定的K,算法首先给出一个初始的分组方法,以后通过反复迭代的方法改变分组,使得每一次改进之后的分组方案都较前一次好,而所谓好的标准就是:同一分组中的记录越近越好,而不同分组中的纪录越远越好。使用这个基本思想的算法有:K-MEANS算法、K-MEDOIDS算法、CLARANS算法;

 2、层次方法(hierarchical methods)

这种方法对给定的数据集进行层次似的分解,直到某种条件满足为止。具体又可分为“自底向上”和“自顶向下”两种方案。例如在“自底向上”方案中,初始时每一个数据纪录都组成一个单独的组,在接下来的迭代中,它把那些相互邻近的组合并成一个组,直到所有的记录组成一个分组或者某个条件满足为止。代表算法有:BIRCH算法、CURE算法、CHAMELEON算法等;

 3、基于密度的方法(density-based methods)

基于密度的方法与其它方法的一个根本区别是:它不是基于各种各样的距离的,而是基于密度的。这样就能克服基于距离的算法只能发现“类圆形”的聚类的缺点。这个方法的指导思想就是,只要一个区域中的点的密度大过某个阈值,就把它加到与之相近的聚类中去。代表算法有:DBSCAN算法、OPTICS算法、DENCLUE算法等;

 4、基于网格的方法(grid-based methods)

这种方法首先将数据空间划分成为有限个单元(cell)的网格结构,所有的处理都是以单个的单元为对象的。这么处理的一个突出的优点就是处理速度很快,通常这是与目标数据库中记录的个数无关的,它只与把数据空间分为多少个单元有关。代表算法有:STING算法、CLIQUE算法、WAVE-CLUSTER算法;

 5、基于模型的方法(model-based methods)

基于模型的方法给每一个聚类假定一个模型,然后去寻找能够很好的满足这个模型的数据集。这样一个模型可能是数据点在空间中的密度分布函数或者其它。它的一个潜在的假定就是:目标数据集是由一系列的概率分布所决定的。通常有两种尝试方向:统计的方案和神经网络的方案。

当然聚类方法还有:传递闭包法,布尔矩阵法,直接聚类法,相关性分析聚类,基于统计的聚类方法等。

可伸缩性:许多聚类算法在小于 200 个数据对象的小数据集合上工作得很好;但是,一个大规模数据库可能包含几百万个对象,在这样的大数据集合样本上进行聚类可能会导致有偏的结果。我们需要具有高度可伸缩性的聚类算法。

处理不同类型属性的能力:许多算法被设计用来聚类数值类型的数据。但是,应用可能要求聚类其他类型的数据,如二元类型(binary),分类/标称类型(categorical/nominal),序数型(ordinal)数据,或者这些数据类型的混合。

发现任意形状的聚类:许多聚类算法基于欧几里得或者曼哈顿距离度量来决定聚类。基于这样的距离度量的算法趋向于发现具有相近尺度和密度的球状簇。但是,一个簇可能是任意形状的。提出能发现任意形状簇的算法是很重要的。

用于决定输入参数的领域知识最小化:许多聚类算法在聚类分析中要求用户输入一定的参数,例如希望产生的簇的数目。聚类结果对于输入参数十分敏感。参数通常很难确定,特别是对于包含高维对象的数据集来说。这样不仅加重了用户的负担,也使得聚类的质量难以控制。

处理“噪声”数据的能力:绝大多数现实中的数据库都包含了孤立点,缺失,或者错误的数据。一些聚类算法对于这样的数据敏感,可能导致低质量的聚类结果。

对于输入记录的顺序不敏感:一些聚类算法对于输入数据的顺序是敏感的。例如,同一个数据集合,当以不同的顺序交给同一个算法时,可能生成差别很大的聚类结果。开发对数据输入顺序不敏感的算法具有重要的意义。

高维度(high dimensionality):一个数据库或者数据仓库可能包含若干维或者属性。许多聚类算法擅长处理低维的数据,可能只涉及两到三维。人类的眼睛在最多三维的情况下能够很好地判断聚类的质量。在高维空间中聚类数据对象是非常有挑战性的,特别是考虑到这样的数据可能分布非常稀疏,而且高度偏斜。

基于约束的聚类:现实世界的应用可能需要在各种约束条件下进行聚类。假设你的工作是在一个城市中为给定数目的自动提款机选择安放位置,为了作出决定,你可以对住宅区进行聚类,同时考虑如城市的河流和公路网,每个地区的客户要求等情况。要找到既满足特定的约束,又具有良好聚类特性的数据分组是一项具有挑战性的任务。

可解释性和可用性:用户希望聚类结果是可解释的,可理解的,和可用的。也就是说,聚类可能需要和特定的语义解释和应用相联系。应用目标如何影响聚类方法的选择也是一个重要的研究课题。

4.实验步骤

4.1数据探索

首先使用SPSS导入本次实验的数据集

查看各变量的基本情况

查看数据描述性统计

从数据描述性统计结果中可以看出变量个案总数、最大最小值、个案总和、均值、标准差、方差、偏度、峰度等信息。

查看消费频率、最近消费时间间隔、消费金额分布情况                   

从上面三个分布直方图可以看出数据都是近似服从正态分布的。

查看消费频率和消费金额的相关性

从肯德尔和斯皮尔曼的相关系数和概率P值可以看出消费频率和消费金额具有正向相关关系且相关关系很显著。

4.2构建RFM模型

      目前几乎所有企业业务都是以客户的需求为主导,都希望服务好客户,促进销售转化,最好能让客户对产品和品牌产生黏性,长期购买。于是市场和运营人员都会绞尽脑汁的做活动、上新品、蹭热点、做营销,不断地拓展客户和回访以维系客户感情。但是,这些工作除了少数运气好的之外,大部分效果都不是很好,真正有价值的客户没有几个。不同阶段、不同类型的客户需求点不同,有的客户图便宜,有的客户看新品,有的客户重服务,粗狂式的营销运营方法最后的结果往往都是事与愿违,企业的资源利润无法发挥其最大效用去创造最大化的利润。

     那么如何进行客户价值分析,甄选出有价值的客户,让企业精力集中在这些客户上,有效地提升企业竞争力使企业获得更大的发展呢?解决的方法很简单,就是客户精细化运营。通过各类运营手段提高不同类型的客户在产品中的活跃度、留存率和付费率。而如何将客户从一个整体拆分成特征明显的群体决定了运营的成败。在客户价值领域,最具有影响力并得到实证验证的理论与模型有: 客户终生价值理论、客户价值金字塔模型、策论评估矩阵分析法和RFM客户价值分析模型等。这里介绍一个最经典的客户分群模型,即RFM模型。

RFM的含义如下:

1)R(Recency):客户最近一次交易时间的间隔。R值越大,表示客户交易发生的日期越久,反之则表示客户交易发生的日期越近。

2)F(Frequency):值越大,表示客户交易越频繁,反之则表示客户交易不够活跃。

3)M(Monetary):客户在最近一段时间内交易的金额。M值越大,表示客户价值越高,反之则表示客户价值越低。

RFM模型是衡量客户价值和用户创利能力的经典工具,依托于客户最近一次购买时间、消费频次及消费金额。在应用RFM模型时,要有客户最基础的交易数据,至少包含客户ID、交易金额和交易时间3个字段。

这里我们的数据中符合RFM模型的要求,所以使用SPSS进行变量名更换即可

4.3聚类分群

这里我们使用KMeans算法进行聚类分群

根据RFM3个维度,可以将客户分为以下8种类型,如图所示。

在这个表中将每个维度都分为高和低两种情况,进而将客户群体划分为8种类型,而这8种类型又可以划分成ABC3个等级。例如,某个客户最近一次消费时间与分析时间的间隔比较大,但是该客户在一段时间内的消费频次和累计消费总金额都很高,这就说明这个客户就是RFM模型中的重要保持客户,为了避免该客户的流失,企业的运营人员就要专门针对这种类型的客户设计特定的运营策略,这也就是RFM模型的核心价值。

所以这里聚类的时候,我们需要将数据聚成8类。 

从结果中可以看出8个类别的初始聚类中心,以及10此的更新迭代记录。

从结果中可以看出,最终的八个类别聚类中心以及每个类别中的个案数。最后在元数据中可以发现新增了一列聚类的类别值。

5.总结

        无论在什么环境中,总会有二八法则的存在。例如,20%的客户为公司提供了80%的利润。前面RMF模型分类出了8种不同性质的客户,下面根据客户对平台的贡献度做了排序。一般挽留客户→一般发展客户→一般保持客户→一般价值客户→重要挽留客户→重要发展客户→重要保持客户→重要价值客户

        一个客户流入电商平台,客户行为转化大致和上面的顺序一样,从一开始注册到频繁浏览,再到习惯性在平台购买小件低额商品,客户通过多次消费行为对平台累积了信任后会开始购置大件大额商品,最终成为平台的重要价值客户。相反,如果平台哪里做得让客户体验差,重要价值客户也有可能降低购买量甚至流失。所以,无论对客户做出什么样的营销策略,目的都是加大客户不断地从一般挽留客户向重要价值客户转化,减小重要价值客户向一般挽留客户转化。从而实现平台客户的积累。那么处于不同阶段的客户,应该根据客户的阶段特性来制定不同的策略。下面分析一下每组客户的特性。

        一般挽留客户:这类客户RFM3个值都低,说明已经是流失的客户。针对这批客户召回的成本一般会比较高,因为客户长时间没在平台有任何行为,有可能app都已经卸载。所以一般针对这种客户只会在特定的大型活动才会采取全面的短信、广告和推送召回。比如在双十一、黑色星期五等大型购物狂欢节;或者说公司到了一个新阶段,大量资金投入客户新增,如“瓜分5个亿”“无上限砍价”等活动。

        一般发展客户:这类客户只是有近期购买行为但是购买商品利润低而且也不活跃。一般分两种类型,一种是刚注册的客户,另一种就是由于体验感一般接近流失的客户。针对刚注册的用户一般会采取“新人大礼包”等优惠,一般“新人大礼包”会尽量多的覆盖平台上的不同商品品类,提高新客户了解平台产品的动力。而针对接近流失的客户应该从客服、物流等多角度追溯客户过去不满的原因,对平台进一步完善

        一般保持客户:这类客户只是频繁浏览,但是很久没有成交了。针对这类客户,一般会结合客户最近浏览的商品进行相关优惠推送,促进客户的成交行为。

        一般价值客户:这类客户已经在平台上养成了自己的购买习惯,已经处于多次频繁购买的阶段,但是购买的商品价格都比较低,产生的利润也低。对这类客户应该进一步分析,是属于购买力低还是大额商品有其他习惯成交的平台。针对前者一般不需要采取特别的措施,而针对后者应该时刻注意用户的浏览商品动向,如果客户浏览远超过平时客单价的商品应该及时给予优惠政策。

        重要挽留客户:这类客户消费金额较高,消费频次偏低,而且已经很久没有消费行为了。这种客户曾经算是平台的忠实客户,而且能为平台提供比较大的利润。但是很有可能马上就要流失了,所以应该进行重点挽留,如给客户更多关怀,客服主动沟通,建立平台形象,针对客户有什么不满意的地方应当及时解决,并给予优惠补偿。

        重要发展客户:这类客户最近有消费,且整体消费金额高,但是购买不频繁。这种客户是有购买力的客户,应当重点维护,提升客户在消费中的体验感,比如加送“运费险”等附加增值服务。

        重要保持客户:最近一次消费时间较远,消费金额和消费频次比较高。这种客户一般有网购习惯,但是最近却很久没有来消费,说明很可能已经流向其他的平台。所以非常有潜力可挖,必须重点发展。要关注竞品的活动,做出合理的方案。

        重要价值客户:这类客户RFM 3个值都很高,是平台重点维护的客户,平台应保证服务质量,保持客户在平台每次购物体验。

资料获取,更多粉丝福利,关注下方公众号获取

在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/358088.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Node.js 是一个开源的 跨平台的JavaScript运行环境

https://www.npmjs.com/ 中央仓库 Visual Studio Code - Code Editing. Redefined https://openjsf.org/ OpenJS 促进了关键 JavaScript 技术在全球范围内的广泛采用和持续发展。 Apache服务器 Nginx服务器 Tomcat服务器 Node.js服务器 Gunicorn服务器 uW…

【第13章】进阶调试思路:如何安装复杂节点IP-Adapter?(安装/复杂报错/节点详情页/精读)ComfyUI基础入门教程

🎈背景 IP-Adapter这个名字,大家可能听说过,可以让生成的结果从参考图中学习人物、画风的一致性,在目前是比较实用的一个节点,广泛的用于照片绘制、电商作图等方面。 但同时,这个节点也是比较难安装的一个节点。 所以,这节课,我们就通过一个案例,来学习如何在Comf…

RX8025/INS5T8025实时时钟-国产兼容RS4TC8025

该模块是一个符合I2C总线接口的实时时钟,包括一个32.768 kHz的DTCXO。 除了提供日历(年、月、日、日、时、分、秒)功能和时钟计数器功能外,该模块还提供了大量其他功能,包括报警功能、唤醒定时器功能、时间更新中断功能…

Java | Leetcode Java题解之第188题买卖股票的最佳时机IV

题目: 题解: class Solution {public int maxProfit(int k, int[] prices) {if (prices.length 0) {return 0;}int n prices.length;k Math.min(k, n / 2);int[] buy new int[k 1];int[] sell new int[k 1];buy[0] -prices[0];sell[0] 0;for (…

windows安装docker

【Docker】掌握 Docker魔法:Windows 11 平台上的完美容器部署终极指南_win11安装docker-CSDN博客https://blog.csdn.net/joeyoj/article/details/136427362Windows安装使用Docker,方便你的开发和部署(DockerDesktop篇)_windows docker安装部署-CSDN博客h…

示例:WPF中应用DataGrid读取实体DisplayAttribute特性自动自动生成列名

一、目的&#xff1a;通过重写DataGrid的OnAutoGeneratingColumn方法实现根据定义特性自动生成列头信息功能 二、实现 <DataGrid ItemsSource"{local:GetStudents Count50}"/>实体定义如下 public class Student{[DataGridColumn("*")][Display(Na…

统信UOS1070上配置文件管理器默认属性03

原文链接&#xff1a;统信UOS1070上配置文件管理器默认属性03 Hello&#xff0c;大家好啊&#xff01;今天给大家带来一篇关于在统信UOS 1070上配置文件管理器默认属性的第三篇文章——配置工作区、侧边栏及高级设置。通过这些配置&#xff0c;您可以更好地组织和管理文件&…

r2frida:基于Frida的远程进程安全检测和通信工具

关于r2frida r2frida是一款能够将Radare2和Frida的功能合二为一的强大工具&#xff0c;该工具本质上是一个Radare2的自包含插件&#xff0c;可以帮助广大研究人员利用Frida的功能实现对目标进程的远程安全检测和通信管理。 Radare2项目提供了针对逆向工程分析的完整工具链&…

高考十字路口:24年考生如何权衡专业与学校的抉择?

文章目录 每日一句正能量前言专业解析理工科专业商科专业人文社科专业艺术与设计专业个人经验与思考过程结论 名校效应分析名校声誉与品牌效应资源获取学术氛围就业优势个人发展结论 好专业和好学校的权衡个人职业目标行业需求教育质量资源和机会学术氛围就业优势经济和地理位置…

基于YOLOv5的火灾检测系统的设计与实现(PyQT页面+YOLOv5模型+数据集)

基于YOLOv5的火灾检测系统的设计与实现 概述系统架构主要组件代码结构功能描述YOLOv5检测器视频处理器主窗口详细代码说明YOLOv5检测器类视频处理类主窗口类使用说明环境配置运行程序操作步骤检测示例图像检测视频检测实时检测数据集介绍数据集获取数据集规模YOLOv5模型介绍YOL…

16.RedHat认证-Ansible自动化运维(中)

16.RedHat认证-Ansible自动化运维(中) 部署Ansible Ansible的Inventory文件 Inventory文件定义了ansible管理的主机&#xff0c;说白了就是Inventory文件中的内容是记录被管理的主机。 Inventory文件分为两种&#xff0c;一种是静态的Inventory文件&#xff0c;一种是动态的…

【Proteus仿真】【Arduino单片机】寻迹避障蓝牙遥控小车

文章目录 一、功能简介二、软件设计三、实验现象联系作者 一、功能简介 本项目使用Proteus8仿真Arduino单片机控制器&#xff0c;使LCD1602液晶&#xff0c;L298电机&#xff0c;直流电机&#xff0c;HC05/06蓝牙模块&#xff0c;HCSR04超声波&#xff0c;红外寻迹模块等。 主…

【ARM】PK51如何将BL51链接器切换成LX51链接器

【更多软件使用问题请点击亿道电子官方网站】 1、 文档目标 解决客户在使用PK51进行项目研发的时候&#xff0c;想要使用LX51链接器进行使用。 2、 问题场景 客户在使用51芯片进行开发的时候&#xff0c;发现工程中使用的是BL51链接器&#xff0c;而不是LX51链接器&#xff…

Redis-数据类型-String

文章目录 1、通过客户端连接redis2、查看当前数据库的key的数量3、切换数据库3.1、切换到1数据库3.2、切换到2数据库3.3、切换到默认的数据库&#xff0c;0数据库 4、当前数据库没有数据5、添加键值对6、查看当前库所有key7、清空当前库8、设置存活的秒数&#xff08;例如验证码…

Redis-数据类型-List

文章目录 1、通过客户端连接redis2、切换到第二个数据库 db13、查看当前库所有key4、从左边插入一个或多个值5、按照索引下标获得元素(从左到右)6、针对key指定的list&#xff0c;从右边放入元素7、返回list集合的长度8、从左边弹出一个元素。弹出返回删除9、从右边弹出一个元素…

安卓/iOS/Linux系统影音边下边播P2P传输解决方案

在当今的数字时代&#xff0c;IPTV 影音行业正经历着快速的发展和变革&#xff0c;但影音行业的流量带宽成本一直很高&#xff0c;有没有什么办法既能保证现有的用户观看体验&#xff0c;又能很好降低流量带宽成本呢? P2P技术可能是一个很好的选择&#xff0c;它不仅仅可以提…

【论文笔记】LoRA LOW-RANK ADAPTATION OF LARGE LANGUAGE MODELS

题目&#xff1a;LoRA: LOW-RANK ADAPTATION OF LARGE LANGUAGE MODELS 来源: ICLR 2022 模型名称: LoRA 论文链接: https://arxiv.org/abs/2106.09685 项目链接: https://github.com/microsoft/LoRA 文章目录 摘要引言问题定义现有方法的问题方法将 LORA 应用于 Transformer 实…

Flutter框架高阶——Window应用程序设置窗体窗口背景完全透明

文章目录 1.修改 main.cpp1&#xff09;C 与 Win32 API2&#xff09;EnableTransparency()3&#xff09;中文注释 2.编写 Flutter 代码1&#xff09;bitsdojo_window2&#xff09;window_manager3&#xff09;区别对比4&#xff09;同时使用&#xff08;1&#xff09;设置初始化…

基于matlab的SVR回归预测

1 原理 SVR&#xff08;Support Vector Regression&#xff09;回归预测原理&#xff0c;基于支持向量机&#xff08;SVM&#xff09;的回归分支&#xff0c;其核心思想是通过寻找一个最优的超平面来进行回归预测&#xff0c;并处理非线性回归问题。以下是SVR回归预测原理的系统…

SQL注入-sqlmap使用

sqlmap简介 一款自动化的SQL注入工具&#xff0c;其主要功能是扫描&#xff0c;发现并利用给定的URL的SQL注入漏洞&#xff0c;目前支持的数据库是MySQL, Oracle, PostgreSQL, Microsoft SQL Server, Microsoft Access, IBM DB2, SQLite, Firebird, Sybase和SAP MaxDB Sqlma…