做客户分群这四五年,我最大的体会是:大部分分群营销失败,不是算法不够准,而是企业把分群当成了数学题而非商业题。我在2023年帮一家连锁零售企业重构分群策略时,用同样一套客户数据,仅仅改变分群的目标定义和落地节奏,就把营销ROI从1.7拉到了4.2。这篇文章我会把当时做分群的全过程拆开讲:踩过哪些坑、用什么判断逻辑绕开这些坑、每一步怎么选特征、怎么定群数、怎么设计不同群体的营销动作。
适合正在做客户分群但总觉得“建完模型没效果”的运营、产品和数据岗位的人。下面先讲核心结论,再讲案例和具体做法。
很多人一谈到客户分群,就盯着聚类算法的轮廓系数、Calinski-Harabasz指数,想尽办法把分群的“准确性”提上去。但我跟踪过十几个分群营销项目后发现一个反直觉的现象:分群模型准确率从65%提升到85%,营销响应率只能提升2%到3%;而营销触达方式和优惠策略做对了,响应率可以直接翻倍。这说明,模型精度在真实营销场景中的边际收益是很低的。
大多数分群项目止步于“给客户贴标签”,却没有回答一个关键问题:贴完标签之后,运营动作差异化了吗?我见过一家电商公司把用户分成12个群体,但到了发优惠券环节,12个群体收到的都是满299减30。分群做得再细,营销动作没有差异化,业务结果自然没有变化。
换句话说,分群本身不产生价值,分群之后针对不同群体“做不同的事”才产生价值。
在某个零售项目中,我发现同样的分群结果,通过短信触达高价值客户的转化率是1.2%,通过企业微信加个性化推荐触达的转化率是9.6%。触点差8倍,分群算法带来的提升可能只有20%。所以做分群之前,先想清楚:你能触达客户的渠道有几个?触达内容的承载能力有多强?如果只有一个群发短信渠道,那么分群做得再精细,也只能在文案上做微调,收益非常有限。
执行链路指的是从“分群结果”到“客户看到内容”中间的完整流程:标签导出、人群圈选、策略匹配、渠道发送、数据回传、效果归因。任何一环断掉,前面模型的工作都白做。我服务过一家连锁餐饮品牌,模型做完了,结果分群标签在数据中台里导不出来,最后还是人工按会员等级手动圈选,分群模型直接被搁置了三个月。模型上线只是开始,执行链路通畅才是分群产生效果的真正前提。

2022年,一个做连锁美妆的客户找到我,说他们有30万会员,想做客户分群。当时他们的数据团队已经提前建了一版K-Means聚类模型,分了16个群体,轮廓系数0.52,内部觉得“模型很准”。我接手后没有急着调模型,而是先做了两件事:看分群结果和看运营动作。结果发现一个严重的问题,运营团队根本分不清16个群体的区别,最后落地时通过一个折中方案输出5套优惠策略,其中4套非常接近。
客户的数据基础不差:有会员基础信息、近两年订单流水、小程序浏览行为、客服咨询记录。最初的数据团队把所有可用字段都丢进模型,做了主成分降维后用K-Means聚类,得到16个群体。从技术角度看没什么问题,但从业务角度看,16个群体的“特征画像”很多重叠。比如第7组和第9组,主要差异是“购买频次”差了0.3次/月,“客单价”差了18块钱。这种差异不足以支撑差异化的营销策略。
(1)用“消费金额”做唯一标签是大坑。当时的模型排序权重最高的特征是近12个月消费总额。这个特征天然偏向老客户,导致分群结果变成“按时间累积的消费能力分层”,而不是“消费行为模式分层”。一个买过多次低价产品的新用户,和一个买过一次高价产品的老用户,被分到了同一群,实际上两者的需求完全不同。
(2)分群太细,运营无法执行。16个群体意味着运营要准备16套素材、16套优惠策略、16条话术。一个6个人的运营团队根本做不到。他们实际执行时只能强行把16个群体合并成5套动作,而合并后的群体边界与原始群体不一致,等于白分。
(3)没有做分群后的AB测试。模型上线后直接全量跑了一个月,数据看着“有提升”,但因为没设对照组,提升到底是分群的功劳还是当季促销的功劳,说不清楚。后来我在对照组设计上补了一刀,才看清真实增量。

