Skip to content

运营决策与客户分析补充工具——需求预测×SaaS治理×LLM聚类

项目一览

项目 领域 技术栈 核心价值
Café 需求预测+库存仿真 运营分析 Python/Pandas/Streamlit/Plotly 端到端预测→库存策略→蒙特卡洛验证
Newbridge SaaS 治理 企业决策 Power BI/Excel/Python 收入预测→风险检测→资本分配的治理架构
LLM 客户细分 客户分析 Python/KMeans/K-Prototype/Embedding KMeans→K-Prototype→LLM Embedding 三级跳

1. Café 需求预测 + 库存补货仿真 — 从原始交易到可执行的补货策略

项目骨骼

原始交易数据 → 日级需求聚合 → 时间序列预测 → 安全库存公式 → ROP+S 策略 → 蒙特卡洛验证

三个设计决策

决策 1:为什么只用基准模型(季节性朴素/移动平均/EWMA)而不用深度学习?

项目用「强基线」而非复杂模型——这是决策科学中一个被低估的实践。用可解释的基准模型做需求预测有三个优势:(1)与运营团队沟通 ROP 和安全库存时,季节性朴素法的逻辑(「下个月的每一天卖的量 = 上个月同一天的量」)比 LSTM 的隐状态更容易被接受;(2)模型误差可被提前分配——基准法的误差特性(系统性偏差 vs 随机噪声)是可预期的,因此安全库存公式中的 \(z\) 值(服务水平因子)可被更准确地设定;(3)为后续迭代留出空间——当基准法满足不了业务需求时,复杂模型的必要性和增量价值更容易被量化论证。

衔接 → 概念笔记「度量选择——选错比没有更危险:需求预测模型的评估指标不是 RMSE,而是库存策略的最终业务效果(缺货率、库存周转率、持有成本)。一个 RMSE 高的模型如果倾向于「过度预测」(系统性高估需求),可能在库存周转率上比 RMSE 低的「保守预测」模型表现更差——因为过度预测导致过量库存,而库存的持有成本高于缺货的损失。

决策 2:安全库存公式中 \(\sqrt{L}\)(提前期平方根)的来源

安全库存 = \(z \cdot \sigma_d \cdot \sqrt{L}\),其中 \(L\) 是提前期(lead time)。\(\sqrt{L}\) 的来源是:如果每日需求独立同分布,\(L\) 天的总需求的方差 = \(L \cdot \sigma_d^2\)。总需求的标准差 = \(\sqrt{L} \cdot \sigma_d\)。这个推导的前提是每日需求独立——如果存在自相关(今天卖得多 → 明天也可能卖得多),方差可能被低估,安全库存不足。

衔接 → 已写实践笔记「安全库存公式中根号提前期的来源——方差线性累积而非标准差:这篇笔记详细推导了为什么用标准差(不是方差)来乘 \(\sqrt{L}\)——标准差与服务水平 \(z\) 的量纲匹配(都是「单位」而非「平方单位」)。

决策 3:蒙特卡洛模拟验证——模型不完美,策略需要被验证

项目最后一步是蒙特卡洛模拟——对预测模型输出的 ROP/S 策略进行 1000 次随机需求模拟,估计缺货概率。这是将「我们相信模型」转化为「我们测试策略」的关键切换。模型可以是错的(预测总会有误差),但策略的稳健性(在不同需求情景下的缺货率)可以被量化评估。

实践启示

这个项目展示了 ML 工程师如何与运营决策对接:不是交付一个「预测准确度 95% 的模型」,而是交付一个「在当前预测和不确定性下,最优补货策略的缺货风险估计是 3.2%」的决策支持。这是从模型思维决策思维的跃迁——预测是工具,决策才是产品。


2. Newbridge SaaS 收入运营治理 — 从预测到资本分配的决策架构

治理层级

Newbridge 定义了一个六层治理架构,从数据到决策逐层上升:

Revenue Intelligence → Forecast Governance → Risk Detection
    → Recovery Governance → Capital Allocation → Decision Science

三个关键设计

层级 1:从「发生了什么」到「应该怎么做」的进化

传统财务报表回答「What happened?」,而治理架构的目标是回答「What should we do?」。这六层中的每一层都是对前一层的抽象——Revenue Intelligence(原始收入数据)→ Forecast(预测未来)→ Risk(识别偏差)→ Recovery(干预方案)→ Capital Allocation(分配有限资源到最优干预)→ Decision Science(决策框架和方法论的制度化)。

