RFM是客户分析及衡量客户价值的重要模型之一,其中的R表示最近一次消费(Recency),F表示消费频率(Frequency),M表示消费金额(Monetary)。依据这三个指标RFM可以将客户动态分组,并进一步指导客户运营的下一步工作。本篇文章使用python的聚类算法创建一个粗糙的RFM模型。
1. 开始前的准备工作
首先是开始前的准备工作,这里除了常用的numpy和pandas以外,有几个库文件单独说明下,pymysql是python连接mysql进行数据提取的库,cluster用于聚类,此外还有一些库文件在本篇文章中并没有使用到,例如DecisionTreeClassifier,grid_search和cross_validation等等。这些会在后面对RFM模型进行进一步分类预测,模型持久化和依据RFM模型做内容推荐时使用到。因此先一起放在这里,后面的系列文章会进行使用说明。
2. 从mysql提取RFM指标数据
原始的用户数据存储在mysql中,因此需要使用python连接mysql进行数据提取。下面是具体的代码和数据提取过程。
使用提取的数据创建DataFrame数据表,取名为rfm。
查看数据表的前5行数据,这里除了创建RFM模型必要的指标以外,还保留了用户ID,年龄等信息,也是为了后面的分类和推荐使用。
3. 使用K-Means进行RFM模型聚类
单独提取数据表中frequency,monetary,和recency三个字段进行聚类。首先转化为数组。
设置KMeans模型参数,并代入指标数据进行拟合。
查看KMeans聚类后的8个质心点的值。
在原始数据表中对每个用户进行聚类结果标记。这样我们就可以知道每个用户ID在RFM模型中所属的类别。
查看RFM模型8个类别中的用户数量。








暂无数据