做客户分群最常见的四类误区,我基本都踩过,也看过大量同行栽在类似的地方。这些误区的共性是:过度关注统计指标,忽视业务执行的真实约束。
特征工程处理得太丰富,模型在训练集上表现很好,但分群结果的业务可解释性急剧下降。比如你把“凌晨1点浏览时长”“优惠券领取后5分钟内的点击次数”都放进模型,聚类出来的群体很难用一句话概括。运营拿到分群结果后不知道这群人“是谁”,自然不知道“怎么打”。我的经验是:特征数量控制在8到15个之间,每个特征必须有明确的业务解读。
很多团队觉得RFM模型“太基础”,要上聚类、上深度学习。但RFM的可解释性和落地效率是聚类模型很难替代的。我看过很多企业的项目,RFM分群加决策树策略,比一个复杂的聚类模型多产生20%以上的营销增量,原因是RFM的分群结果可以直接映射到“高价值客户保活”“低频客户唤醒”“高客单人群交叉销售”这些运营动作上。模型复杂度与业务效果不是正相关,落地效率才是决定因素。
客户行为是动态变化的。很多企业上半年做的分群,到下半年还直接用,相当于拿着去年的地图找今年的客户。某个零售客户在2023年初分群时,“高活跃”客户定义是“每月购买2次以上”,到了年中客单价下降、购买频次上升,“每月购买2次”已经变成平均水平。用旧标准做分群,重点客户群体严重失真。分群模型需要定期校准,至少每季度验证一次群内特征是否还成立。
响应率从5%提升到6%,看起来是20%的提升,但如果为了追这1个百分点,把优惠力度从85折改成7折,毛利损失可能远超增量收入。我建议用增量毛利而不是响应率来评估分群营销效果。计算方式是:分群策略带来的额外毛利,减去额外营销成本和优惠成本。

每次有企业问我“我们该不该做客户分群”,我不会先问“你有多少数据、用什么算法”,而是先问“你想通过分群改变客户的什么行为”。回答不了这个问题的分群项目,大概率是白做。
我总结了一个三步法,用来判断分群项目的立项价值:
用这个三步法看下来,很多企业的分群项目其实没有立项必要,他们想要达成的目标根本不需要区分客户。
分群项目的成功指标不应只有轮廓系数和方差比,而应包含两个业务指标:群体间策略响应差异度和单策略毛利增量。群体间策略响应差异度衡量的是“不同群体对不同干预变量的反应差异是否显著”;单策略毛利增量衡量的是“针对特定群体的特定策略是否能额外赚钱”。这两个指标,一个管差异化,一个管盈利性,缺一不可。
我接手过太多被“脏数据”坑了的项目。客户是否被正确去重、沉默客户的定义是否统一、跨渠道的客户ID是否打通,这些问题没解决,模型再复杂也白搭。数据质量评估要优先于模型选型。一个简单的方法是:先按“最近一次购买时间”排序,手动抽查100个客户的画像和最近订单,看标签是否和实际行为一致。如果标签准确率低于85%,先别着急建模。
落地成本不仅包括建模工程师的时间和算力成本,还包括运营团队出素材、配策略、建表单、上线活动的协作成本。分群的群体数每增加1个,运营团队的素材生产量大概增加15%到20%。如果你的运营团队只有3个人,建议分群数量控制在4到5个以内。