衔接 → 桥接笔记「预测因果决策——三个不同技术层:Newbridge 六层是对三层模型在 SaaS 治理场景中的实例化——Revenue Intelligence + Forecast = 预测层,Risk Detection + Recovery Governance = 因果层(识别因果效应和干预),Capital Allocation + Decision Science = 决策层(资源分配和制度化)。

层级 2:CRR(Central Risk Reserve)— 风险池化的保险逻辑

Newbridge 的核心创新之一是「中央风险储备池」(CRR)——不是为每个客户单独计提风险准备金,而是将所有客户的预期风险聚合到一个池子里,然后用池子覆盖实际发生的损失(收入缺口)。这和保险的池化逻辑一致:个体风险不可预测,但池化风险在大数定律下趋于稳定。

层级 3:Excel Solver 线性规划 — 在最低技术实现下做最优资本分配

Newbridge 没有使用 Gurobi 或 CPLEX 级别的优化器——而是用 Excel Solver 做约束优化(在预算约束下最大化恢复投资回报)。这个选择反映了企业决策工具的实用主义:不是所有场景都需要工业级求解器,当决策变量数量有限(数十个客户/项目)且求解频率低(季/年度),Excel Solver 的便利性和可审计性可能优于 Python 脚本。

实践启示

Newbridge 的价值不在于提供了新的算法,而在于将六个看似独立的分析模块(预测、风险、干预、分配)连接为一个有逻辑链的运营系统。对于决策科学从业者,这个项目的核心启示是:决策支持系统不是工具的堆砌,而是从数据到行动的因果链的工具化。


3. LLM 客户细分 — KMeans → K-Prototype → LLM Embedding 三级跳

方法对比

方法 输入 原理 适用场景
KMeans 仅数值特征(标准化后) 欧氏距离 → 球形簇 纯数值特征、簇大致球形
K-Prototype 数值 + 类别混合特征 KMeans(数值)+ 简单匹配(类别)混合距离 混合特征类型
LLM + KMeans 文本 Embedding(768 维向量) LLM 编码文本 → KMeans 聚类 文本信息丰富时

三个关键洞察

洞察 1:K-Prototype 解决了「类型错误」的混合距离问题

当数据同时包含数值(年龄、余额)和类别(职业、婚姻状况)特征时,直接对类别变量做 one-hot 编码再送入 KMeans 会有一个问题:one-hot 向量在高维空间中的距离意义与数值特征不同——「教育=大学」和「教育=高中」在 one-hot 空间中的距离总是 \(\sqrt{2}\),但「年龄=25」和「年龄=50」的差值可能是 25。K-Prototype 通过为数值和类别分别定义不同的距离函数来解决这个「苹果和橘子」的混合距离问题。

洞察 2:LLM Embedding 绕过了特征工程瓶颈

传统客户细分需要数据科学家手动设计特征(分箱、交叉特征、比率特征)。LLM Embedding 的思路是将每个客户的所有文本信息(职业描述、产品偏好记录、客服对话摘要)作为一个字符串送入 LLM,取出 768 维的语义向量,然后用这个向量做 KMeans。Embedding 向量自动编码了文本中的语义相似性——「软件工程师」和「开发者」在嵌入空间中的余弦相似度远高于「软件工程师」和「教师」,无需人工定义规则。

洞察 3:Embedding 的维度灾难——什么时候反而比手工特征差?

LLM Embedding 的 768 维在高维空间中的距离度量受到维度灾难的困扰——所有点趋于等距。如果客户数量不多(< 1000),768 维的 Embedding 可能比 10 维的手工编码特征表现更差,因为高维空间的稀疏性使得任何两点之间的距离都接近一个常数。PCA 降维(从 768→⅔ 维用于可视化,或 768→50 维用于聚类)是缓解这个问题的关键技术。

衔接 → 概念笔记「概率分布选择——不是数学偏好:KMeans 隐式地假设数据来自球形高斯混合分布——簇是球形的、各簇方差相等。K-Prototype 放弃了「所有特征都有相同的距离尺度」的假设。LLM Embedding 隐含地假设语言模型学到的语义空间对下游聚类任务有意义——这是一个强的但通常可验证的假设。

实践启示

客户细分的三种方法形成了一个光谱——从纯数学聚类(KMeans)到混合类型聚类(K-Prototype)再到语义驱动的聚类(LLM+KMeans)。方法的选择不是性能问题(谁能给出更好的轮廓系数),而是任务匹配问题——你想根据什么来分组客户?是行为指标(余额、频率)→ KMeans;是人口统计特征→ K-Prototype;还是理解他们的需求描述→ LLM Embedding?三个方法回答的是三个不同的问题。


跨域链接