在街角开一家小便利店,每天最让人头疼的是什么?进什么货、进多少、摆在哪儿。老张经营“幸福里便利店”十二年了,过去全靠“拍脑袋”——王大妈说酱油卖得好,他就多进两箱;啤酒打折时堆在门口,结果挡住了收银台的路。后来店里装了智能POS机和客流摄像头,请来了一位“AI智慧掌柜”,老张才明白:选品和陈列不是一门玄学,而是一套可以从数据中学习、被算法优化、用实验验证的科学。这篇文章就以老张的升级故事为主线,从数据采集、商品组合、货架陈列、推荐算法、运筹模型到落地评估,把AI选品与陈列的完整链条讲清楚。读完之后你会发现,所谓“智能零售”,不过是让每个货架都变得更懂自己的顾客。
掌握了AI选品与陈列的方法,你就能把散落的零售数据变成可衡量的坪效提升,成为一名既懂业务又懂模型的零售AI解决方案专家。
目录
可视化演示
展示门店客流热力图分区、商品关联规则网络及选品效果评估指标对比,支持模式切换浏览。
本节配有交互动效(进入视口后自动加载,约 3KB)。
门店客流热力图分区 红色区域为热区(入口/收银台),客流密度高适合高毛利商品 蓝色区域为冷区,需通过引流动线提升曝光 坪效 = 销售额 / 营业面积(㎡) 热力图驱动陈列优化:热区放高毛利,冷区设引流品
一、零售数据资产:先给门店装上“眼睛”
老张在街角开了十二年“幸福里便利店”,进货从来靠“拍脑袋”:隔壁王大妈说酱油卖得好,他就多进三箱;上个月啤酒卖光了,这个月就闭着眼堆满半个仓库。直到他给店里装了智能POS机和客流摄像头,第一次“看见”了顾客——原来每天下午六点半有一波上班族进店买即食食品,货架最里层的进口饼干根本没人碰。AI选品的第一步,就是把门店的“感觉”变成“数据”。
这些数据大体分四类:销售数据(POS机记录每笔订单)、客流热力图(摄像头统计每个货架前的人数和停留时间)、季节性因素(天气、节假日对需求的波动)、商圈特征(写字楼店、社区店、景区店的客群差异巨大)。它们共同构成AI选品的“原料”。
数据之间要打通才有价值:销售数据告诉你“卖了什么”,热力图告诉你“为什么没卖出去”,季节和商圈告诉你“明天该进什么”。把它们汇入数据仓库,就能为后面的选品模型提供统一视角。衡量一个门店空间赚钱能力的核心指标,正是下面的坪效公式:
当老张算出自己店坪效只有82元,而街角连锁店是135元时,他终于明白:不是地段不好,是货没选对、也没摆对。数据这双“眼睛”,让老张第一次看清了自己店的病根。
- 分子——门店销售额统计周期内该门店全部商品售出的总金额,代表这块地“长出”了多少生意。
- 分母——营业面积只统计用于陈列销售的场地面积,仓库和办公区不算数。
- 比值——单位面积产出分子除以分母,得到每平方米贡献的销售额,是横向比较门店效率的标尺。
二、商品组合优化:像配一桌菜一样配货架
老张请客吃饭很讲究:先上一盘凉菜开胃,再上招牌热菜压阵,最后甜品收尾。他慢慢发现,店里进货也像配菜——光有畅销品不行,还得有大路货、利润品、形象品互相搭配。所谓“商品组合优化”,就是解决“货架上这几十个位置,到底该放哪些商品、各放多少”的问题。
AI最擅长的第一步是“购物篮分析”:翻出过去三个月的每一张收银小票,看哪些商品常常“结伴”出现在同一笔订单里。最经典的案例是“啤酒与尿布”:超市发现傍晚买啤酒的年轻爸爸常顺手拿尿布,于是把两者放在相邻货架,销量双双上涨。衡量这种组合关系有两个关键指标:
有了关联规则还不够,AI还引入“千人千店”:写字楼店的早餐组合卖得好,社区店的粮油组合卖得好,景区店的便携零食卖得好,每个店的商品结构都该有自己的一套“菜谱”。同时还要规划品类角色——引流品负责带客、利润品负责赚钱、形象品负责提升档次,再配合库存周转率控制,避免商品躺在仓库里睡觉。
老张照着AI建议,把卤蛋从调味品区挪到即食面货架旁的挂篮里,一个月后两样商品销量分别涨了19%和27%。他说:“以前我靠记忆配菜,现在AI替我看了每一张小票。”
- 支持度分子——同时含A和B的订单数在所有小票中统计A和B共同出现的次数,例如即食面加卤蛋共现182次。
- 支持度分母——总订单数除以门店全部订单,算出该组合的覆盖率,数值太低就说明太冷门。
- 置信度分母——含A的订单数只看买了即食面的订单,作为条件概率的“底数”。
- 比值——条件概率两者相除得到“买A的人里有多少会买B”,用于决定是否把B摆在A旁边。
三、陈列布局优化:货架的“黄金宝座”
老张站在店里观察了一个下午,发现大部分顾客进门后本能地右转,视线第一眼落在齐胸高的货架层,最底层的粮油区总是被忽略。这就像故宫办展览,镇馆之宝永远放在最显眼的中央展台——货架也有自己的“黄金视线区”,通常在顾客视线高度1.2到1.6米之间。
陈列优化要解决三个问题:一是“动线”,顾客进店后怎么走、在哪停留,决定哪些区域曝光率高;二是“货位”,把什么商品放在什么位置,让高价值商品占据高曝光位置;三是“关联”,把常一起买的商品相邻摆放,让顾客“顺手”完成连带购买。客流热力图正是实现这一切的“土壤”。
基于热力图,我们可以给每个货位计算一个“加权曝光得分”:
AI把热力图和销售数据结合后,给老张开出一张“换位清单”:牛奶从底层升到第三层,果冻从黄金位挪到旁边,薯片和啤酒搬到了晚上客流的必经动线上。调整后一个月,门店坪效从82元涨到96元。老张感慨:“货架没多一米,钱却多赚了一成,原来位置就是隐形租金。”
- 客流热度 F_k由摄像头统计货架前区域k的顾客流量,热度越高说明这个位置越“旺”。
- 可见度系数 V_{ik}商品i摆在该区域时能被看到的概率,正对视线取0.9,放在低处取0.3。
- 乘积后求和把每个区域的客流热度与可见度相乘,再对所有区域累加,得到商品i的综合曝光得分。
四、推荐算法匹配:像熟客一样懂每一家店
老张在这条街待了十二年,熟客老李进门不用开口,他就知道老李要一包黄山毛峰和一袋话梅。AI想做的那件事,就是把老张的“记性”复制到每一家门店——让每一家店都像被最懂邻居的掌柜打理着。
“千人千店”的技术核心是协同过滤:把每家门店的销售记录看成一份“偏好档案”,计算门店之间的相似度,然后让相似的门店互相推荐商品。新店刚开业没有自己的历史数据,没关系——找到商圈画像最接近的几家老店,把它们的畅销品清单按客户群加权后推送过来。协同过滤的相似度计算通常用余弦公式:
老张开第二家校园店时,AI找到三家最相似的社区店,把“速溶咖啡+饼干+即食饭团”的组合推给新店备货。开业第二周,新店坪效就追平了老店。老张笑道:“这AI就像借了几千个老熟客的记忆去看新店。”
- 分子——共同偏好交叉求和两家店对同一批商品的购买量两两相乘再加总,共同喜欢的商品越多越强烈,这个值越大。
- 分母第一项——u店购买向量长度把u店对所有商品的购买量平方和开根号,代表该店的购买规模。
- 分母第二项——v店购买向量长度同理算出v店的规模,用作归一化。
- 余弦——规模归一化的偏好相似度分子除以两个长度,相当于只看“偏好形状”而忽略“体量大小”,得到0到1之间的相似度分数。
五、运筹决策模型:货架的“最优装箱”
老张出差收拾行李箱时总有一套心法:箱子就那么大,先装最值得带的外套,再塞怕压的洗漱包,最后用袜子填缝。选品陈列本质上是同一个问题:货架空间有限、采购预算有限,怎么在几十个候选商品里选出最优组合,让总毛利最高?
这就是运筹学里经典的“0-1整数规划”。三个基本要素缺一不可:决策变量(每个商品选还是不选)、约束条件(货架面积、SKU数量上限、供应商起订量)、目标函数(最大化毛利、坪效或综合得分)。写成数学形式如下:
求解这类模型通常借助开源求解器(如CBC、ORTools)或商业求解器(如Gurobi),它们用“分支定界”法在合理时间内逼近最优解。求解后还要做灵敏度分析:如果某类商品的毛利预期波动10%,最优组合变化大吗?答案能告诉管理者,哪个约束是真正的“卡脖子”环节。
老张把48组货架的数据交给模型,跑出一版被他全盘推翻的“最优解”——但模型给出了理由:那款他私心喜欢的进口饼干,毛利低、占地大、又没人买,占着黄金位是最大的浪费。按模型方案执行后,门店毛利比老张的老方案高出17%。
- 决策变量 x_j商品j进不进货架,进则为1、不进则为0,这是模型要“求解”的未知数。
- 目标函数——毛利求和每个商品的预估毛利p_j乘以决策变量x_j,把选中商品的毛利全部加起来,让这个总和取最大值。
- 面积约束选中商品占用的陈列面积a_j总和不能超过货架总面积S,这是“行李箱的容量”。
- 数量与0-1约束SKU总数不能超过M(防止品类太多太散),且每个x_j只能是0或1,不允许“进半个商品”。
六、落地实施与评估:先试点再推广
老张上过一次当:听推销员的话,一个周末把五家店全部重新铺货,结果A店大卖、B店滞销,亏了不少。这次他学乖了:先拿一家店做试点,跑两周数据,验证有效再推向其他店。AI落地从来不是“一键替换”,而是一套严谨的工程流程。
流程分四步走。第一步“数据管道”:把POS、摄像头、会员系统的数据统一接入数据仓库,做到每日自动更新;第二步“模型部署”:把训练好的选品与陈列模型封装成服务,每天晚上定时跑一遍,输出第二天的货架建议;第三步“A/B实验”:选两家条件相似的门店,一家用AI方案、一家维持原样,并行运行;第四步“效果评估”:用统一的指标体系衡量胜负。衡量A/B结果的经典公式是提升率:
注意细节:实验组和对照组要选规模、客流相近的门店,测试周期最好覆盖完整的一周(包含周末),否则周中效应会骗人。真实落地中,AI系统还要监控“概念漂移”——夏天过去了,防晒霜的推荐权重必须下降,模型要持续用新数据重新训练。
试点门店运行两周后,提升率16.8%,老张这才放心地把方案推广到全部门店。他总结出一条经验:“AI不是拍脑袋的替代品,而是把'拍脑袋'变成了'先证明再推广'。”
- 实验组坪效接入AI选品陈列方案的门店在统计周期内的坪效,相当于“用了新方法的你”。
- 对照组坪效维持旧方案的门店在同一周期内的坪效,相当于“平行世界的你”。
- 差值除以基数两个值相减得增量,再除以对照组坪效得到相对提升比例,乘100%转为百分比。
AI 应用场景
社区连锁便利店智能补货选品
阶段:数据驱动决策(选品优化)
解决的问题:传统模式下店长凭经验进货,畅销品常常缺货,滞销品大量堆积,库存周转慢、资金占用高。AI通过分析各门店销售明细、商圈画像和天气数据,自动输出每店独立的补货与选品清单,实现“每店一策”。
具体案例:某连锁便利店品牌在全国300家门店接入AI选品系统,系统每周根据门店画像和销售趋势生成补货单。运行一个季度后,整体缺货率下降32%,库存周转天数从28天降到19天,总部采购部门从“拍脑袋下订单”转变为“按算法清单审核”。
大型商超陈列热力优化
阶段:模型部署与评估
解决的问题:传统连锁超市采用全国统一的陈列手册,忽略了不同门店的客流分布差异,导致黄金位置被低效商品占据。AI利用摄像头客流热力图与POS数据,为每个门店生成定制化货架陈列方案。
具体案例:某大型商超在两家试点门店部署热力采集与运筹优化系统,AI将高毛利早餐类商品迁至早高峰客流集中的入口动线上,将奶粉、纸尿裤等品类按年轻父母动线重新排布。4周后试点门店坪效提升22%,连带购买率提升11%。
服装品牌“千人千店”组货
阶段:个性化推荐
解决的问题:服装总公司统一配货往往“南橘北枳”,北方旗舰店和南方社区店的客群偏好差异大,滞销与缺货并存。AI通过协同过滤将门店按销售画像聚类,为新店和换季组货提供差异化SKU清单。
具体案例:某快时尚品牌用协同过滤算法分析200家门店的销售矩阵,为华南社区店推荐更多轻薄透气面料,为华北写字楼店推荐通勤款外套。新品售罄率从54%提升至71%,退货率下降9%。
Python 演示
# -*- coding: utf-8 -*-"""AI选品助手:基于历史订单的关联规则挖掘""" class AssociationMiner: def __init__(self, transactions, min_support=0.3, min_confidence=0.6): self.transactions = transactions self.min_support = min_support self.min_confidence = min_confidence self.freq_items = {} self.rules = [] def _support(self, itemset): return sum(1 for t in self.transactions if itemset.issubset(t)) / len(self.transactions) def mine(self): # 统计单品支持度 for t in self.transactions: for item in t: itemset = frozenset([item]) self.freq_items[itemset] = self._support(itemset) # 过滤低频单品 freq_list = [s for s in self.freq_items if self.freq_items[s] >= self.min_support] # 统计两两组合 pairs = [] for i in range(len(freq_list)): for j in range(i + 1, len(freq_list)): pair = freq_list[i] | freq_list[j] sup = self._support(pair) if sup >= self.min_support: self.freq_items[pair] = sup pairs.append(pair) # 生成规则 A -> B for pair in pairs: for item in pair: concl = pair - {item} conf = self.freq_items[pair] / self.freq_items[frozenset([item])] if conf >= self.min_confidence: self.rules.append((frozenset([item]), concl, conf, self.freq_items[pair])) return self.rules def main(): transactions = [ {'牛奶', '面包', '鸡蛋'}, {'牛奶', '啤酒', '尿布'}, {'面包', '黄油', '牛奶'}, {'啤酒', '尿布', '牛奶'}, {'面包', '牛奶'}, {'啤酒', '尿布'}, {'鸡蛋', '面包', '牛奶'}, {'尿布', '啤酒'}, ] miner = AssociationMiner(transactions, min_support=0.3, min_confidence=0.6) rules = miner.mine() for premise, concl, conf, sup in sorted(rules, key=lambda x: -x[2]): print('买%s -> 推荐%s, 置信度=%.2f, 支持度=%.2f' % ( '+'.join(sorted(premise)), '+'.join(sorted(concl)), conf, sup)) if __name__ == '__main__': main()
def _support(self, itemset)计算任意商品组合在全部订单中的支持度,这是关联规则的地基。self.freq_items[itemset] = self._support(itemset)先统计每个单品的支持度,后续置信度计算要反复用到。freq_list = [s for s in self.freq_items if self.freq_items[s] >= self.min_support]把低于支持度阈值的冷门单品过滤掉,减少组合爆炸。pair = freq_list[i] | freq_list[j]用集合合并构造“两两组合”,对应购物篮分析中的候选规则。if sup >= self.min_support:只有整体覆盖率达标的组合才进入规则生成阶段。conf = self.freq_items[pair] / self.freq_items[frozenset([item])]置信度等于联合支持度除以单方支持度,即“买A的人里有多少也买B”。self.rules.append((frozenset([item]), concl, conf, sup))把合格规则连同置信度、支持度一起存下来,供门店陈列决策使用。
常见误区
误区AI选品嘛,把能收集的数据全喂给模型,数据量大自然就准了。POS数据、监控视频、会员信息一股脑倒进去,模型总能“大力出奇迹”。
正解数据就像做饭的食材——食材不新鲜,再多也做不出好菜。如果收银台漏记、摄像头角度歪、会员数据重复,模型学到的就是“加倍的错误”。AI选品的第一步不是堆数据,而是清洗数据:去重、补缺、校准时间口径、统一商品编码。老张就发现自家两台POS机的商品名一个叫“康师傅红烧牛肉面”,一个叫“红烧牛肉面”,AI差点把它们当成两种商品。
为何常见:深度学习的“大数据神话”让很多人误以为规模可以弥补质量,但零售决策场景里噪声被放大的代价是实打实的库存亏损。
误区选品还不简单?把销量最高的商品都摆上货架不就行了。爆款卖得多,多进货、多给位置,坪效自然高。
正解爆款往往是“引流品”,毛利可能很低,甚至卖一箱只赚两块钱。就像饭店里的招牌菜负责招揽客人,真正赚钱的是利润品——凉菜和饮品。AI选品看的是“毛利贡献度”和“周转效率”的组合:一箱高毛利慢周转的商品,可能比一箱低毛利快周转的商品更值得占位置。老张那款进口饼干就是“伪爆款”——卖得动但不赚钱,还占了黄金位。
为何常见:销量是最直观的指标,人们天然被“卖得多=好东西”的直觉吸引,忽略了利润结构和机会成本。
误区既然黄金视线区曝光高,那把最火的商品全堆在那里,顾客一进门就看到,销量肯定翻倍。
正解把多个爆款挤在同一区域,等于让它们“互相踩踏”——顾客买了A就不再看B,连带购买机会被浪费。陈列的本质是“组合拳”:黄金位放爆款中的毛利担当,旁边放关联商品(卤蛋配即食面),动线尽头放冲动消费品。AI优化的是整条动线的总产出,而不是单一位置的峰值热度。
为何常见:“黄金位置”这个概念太有冲击力,让人误以为位置是唯一变量,忘记了购物是连续过程。
误区模型部署好,输出选品清单和陈列图,系统跑起来就能一直躺着收钱,不需要再管了。
正解零售市场像天气一样不断变化——季节更替、流行转向、新店开张都会让旧模型失灵(这叫“概念漂移”)。老张第一次上线AI时系统还推荐防晒霜,入秋后如果不重新训练,就会变成“夏天卖棉袄”的段子。真正的落地必须配套监控指标、定期重训、A/B回归测试,AI不是一劳永逸的决策机,而是需要持续喂养数据的“学徒”。
为何常见:自动化工具给人类似的“装好即永久”错觉,就像以为装了个导航就永远不需要看路。
面试题
Q1. 坪效指标的正确含义是?
- A.每平方米营业面积产出销售额← 正确答案
- B.每位顾客平均购买金额
- C.每个员工每天处理订单数
- D.每件商品平均库存天数
答案:A。坪效 = 销售额 ÷ 营业面积,衡量空间赚钱效率。B是客单价,C是人效,D是库存天数,都不涉及“单位面积产出”这个核心。
Q2. 关联规则置信度的含义是?
- A.规则覆盖全部订单的程度
- B.买A的订单中同时买B的比例← 正确答案
- C.商品组合的毛利率水平
- D.顾客在货架前停留时间
答案:B。置信度 = P(B|A) = 同时买A、B的订单数 ÷ 买A的订单数,回答“看到A后真的会买B吗”。A描述的是支持度,C和D与关联规则无关。
Q3. 以下哪些是AI选品的数据来源?
- A.POS机销售明细← 正确答案
- B.客流摄像头热力图← 正确答案
- C.天气预报与节假日← 正确答案
- D.货架标签纸颜色
答案:ABC。销售明细提供“卖了什么”,热力图提供“客流在哪”,天气和节假日刻画需求波动,三者共同构成选品特征。货架标签颜色属于店内视觉设计,与需求预测没有直接关系。
Q4. 协同过滤推荐的核心思想是?
- A.按商品价格高低排序推荐
- B.相似用户或相似商品互相借鉴← 正确答案
- C.只推荐本店销量最高的商品
- D.用随机抽样决定推荐清单
答案:B。协同过滤基于“和你相似的人喜欢的东西你可能也喜欢”(用户协同)或“和它相似的商品你可能也喜欢”(物品协同)。它用历史偏好矩阵做相似度计算,而不是简单按价格或销量排序。
Q5. “千人千店”最贴近的解释是?
- A.每家店都配一千名店员
- B.按门店画像定制差异化选品← 正确答案
- C.每个门店陈列一千种商品
- D.用传统方式统一配货
答案:B。千人千店指按商圈、客群画像为每家店定制选品与陈列,避免“千店一面”。它与店员数量、SKU总数无关,更不是统一配货。
Q6. 运筹选品模型的三个基本要素是?
- A.决策变量← 正确答案
- B.约束条件← 正确答案
- C.目标函数← 正确答案
- D.数据可视化
答案:ABC。任何数学规划模型都由决策变量(选什么)、目标函数(最大化什么)、约束条件(限制条件)构成。可视化只是求解结果的展示工具,不是模型本身的构成要素。
Q7. 所谓“黄金视线区”通常指?
- A.超市门口的促销堆头
- B.顾客视线高度的货架中段← 正确答案
- C.收银台旁边的零食柜
- D.货架最底层的大包装区
答案:B。1.5米到1.7米身高的顾客自然视线落点通常在货架第一、二层,这个区域无需弯腰或踮脚就能看到,被称为“黄金视线区”。门口堆头和收银台是动线位置,不属于视线区。
Q8. A/B测试在陈列评估中的正确做法是?
- A.实验组对照组同时运行并比较← 正确答案
- B.先改全部门店再比较前后
- C.只在周末做实验其他时间不做
- D.所有门店都做同样的方案
答案:A。A/B测试要求实验组与对照组并行运行,控制其他变量,才能隔离出方案本身的因果效应。B是前后对比容易被季节干扰,C不覆盖完整周期,D没有对照组无法评估。
Q9. 关于支持度与置信度说法正确的是?
- A.置信度衡量规则的条件概率← 正确答案
- B.支持度衡量规则的普遍覆盖程度← 正确答案
- C.两者在概念上完全相同
- D.置信度是支持度相除之商← 正确答案
答案:ABD。置信度 = P(B|A) = 同时支持度 ÷ 前提支持度,是条件概率;支持度 = P(A∩B) 衡量覆盖范围。二者概念不同,D描述的就是置信度与联合支持度、前提支持度的关系。
Q10. 求解0-1整数选品模型时,哪种做法最高效?
- A.线性松弛之后分支定界求解← 正确答案
- B.对全部组合做穷举枚举
- C.随机打乱商品顺序取前N个
- D.直接用连续解四舍五入取整
答案:A。0-1整数规划是NP难问题,专业求解器用“线性松弛+分支定界/割平面”在合理时间内逼近最优解。穷举在商品数增大时指数爆炸,随机取前N个没有优化保证,四舍五入可能破坏面积约束。