Python中RFM分析Recency计算疑问:高价值用户Recency为0是否错误?
RFM分析中Recency计算的逻辑澄清
你的Recency计算逻辑完全没问题,疑惑源于对这个指标含义的理解偏差:
- Recency的标准定义就是「用户最后一次购买距离分析截止日的天数」,数值越小,代表用户越近期完成购买,价值优先级越高。像你的用户ghi,当天刚买,Recency=0,这恰恰是最优质的近期活跃用户。
- 你觉得“最近购买的用户Recency应该最高”,是把指标的价值程度和数值大小搞反了——Recency数值小=用户越近买过,在后续RFM打分时,这类用户才应该拿到最高的Recency得分(比如给Recency=0的打5分,Recency=347的打1分)
如果实在希望数值大小直接对应价值高低(让近期用户的Recency数值看起来更高),可以调整计算逻辑,把数值反转:
# 方式1:用预设的最大回溯天数减去原始Recency(比如按年分析设365天) recency_df['Recency_Score'] = 365 - recency_df['Recency'] # 方式2:直接取负数,数值越大代表越近期 recency_df['Recency_Score'] = -recency_df['Recency']
需要注意的是:
- 原始的天数计算是行业通用的标准方式,不需要修改,后续打分阶段匹配好规则就行
- 不管用哪种计算方式,核心是保持打分逻辑和数值含义一致:原始Recency是“越小越好”,打分就给小数值高分;反转后是“越大越好”,就给大数值高分
内容的提问来源于stack exchange,提问作者Luke Lucy
相关产品推荐
相关产品推荐