下面用一个我实际做过的案例来拆解分群的完整流程。这家企业是连锁美妆零售品牌,30万会员,初期没有数据团队,只有两个业务分析师。目标是提升会员复购率。整个过程从数据清洗到策略上线一共花了六周,没有用复杂的深度学习,只用了RFM框架加简化K-Means。
分群前的数据清洗,重点不是去重,而是定口径。当时关于“活跃会员”,IT部门、运营部门和财务部门各有定义:IT认为是“近30天有登录”,运营认为是“近90天有购买”,财务认为是“有充值余额”。我们花了两天时间拉齐口径,最终确定:活跃会员 = 近90天内有至少一次购买行为,且非仅退款订单。就这一个简单的定义,把会员池从30万清洗到21.7万,剔除了大量“名义会员”。
代码层面,当时我们用SQL做了基础清洗和特征计算。这里给一个简化版的特征计算示例:
-- 计算RFM特征
SELECT
customer_id,
COUNT(DISTINCT order_id) AS frequency,
AVG(order_amount) AS monetary_avg,
MAX(DATE(order_time)) AS last_order_date,
DATEDIFF('day', MAX(DATE(order_time)), CURRENT_DATE) AS recency_days
FROM orders
WHERE order_status != 'refunded'
GROUP BY customer_id;我们初始构造了30多个特征,后来业务讨论后压缩到10个核心特征:最近一次购买距今天数、月均购买频次、客单价30天均值、品类占比(护肤/彩妆/工具)、渠道偏好(线上/线下)、平均折扣敏感度、投诉退款次数、入会时长、会员等级、近30天浏览UV。这些特征覆盖了消费能力、行为活跃度、品类偏好、渠道偏好和售后体验五个维度。
筛选特征时,我坚持一个原则:每个特征必须能直接映射到一个运营动作。比如“平均折扣敏感度”用来决定给不给高额优惠券;“品类占比”用来做关联品类推荐。那些说不清怎么影响运营决策的特征,哪怕统计上显著,也不用了。
我们先用RFM模型做了一版分群,作为业务基线。RFM的三个维度各分三档,理论上能产出27个格子,但实际业务只需要重点关注其中几个:高价值活跃客户、高价值流失风险客户、中价值潜力客户、低价值低频客户。随后用K-Means做了一版聚类对比,重点是观察聚类结果能否和RFM的业务语义对应。
K-Means的调参我比较看重两点:一是聚类数K,二是特征标准化后的结果稳定性。当时用轮廓系数和业务可解释性综合判断,K=5是最优选择。分群数定在5个,不是4个也不是6个,是因为运营团队明确反馈“5套差异化策略是当前人力的上限”。K值选择既要看统计指标,也要看运营层的执行容量。
from sklearn.cluster import KMeans from sklearn.preprocessing import StandardScaler 选取10个特征列 features = df[['recency_days', 'monthly_freq', 'avg_order_value', ...]] scaler = StandardScaler() features_scaled = scaler.fit_transform(features) 尝试K=4~8,结合业务语义选择K=5 model = KMeans(n_clusters=5, random_state=42, n_init=10) df['segment'] = model.fit_predict(features_scaled)
聚类模型的解读环节决定分群能不能落地。最终5个客户群体的画像如下:
| 群体名称 | 人数占比 | 核心特征 | 业务标签 |
|---|---|---|---|
| A群:核心忠诚层 | 7% | 高客单、高频次、近30天有购买 | 需要尊享服务 |
| B群:高价值流失风险层 | 12% | 历史高客单、近90天未购买 | 需要重点召回 |
| C群:中价值成长层 | 23% | 中客单、频次稳定、偏好彩妆 | 需要品类拓展 |
| D群:低频价格敏感层 | 28% | 低客单、折扣敏感度高 | 需要促销驱动 |
| E群:沉默沉睡层 | 30% | 180天以上无购买、曾有一次购买 | 需要低预算唤醒 |
分群完成之后,真正的“精准营销”才开始。A群客户享受生日双倍积分、专属客服、新品试用权,不发大额优惠券,避免损伤毛利。B群客户是流失预警重点,由人工客服一对一沟通,并派发“90天回归专享礼”,形式是一张限期优惠券。C群客户是增长主力,我们给他们推送彩妆品类的新品测评和“满299加赠小样”的活动,用加赠而非打折来维持客单价。D群客户只在大促节点推送高折扣清仓信息,平时不做高频打扰。
E群客户每月最多触达一次,用低价爆款+新人券尝试低成本唤醒。五个群体五套打法,与之前“全员满299减30”完全不同。
我们设置了90天的评估周期,并做了一个严格的AB测试:将全体会员随机分为策略组和对照组,策略组使用分群差异化策略,对照组沿用原有统一促销。90天后,策略组的会员复购率从11.3%提升到14.7%,相对提升30%;单客户营销成本从2.1元下降到1.6元。更重要的是,分群策略带来的总毛利增量是纯促销策略的2.3倍。这个案例证明了:分群模型的复杂程度可以不高,但分群后的策略差异化和执行节奏必须扎实。


