前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >客户分类是精细化运营的第一步

客户分类是精细化运营的第一步

作者头像
herain
发布2022-04-27 16:27:34
5170
发布2022-04-27 16:27:34
举报
文章被收录于专栏:数据指象

文章期号:20190616

抓住主要客户,合理配置资源是成功的关键

作者:李璐

学校:昆士兰大学 信息系统和会计双专业在读

一、聚类分析回顾

前面的文章已经提到过,聚类分析其实就是近朱者赤

通过计算相似性,将一个数据集中的数据分为人为规定的几个“簇”,也就是几类。比较常见的K均值聚类算法中的K就是这个簇数。

从客户管理的角度来看,聚类算法对于公司对客户的分类有很大的帮助。不过要注意的是,这种算法不是无往不利的,他有两大主要缺陷:其一是有些数据集本身的特征并不适合用这种方法,其二是通过算法得出的几个分类很难命名和解读。

二、客户关系管理

不同的公司对客户关系有不同的管理方法。那些收集了大量客户信息的互联网公司暂且不论,因为他们对大数据的挖掘可以说是达到了令人发指的地步。本文主要讨论的是那些相对传统的,只记录简单的客户交易数据的公司。对于这种公司,相对主流的客户管理办法客户终生价值(Customer Lifetime Value, CLV)和RFM模型。

CLV讨论的是客户在未来可能为公司带来的价值,RFM则是从三个维度来看这个客户过去对公司的贡献。CLV的计算方法有很多,不同公司因经营模式等问题会采用不同的计算方法。RFM则相对固定一些,其中:

  • R=Recency 代表该用户最近一次交易;
  • F=Frequency 代表用户交易频率;
  • M=Monetary 代表用户平均单次交易金额。

本文将采用RFM和CLV相结合的方式对某公司数据进行分析。

三、聚类分析与客户关系

本文将要介绍的是如何使用聚类算法将计算得出的客户RFM价值分类,再用CLV给不同类别的客户进行排名聚类,这样公司就能因地制宜,因人而异,合理配置资源来优化不同CLV客户群的管理方法。

四、数据集获取

本文使用的是UCI网站上的一个英国小型在线商城的用户交易数据。有兴趣的同学们可以从这个链接下载:https://archive.ics.uci.edu/ml/datasets/Online+Retail#

为方便读者阅读,本文将列名翻译了一下:

整个数据集包含了541,909行数据。经过一系列的观察,在这个数据库中发现了各种无用数据,如财务调整、存货损毁等。最终清理出去近十四万行,所剩即将作为本文的分析对象。

五、RFM的计算

计算后,我们得到的是4,334个客户的RFM数据总结:

好了,将这个数据导入R Studio工具,运用R语言开始正式分析。

六、分析过程

6.1,数值范围的统一

简单做一个点阵图,可以看到不同的变量有不同的数值范围,非常不利于理解和造成成分的偏移,需要统一数据的量纲:

所以,我们通过算法,将每一列的数值调整为从0到10。具体实现方法,是先定义一个公式,再将公式应用于整个数据集,其中公式为:

在R语言中,则这样实现的:

代码语言:javascript
复制
# create function to calculate the score of RFM values
score <- function(x){return(((x-min(x))/(max(x)-min(x)))*10}
# apply the function to the dataset
RFMscore <- as.data.frame(lapply(Data[2:4],score))

这种方法能在保证数据分布规律不变的基础上,统一数值范围。

6.2,K值的确定

Kmeans中的K有很多方法可以确定。

有的人会比较喜欢通过枚举法,即一个一个的试,看哪一个图比较合理,因为这种分类是没有所谓对错的,最终结果是要看分析者能不能从中的到对公司有益的知识。

本文采用的“胳膊肘方法”:

代码语言:javascript
复制
noc <- (nrow((RFMscore)-1)) * sum(apply(RFMscore,2,var))
for(i in 2:15) 
noc[i] <- sum(kmeans(RFMscore, centers=i)$withinss)
代码语言:javascript
复制
plot(1:15, noc, type="b", xlab= "number of clusters", 
ylab= "within groups sum of squares")

这个图表示的是随着簇数的增长,其:组内平方和的降低

因为这个图长得像人的胳膊肘,所以被亲切的成为胳膊肘方法(Elbow Method)。

其选取方法也比较简单实用,通过这种图,我们可以选取四个或者五个作为本案例的簇数——因为在簇数大于4之后,其组内平方和趋于稳定,再细分下去也没有必要了。

6.3,K均值聚类

R语言实现K均值聚类计算以及可视化处理:

代码语言:javascript
复制
# K为5的聚类(很简单是不是)
kmeans(RFMscore,5)
# 提出分类的值
RFMCluster <- kmeans(RFMscore,5)
RFMCluster$cluster <- as.factor(RFMCluster$cluster)
# 使用rgl 语言包对数据进行可视化处理
library(rgl)
plot3d(RFMscore$Recency, RFMscore$Frequency, RFMscore$Monetary, col = RFMCluster$cluster, size = 5)
plot(RFMscore$Frequency, RFMscore$Monetary, col=RFMCluster3$cluster)
plot(RFMscore$Monetary, RFMscore$Recency, col=RFMCluster3$cluster)

这个三维图中一个颜色就代表一个分类,在R Studio中可以对这个图进行拖拽,从不同角度来观察。为了方便读者理解,以下三张图为三个不同维度的平面图:

很难说这个分类是成功还是失败。这个数据集里数据的分布是比较集中的,主要在Recency这条轴上。

左图为组内客户数量在总客户中的比例,右图为组内贡献销售额对总销售额的占比。

可以看出第三类无论是人数上还是贡献度上都是第一名,而第五组虽然人数最少但是销售额却占到了24%。剩余三组则都属于人多但是购买力不足的。

再来看一下各组的数据平均值与三个变量重要程度乘积(这里就不细说了,涉及到复杂的评估):

6.4,分类命名与对策

在分类之后,一个比较重要的步骤是命名。寻找一个合适的名称也是一门学问。之后是针对每类客户给出最优的建议,可以有的放矢了。

这部分呢,虽然有写……

但是不想在这里说了。

就交给市场部门的人吧。

感谢拜读,觉得有价值,点个在看。

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2019-06-17,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 数据指象 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档