如何在KNIME中实现RFM模型

RFM模型是衡量客户价值和客户创利能力的重要工具和手段。该模型通过一个客户的近期购买行为、购买的总体频率以及花了多少钱3项指标来描述该客户的价值状况。

最开始接触RFM模型是在小数点的课程,空白在知乎中详细介绍了如何用tableau实现RFM模型的应用(知乎@空白白白白)。最近一份实习中领导希望我探究KNIME在业务中的应用,我翻出了空白的教程,用业务数据把整个过程在KNIME中实施了一遍。

在RFM模式中,R(Recency)表示客户购买的时间有多远,F(Frequency)表示客户在时间内购买的次数,M (Monetary)表示客户在时间内购买的金额。

RFM模型客户分类
KNIME中实现RFM的四步走

1.数据准备

给客户分类需要的字段主要有订单号(order_id),客户名称(sap_retailer_id),订单金额(amount),订单数量,订单时间(order_date).

在KNIME中直接连接MySQL数据库,利用DB模块中的数据库操作节点,实现在数据库内的条件筛选,表连接等功能,最后将整理好的数据导入到KNIME中。

数据提取流程

整理好的数据如图所示:

数据整理后

2.指标计算

一共有三个维度的指标,R,F,M,分别对应着数据中的日期 (Last order_date),订单数量(Count)以及销售额(Sum amount)。

指标计算流程

要计算参数,先要计算最后一次购买时间到现在的天数,天数越小,则客户最后一次购买的时间越近,R得分越高。这一步使用Date&Time Difference节点,用来计算目标column中日期到指定日期的间隔天数,将Base column设置为Last order_date, Calculate difference to选择截止日期,得到如图所示计算结果。

时间处理节点
计算出最后一次购买时间距今天数

在计算参数之前,先通过statistics节点观察一下三个关键指标的分布情况,为后续计算参数做准备。

数据分布

下面计算R,就要要设置与date&time diff字段相关的参数,在这里可以了解一下KNIME创建数据桶和Tableau的区别,我们在KNIME中选择Binner节点进行数据划分,这个节点有两个数据输入接口,除了提供源数据,还需要提供一个字典表,里面包括数据分桶情况以及对应的值,这里将30天以内有下单的R店评分设置为5分,30-60天为4分,以此类推。结果如图所示:

字典表
设施binner节点(数据桶)

设置完成后执行节点,可以得到计算后的R参数,如图所示。

计算参数R

同样的步骤计算F和M两个参数。F参数是订单数量越多,值越大,M参数是订单总额越大,值越大。通过每个r店的R,F,M三个参数与平均值对比,给r店打标签。

三个参数计算完成

3.结果判断(打标签)

给客户分类流程

在判断每个R店所属类别之前,需要把它们的R,F,M值分别与平均值做对比,在这里可以使用Math Formula节点,大于平均值记为1,小于平均值记为0,操作很简单,可以用节点提供的判断公式:

判断R/F/M与平均值的关系

得出如下结果:

判断结果

接下来根据三列结果,去定义R店所属的类型:

由于需要通过三列数值进行判断,可以直接使用python节点,判断语句如下图:

给客户打标签

执行节点后,会在表格最后一列添加R店所属的类别。

客户分类结果

4.可视化

可视化节点

接下来可以对结果进行可视化,将不同标签的R店设置不同颜色:

颜色标签

观察不同种类R店的数量占比:

客户占比

观察不同种类R店销售额贡献情况:

不同类别客户销售额占比

至此可以通过KNIME一种工具完全实现从取数到得出结果的流程,通过R店下单情况将其分类。

关于RFM模型的需要注意的点:参数计算与业务紧密相关,范围的划定很重要,应该根据业务的周期和交易金额大小进行划分。

KNIME工具执行商业模型相比于Tableau的优点:取数流程可以直接在工具内完成,没有将数据导出处理的步骤;工作流可以重复使用,数据库没有变动时可以很快得出结果;每个参数的计算都有单独的节点,一目了然,即便数据库数据结构发生变化,也方便参数的修改和查看。

KNIME工具相比于Tableau的缺陷:交互性比较差,从多个维度查看需要多角度作图;图形可读性差;但是可视化部分的缺点可以通过数据导出,在tableau中完成作图弥补。

你可能感兴趣的:(如何在KNIME中实现RFM模型)