去年第四季度,我帮一家做家居收纳的跨境电商团队做数据复盘时发现一个很反常识的现象:他们的SKU数量从380个精简到了210个,动销率从52%提升到了78%,但整体GMV反而下滑了11%。团队负责人一开始认为是流量问题,加了两轮广告预算,仍然没有起色。直到我们把"购物篮共现矩阵"跑出来,才找到真正的原因,被砍掉的那170个SKU里,有23个是高频连带购买的"钩子商品",它们本身毛利很低、单看数据就是"该砍",但它们在组合里承担的是"让客户凑单到免邮门槛"的角色。
单品视角下它们是负担,组合视角下它们是杠杆。
这件事让我更坚定一个判断:商品分析真正的价值,不在单品诊断,而在组合优化。单品分析回答的是"这个商品卖得好不好",组合优化回答的是"这些商品放在一起能不能赚更多钱"。前者是体检报告,后者才是处方。这篇文章我会把组合优化场景下的流程设计完整拆开,从目标定义、数据准备、关联发现、策略生成到效果验证,每一步给出输入、动作、输出,以及我自己踩过的坑。
很多人做组合优化,习惯从"分析方法"入手,先学关联规则、先学RFM、先学聚类。但我在实际项目里发现,流程设计的关键不是选方法,而是设闸门。每一道闸门决定一批商品能不能进入下一环节,闸门设错了,后面分析再精细都是白做。
第一道闸门是目标闸门:这次组合优化到底是为了清库存、提客单、增连带,还是保毛利?目标不同,同一批商品的处理方式完全相反。清库存场景下,低动销高库存的商品应该被"捆绑进组合";提客单场景下,低动销商品应该被"移出主推组合"。
第二道闸门是数据闸门:不是所有数据都能用来做组合分析。交易数据、购物篮数据、流量数据、库存数据、价格数据,各自的采样口径和更新频率不同,混用会直接导致结论失真。
第三道闸门是动作闸门:分析结果必须能映射成具体动作,是调整货架陈列、是设置满减、是调整推荐位、还是改组合套装。如果一条分析结论无法映射到任何动作,它就只是报告,不是策略。
我常跟团队说,判断一次组合优化是否值得做,先看这三道闸门是否都通了。三闸门不通,先修流程;三闸门通了,再谈方法。

我见过太多团队一上来就问:"购物篮分析用什么算法?"这个问题本身就问反了。购物篮分析只是众多方法之一,它解决的是"发现商品关联"这一件事,但组合优化至少包含四个子问题:组合该有多宽、每个品类该有多深、哪些商品应该绑定、哪些商品应该替代。关联规则只覆盖第三个。
更实操的顺序是:先定目标、再定数据、再选方法。目标决定了数据窗口该取多长,数据窗口决定了方法可不可用。比如做季节性品类组合优化,数据窗口必须覆盖完整季节周期,否则关联规则会漏掉季节性连带;做快消复购组合优化,数据窗口要短、更新频率要高,否则会错过短期行为变化。
单品分析的方法论其实非常成熟:销量、毛利、动销率、周转天数,四个指标就能把商品分成四象限。但我在过去三年接触的30多个零售和电商项目里,真正靠单品分析做出有效决策的不到三分之一。原因很直接,商品不是独立存在的,它们之间有价值交换。
前面提到的家居收纳团队,是我印象最深的一个案例。他们有210个SKU,按单品四象限分析,A类(高销高毛)商品42个,B类(高销低毛)商品是58个,C类(低销高毛)商品是67个,D类(低销低毛)商品是43个。
团队的第一反应是砍D类、优化C类。但组合分析跑出来后发现,D类商品中有11个是A类商品的"配件型连带",比如某个爆款收纳箱的专用隔板、专用标签贴。这些配件单品看是D类,但它们的购买几乎100%发生在购买了某个A类商品的订单里。
砍掉它们的结果是:A类商品的退货率上升了6个百分点,因为客户收到主商品后发现缺少配件,体验落差直接转化为退货。这就是单品视角和组合视角的根本冲突:单品视角看的是商品自身的效率,组合视角看的是商品在订单结构中的角色。

