做电商数据分析的同行应该都有这种感觉:后台报表里GMV、订单量、客单价看得眼花缭乱,但真到要做用户运营的时候,反而不知道该从哪一批人下手。所有用户看起来都在买东西,可哪些是真正值得投入的核心用户、哪些快要流失、哪些只是偶尔路过顺手买一单,心里其实没底。这就是我推荐每个电商运营都跑一遍RFM模型的原因——它能用一个相对简单的框架,把用户从“一堆订单号”还原成“有血有肉的消费画像”。
RFM模型并不是什么新概念,它源自传统直复营销领域,但在今天的电商零售场景下依然非常能打。核心只有三个维度:最近一次消费时间(Recency)、消费频率(Frequency)、消费金额(Monetary)。这三个维度组合起来,就能把用户拆成不同的群体,然后针对不同群体做差异化运营。这篇文章我会从RFM的原理讲起,结合我自己实操过的数据分析流程,把数据清洗、指标计算、用户分层、运营策略以及常见坑位全部过一遍。不管你是运营、数据分析师还是自己做店铺的小卖家,只要手头有一份包含订单时间、用户ID和成交金额的订单明细表,就能照着这套方法落地。
1. RFM模型的本质与核心价值
1.1 三个维度的业务含义拆解
RFM的厉害之处在于,它没有堆砌复杂的算法,而是用三个最基础的交易指标勾勒用户行为轮廓。
先说Recency(最近一次消费时间)。这个指标衡量的是用户距离当前日期最后一次下单的时间间隔。时间间隔越短,说明用户最近还在活跃状态,对店铺的认知和信任还在;时间越长,说明用户可能已经流失或者被竞品抢走。实际业务中,R值越小越优质,这一点和F、M相反,很多人刚接触时容易搞混。
Frequency(消费频率)指的是用户在统计周期内下单的次数。它反映的是用户对店铺的粘性和复购习惯。高频用户往往是刚需人群,或者对你的商品品类有持续需求;低频用户可能只是尝鲜购买,也可能是因为商品使用周期长导致复购慢,需要结合品类特性去解读。
Monetary(消费金额)是用户在周期内累计贡献的销售额。这个维度直接反映用户的消费能力和价值贡献。高金额用户是店铺利润的基石,低金额用户则需要判断是否有潜力提升,还是说本就是价格敏感型人群。
三个维度组合在一起,就形成了一个三维坐标系,每个用户都能在这个坐标系里找到一个位置。理论上三个维度各分高低两档,就能得到2的3次方等于8类用户群体,这就是RFM模型做用户分层的基础逻辑。
1.2 为什么不能只看GMV做运营
很多店铺运营习惯盯着GMV看,觉得只要总销售额在涨,就一切安好。但GMV是一个高度聚合的指标,它掩盖了用户结构的变化。我举个亲身经历的例子:有段时间店铺GMV增长很漂亮,后来一拆数据发现,增长主要来自两三个大客户的大额采购,而中小用户的复购率其实在下滑。如果只看GMV,根本不会意识到老用户正在流失,等到大客户停止采购,GMV断崖式下跌才追悔莫及。
RFM模型的价值就在于它把“结果指标”拆解成“行为指标”,让你看到GMV背后的用户结构。同样是100万GMV,是由1000个老客每人买1000元贡献的,还是由1万个新客每人买100元贡献的,对后续运营策略的指导意义完全不同。RFM能告诉你钱从哪来、用户在哪一层、谁在流失边缘、谁值得重点维护,这些信息才是做精细化运营的真正抓手。
1.3 RFM适合什么样的业务场景
RFM并不是万能药,它在电商零售领域有很强的适用前提。我在实际项目中总结下来,最适合RFM的业务特征是:复购周期相对明确、用户有多次消费的可能性、交易数据可追溯。比如服饰鞋包、美妆个护、母婴用品、食品零食、日用百货这类标品或半标品,用户会周期性复购,RFM的分层效果非常明显。
如果你的业务是低频高客单价类型,比如装修、婚庆、大件家具,用户一辈子可能只消费一两次,RFM的Frequency维度基本失效,这时候不如用基于客户生命周期的管理方式,或者把分析维度调整为“咨询次数+到店次数+决策周期”这类更适合低频业务的行为指标。另外,纯内容付费或SaaS订阅类产品也可以做RFM,只是统计口径要调整为登录活跃度、功能使用频率等,不能直接套用电商的订单逻辑。所以说,RFM是个好工具,但用之前先得判断自己的业务形态是不是匹配。
2. 数据准备与清洗:做RFM前必须完成的脏活累活
2.1 需要准备哪些核心数据字段
RFM分析对数据的要求其实非常简洁,不需要复杂的埋点数据,也不需要用户画像标签。最低限度只需要三个字段。
第一是用户标识字段,可以是用户ID、手机号或者会员卡号,关键是能唯一识别一个用户。如果你有多个渠道的数据,比如小程序商城一套ID、淘宝店铺一套ID、线下POS机又是一套ID,做分析之前得先想办法打通,否则同一个用户会被拆成多个人,算出来的RFM结果失真。
第二是订单时间字段,精确到天就可以了,但必须是用户实际下单支付的时间,而不是下单后未支付或者退款前的创建时间。这一点很多新手会踩坑,取数的时候直接用了订单创建时间,结果把大量未付款订单也算进去,R值整体失真。
第三是订单金额字段,这里建议取用户实际支付金额,也就是扣除优惠券、满减、退款之后用户真实掏的钱。用商品原价或者下单金额会导致M值虚高,尤其在大促期间,满减和优惠券叠加后,实际支付金额和商品标价差距可能非常大。
如果条件允许,还可以准备订单状态字段用于过滤退款订单、渠道来源字段用于后续做渠道维度交叉分析。但核心三件套没有的话,RFM就跑不起来。还有些团队想做得更细,把运费、包装费之类的剥离出去,这个看自己的成本核算口径,不必强求。
2.2 数据清洗的关键步骤与实操细节
拿到原始订单明细表之后,直接开算肯定不行,必须先做几道清洗工序。我把我在实际项目中固定的清洗流程列一下。
第一步是过滤无效订单。把订单状态为“已取消”“已关闭”“待付款”的记录全部剔除,只保留“交易成功”或“已完成”状态的订单。退款订单要不要剔除,我的建议是看比例:如果退款率很低,比如3%以内,剔不剔除影响不大;如果退款率超过10%,比如服装类目大促期间,那就应该剔除,否则M值和F值都会被虚增的订单污染。
第二步是处理异常时间数据。检查订单时间字段,有些用户下单时间在系统上线之前,或者在未来(可能是系统时区问题),这些异常记录要单独处理。另外还需要确定统计周期的起始点,这个直接决定R值的计算口径。如果店铺刚开业不久,整个运营周期只有三个月,那统计周期就是这三个月;如果店铺已经运营两年,一般取最近一年到两年的数据比较合理,时间太长老数据对当前运营的参考意义不大。
第三步是处理金额异常值。比如订单金额为0的纯兑换订单,或者金额特别巨大可能是B端采购或者系统测试数据。可以用箱线图或者百分位数来识别异常值,比如M值超过P99的量级,单独看一下是不是真实的大客户。如果是真实的B端大客户,可以保留但单独打标;如果是测试数据,直接删除。
第四步是用户ID排重和去重。用同一个手机号下过单但注册了多个账号,在数据里会显示为多个用户ID。如果后台有手机号可以关联,就做一次用户合并;如果没有,只能按用户ID分析。这里要注意,同一用户的不同设备ID、会员ID也建议统一映射到一个主ID上。
清洗完的数据就可以用来计算RFM了。这个环节虽然繁琐,但决定整个分析的上限,脏数据算出来的漂亮数字,只会把你带到错误的方向。
2.3 统计口径的确定与常见坑位
统计口径不统一,RFM结果就没有可比性,也没法在不同的时间周期之间做对比。我先说几个我自己定过的口径。
观察窗口(Observation Window)就是统计多少天的数据。我常用的默认值是365天,适合大多数日百、食品类目。如果你的商品复购周期长,比如卖大件家电的,一年半甚至两年的窗口更合理;如果卖的是快消品,比如咖啡、零食,90天窗口就够了。观察窗口越长,低频用户的复购次数会自然累积更多,F值会偏高;窗口太短,高频用户可能还没表现出高频特征。
当前日期(As-of Date)也就是计算R值时的基准日。一般取数据导出日或者分析执行日的当天。注意不要用统计窗口的结束日当基准日,否则窗口最后几天的用户R值都是1、2天,会显得过多用户“非常活跃”。
时间粒度的问题。R值可以精确到天,F值直接数订单笔数或下单天数,M值用得比较多的是累加支付金额。有个细节是:F值到底按订单笔数算还是按下单天数算。如果一个用户一天之内下了5单,按订单笔数F值就是5,按下单天数就是1。这两种口径对后续分层结果影响不小。我现在做分析时更习惯按下单天数来算F值,因为同一用户短期内重复下单往往是促销刺激或补单,不能真实反映消费频次的稳定性。
3. RFM评分体系搭建:从原始值到分层标签
3.1 评分前的核心决策:分几档才合理
拿到每个用户的原始R值、F值、M值之后,下一步就是给这三个维度打分,然后组合成用户标签。最常见的是每个维度分两档:高和低,组合出8类用户。也有团队会分成三档甚至五档,组合出的用户群体会更多,对应运营策略就更细。
我个人的建议是,起步阶段用两档就足够了。两档方案简单清晰,容易给运营同事讲明白,落地执行也方便。三档和五档方案适合数据团队和运营团队磨合成熟之后再做精细化升级,能把用户拆分得更细,但对运营动作的差异化要求也更高,如果运营根本来不及做那么多差异化的触达策略,分再细也是纸上谈兵。
这里要强调一点:分档不是拍脑袋就能定的,它应该结合你的业务目标和数据分布来定。如果用过算术平均分来一刀切,很容易出现“一半用户高、一半用户低”的结果,但这个结果不一定对业务有意义。更好的做法是根据业务实际情况去定阈值,比如R值按商品平均复购周期来划分,F值按“过去一年购买X次以上算高频”来划分,M值按“累计消费满XX元算高价值”来划分。
3.2 三种打分方法的适用场景与实操对比
RFM打分方法有很多种,我挑三种最常用的展开讲,并给到适用的场景。
第一种叫业务规则评分法。也就是根据行业经验或历史数据,人为设定阈值来划分高低。比如设定R值小于等于30天算高,F值大于等于6次算高,M值大于等于1000元算高。这种方法最大的优势是简单、可解释性极强,运营能一眼看懂每个标签的含义。缺点是比较依赖经验判断,而且如果业务环境变化快,阈值需要频繁调整。
第二种叫百分位数排名法。在样本内取分数的分位数作为划分线,比如以中位数或者60分位数为界,低于线为低分,高于线为高分。这种方法的好处是无论数据分布长什么样,都能较好地分出高低档,适合做内部用户相对分层。缺点是对极端值敏感,如果头部用户贡献了90%的销售额,按金额的百分位数划分会让绝大多数用户都落在“低金额”档,分层的区分度反而变差。
第三种叫K-Means聚类评分法。把R、F、M三个维度标准化之后喂给聚类算法,由算法自动寻找数据中的天然群体。这种方法能找到更个性化的分层,但解释性较差,而且聚类的簇数需要调参。对数据基础较好的团队,可以用聚类结果来校验业务规则法和百分位数法的分层是否合理,不建议直接上来就用聚类给运营出标签。
我自己的习惯是:第一版用百分位数法快速出结果,后续结合业务经验做阈值修正,最终沉淀一套业务规则。因为在电商环境下,阈值必须能翻译成运营能理解的话——比如“过去30天内有购买行为且累计消费超过500元的用户”,运营一听就知道怎么去圈选人群。
3.3 分层逻辑与RFM八类用户画像
打分完成后,把R、F、M三个维度的高(1)低(0)组合起来,就得到8类用户分层。我把每一类的含义和典型特征整理在下面,方便大家对照自己的数据去看。
- 111(高R高F高M):重要价值用户,店铺的核心资产,活跃且购买力强,是重点维护对象。
- 110(高R高F低M):重要保持用户,活跃且购买频次高,但客单价或累计金额偏低,存在提升空间。
- 101(高R低F高M):重要发展用户,最近刚买过且单次金额高,但购买次数少,需要引导复购。
- 100(高R低F低M):一般价值用户,近期有购买,但频次和金额都处于低位,可能是新客或偶尔消费用户。
- 011(低R高F高M):重要挽留用户,曾经的高价值高频用户,但已经有一段时间没有购买了,需要重点激活。
- 010(低R高F低M):一般保持用户,曾经频率高但金额低,且近期沉默,需要用活动唤醒。
- 001(低R低F高M):重要挽留用户,虽然累计金额高,但频次低且已流失,可能是客单价高但决策周期长的品类用户。
- 000(低R低F低M):流失用户,价值最低,不建议投入大量运营资源。
这八类标签不是终点,而是运营动作的起点。每个标签背后都对应着一套差异化的触达策略、权益设计和沟通话术。千万不要把分层结果做出来之后存个Excel就扔在那里,那只是自嗨式的分析,对业务毫无帮助。
4. 实操演示:从订单表到RFM分层结果全流程
4.1 第一步:数据汇总与用户维度聚合
我用一个简化版订单明细表来演示整个处理流程。假设我们拿到的原始数据长这样:订单号、用户ID、下单时间、支付金额、订单状态。
清洗之后,按用户ID做聚合,得到每个用户的三个原始值。这一步用Excel的数据透视表就能完成,不需要写代码。先把用户ID拖到行区域,把支付金额求和得到M值,把订单时间计数得到F值,把下单时间最大值求出来、再用基准日减去它得到R值。
需要注意,如果用Excel算子,日期差值可以直接用=TODAY()-MAX(订单时间)这种方式来算,但TODAY()是动态的,每天打开文件R值都会变。如果要固定基准日,得在辅助单元格里写死基准日,然后引用它。这个小细节容易忽略,但影响很大。
4.2 第二步:R、F、M评分计算代码示例
用Python做RFM分析会灵活很多,尤其是数据量大、字段多的时候。我在这里给出一个可以直接跑通的代码示例,基于Pandas实现。
import pandas as pd import numpy as np # 读取清洗后的订单数据 df = pd.read_excel('orders_clean.xlsx') # 确保日期格式正确 df['order_date'] = pd.to_datetime(df['order_date']) # 设定基准日,假设分析日期是2024-06-01 anchor_date = pd.Timestamp('2024-06-01') # 过滤退款订单,只保留交易成功 df = df[df['order_status'] == '交易成功'] # 按用户聚合 rfm = df.groupby('user_id').agg( recency=('order_date', lambda x: (anchor_date - x.max()).days), frequency=('order_date', 'nunique'), # 按天去重下单次数 monetary=('pay_amount', 'sum') ).reset_index() # 查看数据分布 print(rfm.describe()) # 用分位数法打分:R值越小越好,所以小于等于分位数打高分 rfm['R_score'] = pd.qcut(rfm['recency'], 2, labels=[0, 1]) rfm['F_score'] = pd.qcut(rfm['frequency'], 2, labels=[0, 1]) rfm['M_score'] = pd.qcut(rfm['monetary'], 2, labels=[0, 1])这段代码用分位数法把每个维度分成高低两档,R值小于等于中位数的打1分,F和M值大于中位数的打1分。运行完成后,每个用户就有了一个三维的二进制标签。
这里要提醒一个坑:pd.qcut在数据分布极端时容易报错,提示“Bin edges must be unique”,因为某个分位数的边界正好卡在大量相同值上。解决方法是给duplicates='drop'参数,或者在打分前先用rank()方法转成百分位排名再加阈值来划分,更稳健一点。
4.3 第三步:生成八类用户标签与人数统计
打分完成后,把三个分数拼接成字符串,就是用户的RFM标签组。
# 生成RFM组合标签 rfm['RFM'] = rfm['R_score'].astype(str) + rfm['F_score'].astype(str) + rfm['M_score'].astype(str) # 定义标签名映射 label_map = { '111': '重要价值用户', '110': '重要保持用户', '101': '重要发展用户', '100': '一般价值用户', '011': '重要挽留用户', '010': '一般保持用户', '001': '重要挽留用户', '000': '流失用户' } rfm['user_segment'] = rfm['RFM'].map(label_map) # 统计各分层的用户数和金额占比 segment_stats = rfm.groupby('user_segment').agg( user_count=('user_id', 'count'), total_monetary=('monetary', 'sum') ).sort_values('total_monetary', ascending=False) segment_stats['user_ratio'] = segment_stats['user_count'] / segment_stats['user_count'].sum() segment_stats['monetary_ratio'] = segment_stats['total_monetary'] / segment_stats['total_monetary'].sum() print(segment_stats)这个输出能非常直观地告诉你:你的用户结构健不健康。我见过很多店铺出现“二八倒挂”——80%的用户集中在流失层和一般价值层,贡献不到20%的销售额,而重要价值用户只有可怜的几百人,却贡献了70%以上的利润。这种情况下,运营核心不是拉新,而是维护好这批重要价值用户,同时想办法把重要挽留用户唤醒回来。
5. 运营策略落地:分层之后到底该干什么
5.1 针对八类用户的差异化运营动作
RFM分层做完只是上半场,真正的价值在于下半场的运营动作。我基于自己做过的多个电商项目,整理了一套可以直接参考的运营策略表。
重要价值用户(111)是店铺的衣食父母。这群人既要维持又要发展,核心动作是提供专属感:专属客服、会员日特权、新品优先购买权、生日礼包。短信和push不需要发太勤,但每一条都要有含金量,让他们感觉到被认真对待。
重要保持用户(110)购买频次高但金额上不去,这往往说明他们是价格敏感型的高频刚需客。适合用“满额赠”“升级套餐”“第二件半价”这类策略来拉客单价,同时引导他们关注高毛利产品线。
重要发展用户(101)则是客单价高但复购少,可能是满减凑单用户,也可能是新客尝鲜。核心动作是做好首次体验后的再营销,比如在签收后第7天、第15天分别发送搭配推荐、专属优惠券,引导二次购买。这类用户的复购唤醒ROI通常很高。
一般价值用户(100)近期有消费但频次和金额都偏低。他们的购买行为往往是活动驱动的,需要尝试转成高F或高M。可以发定向优惠券,用低门槛商品引导他们提高购买频次。
重要挽留用户(011)是曾经的高价值用户,沉默比较可惜。这类用户需要召回,核心是找到沉默原因——是产品不合适、价格问题还是被竞品吸引。可以用高力度折扣券加“好久不见,为你准备了专属回归礼”这类情感化话术做唤醒。
一般保持用户(010)和流失用户(000)的运营投入递减,用全店通用的促销活动和召回邮件批量覆盖即可,不需要投入太多人工成本。
5.2 基于RFM的触达策略与话术建议
分层只回答“对谁做”,触达策略还要回答“用什么方式做”和“说什么内容”。我建议根据不同层级,配置不同的触达渠道和频次。
高价值用户用企业微信或个人微信一对一维护,触达频率每周1到2次,内容以干货和专属权益为主,少发硬广。中等价值用户使用短信+公众号推送组合,每月2到4次,内容围绕商品推荐和活动预告。低价值用户使用邮件或短信批量覆盖,每月1次就够了,避免过度打扰造成退订。
话术上也有讲究。对重要价值用户,话术核心是“专属”“感谢”“特权”;对挽留用户,话术核心是“回归”“好久不见”“专属礼”;对发展用户,话术核心是“再赠”“升级”“搭配”。如果你把高价值用户和流失用户的短信话术写成一样,那说明你还没真的把分层用起来。
5.3 RFM模型的局限性与升级思路
RFM模型虽然好用,但它也有不少局限性,我用得越久越觉得需要跟其他分析工具配合使用。
第一是它不考虑用户最近一次消费距今的具体商品,假设用户上个月买了婴儿奶粉,你把他归为高R用户,但如果孩子已经满3岁了,他大概率不会再来买奶粉了,这时候高R值的意义就大打折扣。所以RFM最好结合品类生命周期数据一起看。
第二是它没有区分自然流量用户和付费流量用户。一个用户是被广告拉来的,一个是自然搜索来的,虽然RFM表现相同,但获取成本完全不同,对利润的贡献也不同。引入渠道维度和获客成本做交叉分析,会让决策更精准。
第三是它可以做时间序列上的趋势分析。单次RFM快照只能看到用户当下的分层,如果每个月都跑一次RFM,就能观察到用户分层之间的迁移路径——重要的价值用户是变成了保持用户还是挽留用户。这种迁移分析才是更有预警价值的东西,相当于给用户分层加了“天气预报”功能。
6. 常见问题与排查技巧实录
6.1 数据层面的典型问题
第一个高频问题就是订单时间字段包含了退款订单,导致R值被“做新了”。订单创建时间和支付时间都要检查,有些订单创建了但没付款,过两天关闭了,这种订单会把用户最近消费时间拉近,让一个早就流失的用户看起来像是活跃用户。解决方法是只保留“交易成功”状态记录,同时要确认后台的“交易成功”状态是不是在退款之后仍然保留,有些平台的退款订单状态可能还是交易成功,需要再用退款金额字段二次过滤。
第二个常见问题是同一个用户在不同设备上的账号没打通。这个问题在小程序+APP+线下都有的业务里特别明显。我见过线下会员在线上商城用手机号登录后生成新ID,不到两个月RFM数据里就出现了几万个“新注册用户”,实际上全是一批老客。解决思路是以手机号或微信unionID为唯一用户标识,建立user_mapping表,再做RFM汇总。
第三个问题是数据窗口太短导致分层失真。店铺刚开张两个月就做RFM,那时候大部分用户都被算成高R,因为所有人都是最近下单的,分层结果参考价值很低。一般建议至少积累3到6个月的交易数据再跑RFM,交易数据越丰富分层越稳定。
6.2 评分与分层过程中的问题
qcut报错是我被问得最多的问题。前面提到过当分位数边界有重复值时,pd.qcut会直接报错。我后来习惯用rank方法实现类似的效果:rfm['recency_rank'] = rfm['recency'].rank(pct=True),然后以0.5为界划分高低档,这样不会报错,而且你还能自由调整阈值位置,从0.5改成0.4或者0.6都试一遍,看分层结果是否符合业务直觉。
另一个常见问题是指标方向搞反。R值是越小越好,打分时要注意判断方向。如果直接用qcut(recency, 2, labels=[1,0]),当数据分布偏斜时可能出现“最近30天内未购买的用户反而得高分”这种反直觉结果。我建议打分之后立刻抽样打印几个用户的原始值和分值,人工核对一遍方向,能省很多返工时间。
评分阈值怎么定才是合理的?很多团队纠结这个。我的建议是不要指望一次性定对,把阈值当成一个需要版本迭代的配置。先跑一版默认阈值,然后拉出分层用户名单给运营同事看,让他们凭经验判断这些用户是否符合标签定义,再反推调整阈值。经过两三轮校准,阈值会越来越贴合业务实际。
6.3 策略落地过程中的典型问题
RFM分层后面临的最大挑战不是模型本身,而是运营动作跟不上。很多团队做完分层,最后只给重要价值用户发了券,其他七类用户一个动作都没有。这个问题的本质是分层颗粒度和运营资源不匹配。解决方案是可以先聚焦优先级最高的两类用户——重要价值用户和重要挽留用户,把这两个群体的运营动作做深做透,再慢慢扩展到其他层级。
还有一个容易踩的坑就是RFM分层结果和CRM系统的打通问题。分析做完生成了几百个标签,但是运营在CRM后台没办法按这些标签圈选人群,导致策略根本没法执行。所以我建议在项目初期就把分层标签同步到CRM或用户运营平台里,用定时任务每天或每周更新一次用户标签,这样才能真正把RFM模型嵌入到日常运营的作业流程里。
7. 几个我自己用下来的经验心得
RFM模型做了这几年,我的体会有三点。
第一,不要把RFM当成一个一次性的分析项目,它应该是一个周期性运行的报表机制。我习惯每个月1号固定跑一次上月的RFM数据,然后对比上个月的分层迁移,及时发现用户群体的变动趋势。这样RFM就从“事后分析”变成了“事前预警”,可以提前对沉默用户做干预。
第二,数据分析师和运营人员一定要坐在一起过RFM结果。很多分析报告写得再漂亮,运营不看或者看不懂,那就等于零。我在项目里会组织一次“RFM分层解读会”,用最简单的表格和用户案例给运营讲清楚每个标签代表什么人、应该用什么策略,让运营真正理解这些标签的含义,后面执行起来才会顺畅。
第三,RFM模型的阈值需要持续迭代优化。每半年复盘一次,看当初定的R值阈值是否还符合当前的复购周期,F值的分界线是否需要调整。业务在变,用户行为在变,RFM的参数也必须跟着变,这是让模型持续有效的关键。
最后分享一个小技巧。跑完RFM之后,不要只盯着八类标签看,可以把“重要价值用户”和“重要挽留用户”两份名单拉出来对比,仔细看看这两批人曾经都有什么相似的行为特征。很多时候你会发现,现在的重要挽留用户,一年前就是重要价值用户,只是中间某个环节没有做好导致流失。找到那个转折点,比获得任何模型本身都更有价值。