不是所有企业都需要上复杂的客户分群模型。不同体量、不同数据基础、不同团队能力的公司,最优做法完全不同。我按三类情况给出行动建议。
年营收5000万以下、会员数不到5万的企业,我建议直接做RFM手工分群。用Excel或BI工具按“最近一次消费、消费频次、消费金额”打分,然后拆成5到8个格子,挑其中最大的两个格子做差异化运营就够了。这个阶段最大的问题是连基础的订单数据都没打通,做聚类只会放大数据瑕疵。先把RFM落地,再考虑其他。
会员数在5万到50万之间、有1到2个数据分析师的企业,可以在RFM基础上补充品类偏好、渠道偏好两个行为特征,用K-Means聚类到5到7个群体。核心指标是“群体策略响应差异度”。这个阶段不要追求算法复杂度,要把精力放在运营动作的标准化上。当时美妆客户就属于这一类。
会员数超过50万、有专门的数据团队和营销自动化系统,可以尝试更丰富的特征体系、甚至引入实时特征的流式计算。但前提是营销闭环必须打通:分群结果能自动同步到营销平台,策略能按人群自动执行,效果数据能自动回传模型迭代。没有这个闭环,再先进的模型都是空中楼阁。

做客户分群,本质上是做取舍。很多项目死在“什么都想要”:既要模型精度,又要快速上线;既要分群细致,又要运营成本低;既要策略个性化,又要统一管理。下面四组取舍是每个项目都会遇到的典型矛盾。
复杂模型的精度确实更高,但建模、调参、上线验证周期长。一个简单的RFM模型一周就能上线,一个深度聚类模型可能要做两个月。如果你的业务节奏是季度性的大促,那么一个季度里前两周就该上线分群模型,留出后面的时间给策略执行。我宁可要一个八周内跑完的80分方案,也不要一个十六周才上线的95分方案。
一线运营看得懂RFM和K-Means的群体画像,但很难理解一个复杂特征交叉后的群体边界。当运营无法直观理解“这群人是谁”的时候,策略执行就会变形。如果一定要用复杂模型,请同时输出一个简版画像卡片,用最朴素的语言解释群体特征,比如“这批人过去3个月买过3次彩妆,平均客单价150元,最近45天没有消费”。
一次性分群简单、稳定、易监控,但客户行为变化后容易失效。实时分群对数据基础设施要求高,能捕捉客户状态变化,但开发和运维成本高。我建议大多数企业先做“周期性分群”:每月或每季度更新一次客户分群,而非追求实时。只有在营销节奏极快、客户生命周期短(比如快时尚、外卖)的场景,实时分群才值得投入。
补充外部数据(如第三方行为标签、征信数据)要花钱,但有时候确实能提升分群效果。我的判断标准是:新增数据带来的毛利增量,必须能在6个月内覆盖数据采购和维护成本。如果做不到,就不要买。优先利用已有的企业内部数据,很多企业的内部数据已经足够支撑有效的客户分群,只是没有被整合和清洗。