不是所有行业都需要组合优化。我做过一个粗略统计:在客单价80元以上、单订单平均件数超过1.5件的零售场景里,组合优化的ROI最明显。这个规律背后的逻辑是,只有当订单里存在"多件购买"时,商品之间的搭配关系才有优化空间。
反过来,如果客单价很低、单订单基本都是1件商品,那么组合优化的收益会非常有限,这时候更应该把精力放在流量获取和单品转化上。
跨境电商是组合优化收益最典型的场景之一,因为跨境物流的运费结构天然鼓励多件合并。我接触过的一个做户外装备的跨境团队,通过组合优化把平均客单价从47美元提升到了63美元,提升幅度34%,核心动作就是把"高频连带但从未被放在一起推荐"的商品重新组合成套装。这类工作如果只看单品数据,是完全看不出来的。
组合优化的流程看起来不复杂,但真正做过的人都知道,每个环节都有陷阱。我把过去几年踩过的坑整理成五条,按出现频率排序。
购物篮分析跑出来的关联规则,本质上只是"共现统计",不是因果关系。两个商品经常一起买,可能是真的互补,可能是价格区间相似,也可能只是它们都被同一个爆款流量带过。共现不等于互补,互补不等于可组合。
我遇到过最极端的例子:某快消品牌的数据里,"婴儿纸尿裤"和"精酿啤酒"共现率很高,看数据像是经典案例的翻版。但实际原因很简单,这个品牌的门店位于一个年轻家庭聚集的社区,父母晚上出来买纸尿裤顺手买啤酒。这不是商品互补,这是人群重合。如果因为共现率高就做组合推荐,反而会稀释每个商品的转化效率。
关联规则对数据窗口非常敏感。窗口太短,样本量不足,跑出来的是噪声;窗口太长,行为变化被平均掉,跑出来的是历史而非现状。
我的经验判断是:快消和生鲜类,窗口取4到8周;耐用品和跨品类电商,窗口取12到26周;季节性品类,窗口必须覆盖至少一个完整季节周期再加一个过渡期。这个标准不是绝对的,但偏离太多就要重新审视。

很多团队跑关联规则时不做样本量过滤,结果出来一堆"置信度100%但只出现2次"的规则。这类规则在统计上毫无意义,但容易被当成"新发现"。
我一般要求两个过滤条件同时满足:共现订单数不低于50单,支持度不低于0.5%。低于这个门槛的规则,即使置信度再高,也先放进观察池,不进入策略生成环节。
组合优化不是做完一次就结束的项目,它是一个需要持续迭代的机制。原因很简单,商品会上下架、价格会调整、季节会变化,任何一次变动都可能让之前的组合策略失效。
我建议的迭代频率是:快消和电商类,每月重新跑一次关联规则;耐用品类,每季度一次;季节性品类,在每个季节切换前两周做一次。频率过高会浪费人力,频率过低会让策略滞后于业务变化。
这是最致命的一个坑。很多团队做完组合调整就直接进入下一个项目,从不回头验证。结果是,不知道策略有效还是无效,也不知道该继续还是该回滚。
我坚持的做法是:每一次组合调整都必须预设验证指标和验证周期。指标不能只是GMV,至少要包含客单价、连带率、退货率、毛利率四个维度;周期不能少于两周,因为组合调整对消费者行为的影响需要时间发酵。
把上面的误区都规避掉之后,就是一套可复用的流程。我把它总结为四步:定义目标、准备数据、生成策略、验证迭代。每一步都有明确的输入、动作、输出,下面逐步拆解。
目标定义是所有后续工作的前提。我在项目里通常把组合优化目标归为四类,每类的判断标准和数据口径都不同。
| 目标类型 | 核心指标 | 适用场景 | 数据窗口 |
|---|---|---|---|
| 清库存 | 库存周转天数、滞销SKU占比 | 季末、换季、清仓 | 4-8周 |
| 提客单 | 平均订单金额、多件订单占比 | 日常运营、大促前 | 8-12周 |
| 增连带 | 连带率、平均件数 | 品类扩张、新品上架 | 8-12周 |
| 保毛利 | 毛利率、折扣依赖度 | 毛利承压、成本上升 | 12-26周 |
需要强调的是,一次组合优化只能有一个主目标。多目标同时进行会导致策略自相矛盾,比如清库存要求捆绑滞销品,提客单要求推荐高价连带,两者往往冲突。如果确实需要兼顾,应该分阶段进行,先清库存、再提客单。
数据准备阶段,我一般要求至少准备五类数据:订单明细、商品主数据、库存快照、价格历史、流量来源。其中订单明细是核心,其他四类是辅助校验。
关联发现的具体方法,取决于数据规模和业务类型。我常用的有三种,各自的适用边界如下。
下面是一个简化的购物篮共现分析示例,用Python实现,输入是订单商品清单,输出是共现矩阵和过滤后的规则集。
import pandas as pd
from itertools import combinations
from collections import Counter
输入:订单明细,每行是一个订单的一个商品
假设df包含 order_id 和 sku_id 两列
order_sku = df.groupby('order_id')['sku_id'].apply(list)
统计共现
pair_counter = Counter()
sku_counter = Counter()
for items in order_sku:
if len(items) continue
for sku in items:
sku_counter[sku] += 1
for pair in combinations(sorted(set(items)), 2):
pair_counter[pair] += 1
生成规则
total_orders = len(order_sku)
rules = []
MIN_SUPPORT = 0.005
MIN_COUNT = 50
for (a, b), count in pair_counter.items():
if count continue
support = count / total_orders
if support continue
conf_ab = count / sku_counter[a]
conf_ba = count / sku_counter[b]
lift = support / ((sku_counter[a]/total_orders) * (sku_counter[b]/total_orders))
rules.append({
'antecedent': a, 'consequent': b,
'support': round(support, 4),
'confidence': round(max(conf_ab, conf_ba), 4),
'lift': round(lift, 2)
})
rules_df = pd.DataFrame(rules).sort_values('lift', ascending=False)这段代码里,lift(提升度)是我最看重的指标。支持度和置信度高,只能说明两个商品经常一起出现;lift大于1,才说明它们的共现是"超出随机水平"的,这才是真正的互补信号。我的经验是,lift低于1.2的规则基本可以忽略。

