RFM模型是衡量客户价值和客户创利能力的重要工具和手段。该模型通过一个客户的近期购买行为、购买的总体频率以及花了多少钱3项指标来描述该客户的价值状况。
最开始接触RFM模型是在小数点的课程,空白在知乎中详细介绍了如何用tableau实现RFM模型的应用(知乎@空白白白白)。最近一份实习中领导希望我探究KNIME在业务中的应用,我翻出了空白的教程,用业务数据把整个过程在KNIME中实施了一遍。
在RFM模式中,R(Recency)表示客户购买的时间有多远,F(Frequency)表示客户在时间内购买的次数,M (Monetary)表示客户在时间内购买的金额。
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分,以此类推。结果如图所示:
设置完成后执行节点,可以得到计算后的R参数,如图所示。
同样的步骤计算F和M两个参数。F参数是订单数量越多,值越大,M参数是订单总额越大,值越大。通过每个r店的R,F,M三个参数与平均值对比,给r店打标签。
3.结果判断(打标签)
在判断每个R店所属类别之前,需要把它们的R,F,M值分别与平均值做对比,在这里可以使用Math Formula节点,大于平均值记为1,小于平均值记为0,操作很简单,可以用节点提供的判断公式:
得出如下结果:
接下来根据三列结果,去定义R店所属的类型:
由于需要通过三列数值进行判断,可以直接使用python节点,判断语句如下图:
执行节点后,会在表格最后一列添加R店所属的类别。
4.可视化
接下来可以对结果进行可视化,将不同标签的R店设置不同颜色:
观察不同种类R店的数量占比:
观察不同种类R店销售额贡献情况:
至此可以通过KNIME一种工具完全实现从取数到得出结果的流程,通过R店下单情况将其分类。
关于RFM模型的需要注意的点:参数计算与业务紧密相关,范围的划定很重要,应该根据业务的周期和交易金额大小进行划分。
KNIME工具执行商业模型相比于Tableau的优点:取数流程可以直接在工具内完成,没有将数据导出处理的步骤;工作流可以重复使用,数据库没有变动时可以很快得出结果;每个参数的计算都有单独的节点,一目了然,即便数据库数据结构发生变化,也方便参数的修改和查看。
KNIME工具相比于Tableau的缺陷:交互性比较差,从多个维度查看需要多角度作图;图形可读性差;但是可视化部分的缺点可以通过数据导出,在tableau中完成作图弥补。