做完一次客户分群只是起点,真正拉开差距的是分群的迭代机制。我建议团队分群项目结束后,立刻固定三个机制:月度分群效果回顾、季度特征口径校准、半年度模型重构评估。月度回顾看当前策略的响应趋势,季度校准看客户特征是否迁移,半年度重构评估决定是否换算法或换特征。这三个机制的背后,是把分群当作一个持续运转的营销系统,而不是一次性交差的报告。下一步,你不妨从自己的会员池里挑一个最痛的业务目标,先不做模型,拿RFM手工分一下,再针对前两个群体设计差异化的动作,测试两到四周,把响应数据拉出来看看。
往往这一步做扎实了,比再研究三个月模型更有效。
我现在要用RFM做客户分群,但R、F、M的阈值不敢拍脑袋定。网上都说用分位数,可一用分位数,高价值群被切得太细,低价值群又宽得没法看。到底怎么定阈值才能既能分得清,又能指导营销策略?
我操盘过一家年订单量60万的电商客户项目,RFM的“3个数字”看起来简单,真正落地时,阈值是第一个坑。先明确观察窗口:我取过去365天,排除当天异常数据,对50万有效用户重新统计R(最近一次购买距今天数)、F(累计有效购买次数)、M(累计实付金额)。关于阈值,我不建议直接用全局均值。
电商消费数据严重右偏,均值会被大客户拉高,导致80%的人变成低价值。我当时用“分位数+业务校验”两步走:先尝试P25、P50、P75、P90切分,然后分组看每个盒子的下单转化率、平均毛利率、退换货率。分界线不是统计最优,而是“能让业务愿意执行”的边界。更关键的是,F与M经常高度相关。
我遇到两者相关系数高达0.83,分群结果基本是F的一维复制品。我的替代方案是:用“平均客单价=GMV/有效订单数”替换M,或者对F和M做因子分析后再聚类。如果只做RFM,建议保留R、F、M三轴,但对M做对数变换或Winsorize处理,把极端值从100万压到1万。
另外,阈值定完后一定要做“可解释性”测试。我曾用P75阈值把R=3次、M>=800元定义为“高价值活跃群”,但该群只覆盖3.8%用户;调整成P60/P50/P50后,覆盖提高到9.2%,后续活动ROI反而更高,因为触达人数够了。所以阈值要跟着营销资源走,资源少就切得狠,资源多就切得宽。
最后给你一个判断标准:选定阈值后,相邻群最重要的业务指标(比如复购率)应当有统计显著的差异,且差异方向符合业务直觉。如果没有,就换阈值,直到达到这个标准。
我用K-Means做客户聚类,肘部法则告诉我K=5,轮廓系数却告诉我K=2。强行用K=5分出来的群,有两个群几乎一样,没法解释。我该相信哪个?实际项目中总不可能每次都让业务拍脑袋吧?
先说结论:K-Means的K不是数学唯一解,是“统计指标+业务可操作性”的平衡点。我建议先让业务方列出3-5条他们希望看到的分群逻辑,比如“要能区分高消费低频和低消费高频”,再把候选K限制在3-6之间,避免盲目选大K。我在一个零售品牌项目中,样本12万,特征12个。
肘部法则和轮廓系数给出的最优K分别为4和8,但8个群里有3个在营销资源上无法区分,最终我选择4。因为K=4时,每个群的会员数占总比在12%~35%,运营团队能分配不同权益;K=8时,最小的群只有2%,给权益不够成本,不给又会让用户觉得不公。统计指标冲突时,我常用两个补充验证:一是聚类稳定性。
用60%样本训练K-Means,训练后对剩下40%预测,再对40%单独聚类,计算两者分配一致率(Adjusted Rand Index)。如果一致率低于0.6,说明这个K太脆,换人换数据就会变。二是袋外解释性:用随机森林对一个分类标签(比如是否高价值)做预测,看聚类中心在决策边界上的区分度。
这段听起来玄,但比单纯看轮廓系数靠谱。还有一种更实用的方法:先做层次聚类看树状图。我在客户分群前会先跑一次Agglomerative Clustering,用ward距离,观察合并顺序。如果树状图显示聚成3类和5类都有明显跳变,那这个范围内都可以;再结合业务资源定K。这个方法在消费数据上表现稳定。
最后提醒:聚类之前一定要标准化。我用的是RobustScaler,不是MinMax,因为客户特征常有极端值(比如一次性采购10万),RobustScaler对中位数和四分位数更稳健。
做完后还需要输出每个群的中心向量和相对总体的“提升度”表,比如客单价提升1.6倍、活跃天数提升2.3倍,这样才能让老板一眼看懂。
我分出来了高价值客户、沉睡客户、价格敏感客户,但具体到发什么券、发多少就没有头绪了。最头疼的是老板只看整体销售,我怎么证明转化率的提升是因为分群策略而不是自然增长?有没有可落地的效果评估方法?
很多教程只教你分群,不讲策略和评估,这是巨大的空白。我的做法是把客户分群当成“决策分组”,而不是终点。每个群必须对应一个可执行的动作和一个可计量的指标。比如沉睡唤醒群,动作是“发放3天内有效的回归券”,指标是“90天回归购买率”。
策略设计时,我用一个“四象限”模板:先横切价值(高/低用RFM或LTV),再纵切行为(活跃/沉默用最近访问和购买间隔)。高价值+沉默,配专人回访,权益是免运费+专属客服;高价值+活跃,配会员积分加速,不给折扣;低价值+活跃,配新人礼包促升单;低价值+沉默,则用爆品短信,成本压到最低。
这套模板在我的团队里被命名为“双轴分群策略”,比单纯看RFM更有行动指导性。效果评估方面,我不建议直接看整体销售额,因为同期有季节和大促混淆。更严谨的做法是随机对照实验:将待触达的客户按群随机分为测试组(20%)、对照组(20%)和留白组(60%)。测试组执行策略,对照组不执行,留白组记录但不用。
比如我做一个醒券项目:沉睡群测试组回归率从5.8%升到14.2%,对照组是6.1%,测试组提升8.1个百分点。对照组其实就是自然回归率,测试组和对照组的差异才是策略带来的真实增量。如果是给一批人混合发不同策略,可用Uplift模型(增益模型)计算每个用户被策略影响的净效应。
别只看转化率,因为有些用户不发券也会买。实战中,我用了个简单的方法:在策略下发后,按群组算“双重差分”,即(测试组后-前)-(对照组后-前),再除以对照组前值,得到相对增量的百分比。这样做比看绝对转化率更有说服力。还要注意:客户分群决策要留“分析期”的存档。
我见过很多项目,分群时调了一版参数,后来忘了,结果策略评估时无法复现。建议每次分群后把特征版本、聚类中心、阈值、样本范围存为快照。看似额外工作量,却能避免整个营销复盘变成黑箱。
我刚开始做客户分群,数据里有金额、次数、注册天数,但量纲差很多。缺失值我习惯填均值,结果聚类出来的群跟业务认知完全对不上。还有,用户既有新客又有老客,是不是要先分开?希望能有人讲一讲真正跑数据时会遇到的那些坑。
先说我踩过的第一个坑:把全体用户不做拆分直接聚类,导致新客和老客被强拧在一个模型里。新客第一次消费300元,老客月均消费200元,聚类结果可能会把他们分进同一群,但他们的生命周期价值完全不同。我的解法是:先按注册时长或首次购买距今分成“新客期(第二个坑是特征量纲和分布。
金额、频次、间隔天数混合在一起,如果不缩放,K-Means的距离被金额主导。我对比过MinMax、StandardScaler和RobustScaler:在消费数据里,RobustScaler效果最好。
因为它不受极端值干扰,比如一个用户买了20万,MinMax会把其他所有金额压到趋近于0,而RobustScaler用中位数和IQR,能保留区分度。第三个坑是缺失值别无脑填均值。比如“最近一次购买距今”缺失,可能因为用户是注册未购,缺失本身就是“0购买”信息。
此时应把“有无购买”作为单独特征,再把缺失值填为业务上限(比如观察窗+1)。对“性别”这种缺失,我会单列“未知”类别,而不是填众数。聚类算法对这类占位很敏感。第四个坑是特征要能反映“行为趋势”,而不只是“静态累计”。
例如:用户A过去三年消费100次、总额3万元,用户B近三个月消费30次、总额1万元,静态累计特征会把A判为更优质,但其实B的活跃度和成长性更强。我在实战中增加了“近90天消费占比”、“月均消费环比增长率”、“客单价变异系数”等趋势特征,再用主成分降维,聚类群的可解释性大幅提升。
最后,数据清洗时把退货和退款单独处理。我见过有人直接把实付金额填0,导致同一个高价值用户因为一次退款被踢出原群。正确做法是保留“退款额度比”特征,如果比例超过30%,单独标记为“风险客群”,而不是用总金额掩盖。清洗后,我还会跑一遍分位点检查:每个特征P1和P99是否合理,异常样本单独拉出来看一下。


读者评论
作为数据分析师,见过太多同事把轮廓系数当KPI。这篇文章提醒得很好:模型精度提升带来的响应率增益很有限,而营销触点、策略匹配这些执行细节才是决定ROI的关键。我最近复盘项目也发现,分群后动作有没有差异化,比模型用KMeans还是GMM重要得多。
最认同“评估数据质量比评估模型更重要”这个判断。之前做分群就栽在客户ID未打通上,标签全乱了。文章里的三步法和成功指标也很务实,尤其用增量毛利来衡量效果,而不是只看响应率,能避免很多虚假的繁荣。
做分群最常犯的错误确实是只看数学指标,忘了商业目标。文中连锁美妆的案例很典型:分16个群,运营根本执行不了。我建议每季度校准一次分群结果,因为客户行为变化很快,旧标准会失真。整体方法比较接地气,适合落地参考。