从关联规则到可执行策略,中间隔着一层"业务翻译"。我用的是一个三维排序法:按连带强度排序、按毛利贡献排序、按库存健康度排序。三个维度都高的规则优先执行,任何一个维度拖后腿的规则都要慎重。
具体排序逻辑是:
这里要特别提醒的是,毛利率为负的组合是绝对不能推的,哪怕连带率再高。我见过团队为了做连带,把高毛利商品和负毛利商品绑在一起,结果连带率上去了、整体毛利反而下降。这种组合不是优化,是失血。
验证阶段最容易被忽视的是"对照组设计"。如果只是调整前后做对比,很难排除季节、流量、促销等其他因素的影响。我的做法是:在可行的情况下设置AB测试,A组执行组合策略,B组维持原状,观察2到4周。
验证指标不能只看一个,我通常要求同时跟踪四个:客单价、连带率、退货率、毛利率。四个指标里如果只有一个正向、三个负向,这次组合调整就是失败的,应该回滚。
讲完流程,用真实工具跑一遍会更有体感。我近期在一个跨境电商项目里用了数跨境(官网:https://shukuajing.jiushuyun.com/?utm_source=seo&utm;_plan=est&utm;_unit=gys)做组合分析,把流程从"人工Excel"迁移到系统化的分析链路,效果比预期来得更直接。
Excel不是不能做购物篮分析,但它有三个明显的瓶颈:第一,订单量超过50万单后,透视表和公式计算会严重卡顿;第二,关联规则的迭代需要反复重跑,Excel每次都要重新搭表;第三,分析结果和库存、价格数据是割裂的,无法形成闭环。
数跨境的定位是跨境电商场景下的数据分析工具,它把订单、商品、库存、价格放在同一个数据模型里,组合分析可以直接调用库存和毛利字段做二次筛选,这一点是我最看重的。组合优化真正的难点从来不是"跑出关联",而是"从关联里挑出可执行的、有毛利的、库存健康的组合"。这个二次筛选环节,Excel做起来非常痛苦。
这个项目是一个做户外和露营装备的跨境店铺,SKU数量420个,数据窗口我取了12周,因为户外装备属于中频复购品,窗口太短会漏掉季节性连带。
第一轮跑出来,符合"共现订单数≥50、支持度≥0.5%、lift≥1.2"三条门槛的规则有73条。按三维排序法筛选后,进入"立即执行"档的是12条,"小范围测试"档的是21条,其余40条进观察池。
执行4周后,12条立即执行策略的效果如下:
| 指标 | 执行前 | 执行4周后 | 变化 |
|---|---|---|---|
| 平均客单价 | 47.2美元 | 58.6美元 | +24.2% |
| 连带率 | 1.38件/单 | 1.71件/单 | +23.9% |
| 退货率 | 8.4% | 7.9% | -0.5个百分点 |
| 组合商品毛利率 | , | 34.7% | 高于店铺均值3.2个百分点 |
这里有一个值得说明的细节:退货率没有上升反而下降。原因是,这12条策略里有一半是"配件型连带",把原本客户需要单独找的配件直接组合进推荐,减少了客户"买错/漏买"的概率。这个现象在户外装备、家居收纳、电子产品配件这几个类目里都很常见。

40条观察池规则没有被执行,原因主要有三类。第一类是样本量不足:共现订单数在50到80之间,统计上不够稳健,需要更长时间验证。第二类是毛利为负:组合后测算毛利低于店铺底线,即使连带率高也不推。第三类是库存不匹配:其中一端商品库存紧张,组合推荐反而会加剧缺货。
我的判断是,观察池不是"被淘汰的规则",而是"暂时条件不成熟的规则"。每季度重新评估一次,条件成熟时再提升到执行档。这样处理的好处是,不浪费任何一条分析结论,但也不冒进执行不成熟的策略。
组合优化没有万能方案,不同业务阶段的行动重点完全不同。我把常见的四种情况整理如下,每种给出判断标准和具体动作。
如果订单量在1万单以下,且没有稳定的商品结构,我建议先不要做复杂的关联规则分析。这个阶段的重点是积累数据,而不是挖掘数据。动作上,优先把订单明细、商品主数据、库存快照这三类数据打通,保证后续分析有基础。
同时可以做一些轻量的组合尝试,比如人工挑选5到10对"明显互补"的商品做搭配推荐,观察转化数据。这些尝试的作用不是产生收益,而是验证"组合推荐"这个动作在你们店铺里是否有效。
这是最常见的卡点。分析做了一堆,但运营团队不知道该怎么执行。问题的根源在于,分析输出的是"规则",运营需要的是"动作"。
我的建议是,把每条策略翻译成三个明确字段:组合内容、执行位置、执行时间。"A商品和B商品应该组合"是规则;"A商品和B商品在商品详情页的'常一起购买'模块展示,从下周一开始"才是动作。没有这三个字段的策略,一律不发。
组合策略的效果衰减是必然的,原因可能是客户已经看腻了推荐位,可能是竞品也开始做类似组合,也可能是季节变化导致关联关系失效。
这种情况下,我建议优先做两件事:第一,重新跑一遍关联规则,看原来的高lift规则是否还是高lift;第二,检查执行位置是否过于单一,尝试把组合推荐从详情页扩展到购物车页、结算页、邮件召回。位置的变化往往比组合内容的变化更能带来新鲜感。

资源有限时,我建议按"组合优化ROI"排序品类,而不是平均分配资源。ROI的判断标准是:该品类的连带率提升空间乘以品类毛利贡献。
举例来说,如果A品类当前连带率1.2、B品类当前连带率1.6,那么A品类的提升空间更大;但如果A品类毛利率15%、B品类毛利率40%,B品类即使提升空间小,单位ROI也可能更高。两个因素要相乘,不能只看一个。
任何策略都有代价。组合优化里有三个目标经常互相冲突:连带率、毛利率、库存健康度。三者同时最优的情况非常罕见,大多数时候必须做取舍。
如果业务处在增长期,流量成本高、客户获取难,我倾向于优先连带率。因为连带率提升会降低单客获客成本,即使短期毛利被压缩,长期LTV是上升的。
如果业务处在成熟期或盈利压力大的阶段,我倾向于优先毛利率。这时候的组合策略应该聚焦高毛利商品的搭配,宁可连带率提升慢一点,也不能让整体毛利下滑。
清库存场景下,组合策略的目标是把滞销品推出去,这时候的商品结构会有一定程度的"降级",比如把滞销品和畅销品捆绑,会稀释畅销品的毛利。这是必要代价,但要设定边界:捆绑销售的滞销品占比不宜超过组合整体价值的30%,超过这个比例客户感知会明显变差。
结构优化场景下,目标正好相反,是要剔除低效商品、强化高效组合。这时就不应该为了清库存而妥协,宁可让滞销品走独立清仓渠道,也不要把它们混进日常组合策略。

最后一个取舍是分析深度和执行速度。我见过团队花三个月做一份完美的组合分析报告,结果报告出来时市场已经变了。我的判断是:组合优化的分析周期不宜超过两周,超过两周就应该先出中间结论、先执行。
这不是说分析不重要,而是说分析的价值在于"及时指导行动"。一份过期三个月的精准分析,不如一份当天出来的粗略分析。组合优化尤其如此,因为消费者行为变化很快,分析的时效性比分析的精度更重要。
回到开头那个家居收纳团队的故事。他们后来做了一件事,把那11个"配件型D类商品"重新放回主推池,同时在主商品详情页加了"常一起购买"的组合模块。三个月后,客单价提升了19%,退货率下降了4个百分点,而SKU总数只增加了这11个。
这个结果说明的不是"关联规则有多神奇",而是一个更朴素的道理:商品分析的价值,从来不在分析本身,而在于它能不能驱动一次正确的决策动作。单品分析给你的是商品画像,组合分析给你的是商品间的关系网。真正决定业绩的,是你如何用这张关系网去调整货架、调整推荐、调整套装、调整库存。
如果你正准备做组合优化,我建议从三个动作开始:第一,先用一周时间把订单明细、商品主数据、库存快照三类数据打通,这是所有分析的前提;第二,定义清楚这次组合优化的唯一主目标,不要贪多;第三,跑完关联规则后,不要急着全量执行,先挑3到5条高lift、正毛利的规则做小范围测试。
如果你们的订单量已经超过10万单,Excel处理起来吃力,可以考虑把分析链路迁移到专门的数据分析工具上。像数跨境这类面向跨境电商场景的工具,在把订单、商品、库存放在同一数据模型里这件事上做得比较顺手,能省掉很多在多个表格间来回拼接的时间。工具本身不解决策略问题,但它能让你把精力从"数据搬运"转移到"策略判断"上,这才是组合优化真正值钱的地方。
最后留一组自查问题,你可以对照自己的业务流程看看:
这五个问题里,如果有两个以上答不上来,说明你们的组合优化流程还有明显的空档。补上这些空档,比再学一个新的分析算法,收益要大得多。

我之前做商品分析,习惯先拉一堆销售数据看排名、看趋势,结果报告做得很厚,但老板问‘所以组合要怎么调’的时候我还是答不上来。后来才意识到可能是起点就错了,但又不确定正确的第一步应该是什么。
第一步不是跑数,而是把组合优化的目标写成一句可判定的决策句。具体做法是把目标落到三个维度上选一个主目标:宽度(要不要增删品类/子类)、深度(同类里保留几个SKU、砍哪些)、关联性(哪些商品该捆绑、该相邻陈列、该做连带推荐)。
判断依据是目标必须能映射到一个可量化指标,比如清库存对应售罄率与库存周转天数,提客单对应客单价与件单价,增连带对应连带率与购物篮品项数。实操上建议在项目启动时填一张一页纸的目标卡:主目标、约束条件(毛利下限、库存上限、陈列位数量)、验收指标、复盘的观察周期。
没有这张卡,后面所有关联规则和分组结果都会变成‘看起来有道理但无法决策’的分析。
我用购物篮分析跑出过几百条规则,支持度、置信度、提升度都排了序,但真到选品和捆绑的时候完全不知道从哪下手,感觉规则越多越没法用。到底有没有一套筛选标准,能让我从一堆规则里挑出可执行的那几条?
落不了地通常是因为只看了统计强度,没看业务可行性。建议用四道筛子依次过滤。第一道看提升度而不是只看置信度,提升度接近1的规则本质是‘两个都卖得好’,不构成组合依据,一般优先保留提升度明显大于1的规则。
第二道看绝对量,支持度乘以订单量得到共现订单数,共现订单只有几十单的规则在大盘里做策略容易失真,先设一个最小共现门槛。第三道看约束,把毛利为负、库存不足、体积或冷链冲突、品牌竞品互斥的组合直接剔除。
第四道看动作匹配,问这条规则对应的是捆绑销售、满减凑单、页面相邻推荐还是货架邻位,如果一个规则想不出具体动作,就先放进观察池而不是执行池。最后按预估增量排序,而不是按算法分数排序,增量可以用共现订单数乘以可触达比例再乘以预计转化提升来估算,宁可先跑3到5条做小范围测试,也不要一次全量上线。
需要提醒的是关联规则只能说明共现,不能证明因果,把它当假设生成工具而非结论。
我们按分析结果调过一次组合,那段时间整体销量确实涨了,但同期平台也在做大促,我根本说不清涨的部分有多少是组合优化贡献的。下次再做类似调整,我该怎么设计才能把效果归因清楚?
归因的关键是在上线前就把对照组和观察窗口定好,而不是上线后补分析。可执行的做法有三层。第一层是分组对照,能选实验组和对照组就优先做,比如同品类里选择特征相近的门店、人群包或流量位,一组执行新组合一组维持原状,尽量保证两边在客群、价格带、库存深度上可比。
第二层是时间对照,用调整前同样长度的周期做基线,同时把大促、上新、竞品动作、季节因素作为协变量记录在案,复盘时先剔除这些外部因素的同期影响。第三层是指标口径固定,主指标建议用连带率、客单价、动销SKU数、库存周转天数,并明确计算口径是按下单口径还是支付口径、是否剔除退款,口径一变结论就会变。
观察窗口上,高频复购品可以看2到4周,低频耐用品往往要拉到8周以上甚至一个完整购买周期,否则样本量不足会得出错误结论。如果确实无法做对照,退一步也要做分群前后对比并明确标注为相关性证据,不要当成因果结论写进汇报。
复盘时把‘策略动作,观察指标,外部干扰,结论,下一步’写成固定模板,下次调整可以直接复用。
我们做的是家电和家居这类低频耐用品,按电商快消那套关联规则和连带率指标去跑,数据稀疏得几乎出不了规则,感觉方法论不适用。想知道不同行业和不同购买频次下,这套流程到底该怎么微调。
要改,核心改三处:数据口径、分析方法、指标选择。低频耐用品单次购买间隔长、单品复购少,购物篮共现本身就稀疏,硬跑关联规则容易得到噪声。
这时更实用的替代方法是看同一次购买周期内的多品共购(比如同一订单或同一装修/换新需求场景),以及用用户生命周期分组看前后购序列,比如买过A的用户在6到12个月内买B的比例,而不是看同一张小票。指标上把连带率换成渗透率、跨品类购买率、复购周期内追加购买率,观察窗口按品类购买周期拉长。
快消和大促型商品则相反,购买频次高、促销干扰大,流程上要额外加两步:一是把促销期和常态期分开建模和复盘,促销期的组合结论不能直接迁移到常态期;二是提高最小共现门槛并做同比而非环比,避免被大促脉冲带偏。
行业差异上,线下零售还要考虑货架位和动线约束,电商平台要考虑流量位和推荐位数量上限,快消分销要考虑最小起订量和渠道铺货能力。判断标准很简单:如果某个方法在你的数据上跑出来的规则数量极少或者极不稳定,先换口径和分组方式,而不是直接否定组合优化这件事。


读者评论
文章把组合优化归纳为三道闸门很清晰,但实际落地时目标闸门最难统一,运营、采购、财务对清库存还是保毛利的诉求经常打架,流程设计得好不如组织共识做得透。
购物篮共现不等于因果这个坑太真实了。我们之前跑出啤酒和尿布的关联,实际只是周末家庭客群同时买,后来强行做捆绑反而拉低了转化,数据窗口和人群分层确实得先做。
四步流程里验证迭代最容易被跳过。我们团队做完组合调整后只看GMV,结果客单价涨了但退货率也涨了,净利没变,后来加上连带率和毛利率两个指标才看清真实效果。
组合优化在跨境场景确实收益明显,但文中说的客单价80元以上、订单件数1.5件以上这个门槛很关键。低客单标品做组合分析基本是浪费人力,不如先解决流量和单品转化。