UCB-LDP Dynamic Pricing(上下文动态定价)
Skill-UCB-LDP-Dynamic-Pricing · 06-增长模型
1. 解决的问题
独立站每天面对来自北美高净值用户(iPhone + 5分钟停留)和东南亚价格敏感用户(安卓 + 10秒跳出)的混合流量
2. 核心算法逻辑
在电商动态定价中,用户真实的保留价格(Valuation,即"最多愿意出多少钱")是不可观测的——你唯一能看到的是在展示价格 $p$ 下用户是否购买(Binary Buy/NoBuy 反馈)。每位用户的购买意愿又由其上下文(设备、地区、停留时长等)决定。
3. 业务应用场景
业务问题:独立站每天面对来自北美高净值用户(iPhone + 5分钟停留)和东南亚价格敏感用户(安卓 + 10秒跳出)的混合流量。统一定价 $99 会导致高净值用户利润流失、低净值用户转化率下降,两头都不优。
数据要求: | 特征 | 字段 | 来源 | |------|------|------| | 设备档次 | device_score (0-1) | GA4 设备类型 | | 地区购买力 | region_score (0-1) | IP 归属地 | | 页面停留时长 | dwell_time (归一化) | 埋点日志 | | 浏览深度 | browse_depth | 前端埋点 | | 是否回访用户 | return_visit (0/1) | Cookie / 用户 ID | | 购买 / 未购买 | reward (0/1) | 订单系统 |
预期产出: - 每位用户进站时实时输出最优展示价格(从 3-5 个候选价中选1个) - 算法自动区分高意向用户(高价格)和低意向用户(低价格) - 每日更新预言机模型权重,反馈闭环 < 24h
4. 输入数据要求
请查看原始代码模板获取输入规格。
5. 输出结果
请查看原始代码模板获取输出规格。
6. 业务价值 / ROI
500万
7. 代码模板
代码块数量:2 · 路径:未检测到
"""
快速使用:插入自己的回归预言机,开始实时定价
"""
import numpy as np
from model import (
UCBLDPPricer,
LinearRegressionOracle,
UserContext,
ContextualPricingEnvironment,
)
# 1. 初始化定价器(替换 LinearRegressionOracle 为 XGBoost Oracle 即可)
oracle = LinearRegressionOracle(
n_features=6, # 5维 Context + 1维 price
ridge_alpha=1.0,
)
pricer = UCBLDPPricer(
price_candidates=[89.0, 99.0, 109.0],
oracle=oracle,
ucb_alpha=1.0,
)
# 2. 用户到来:选择价格
user_features = np.array([0.9, 0.8, 0.7, 0.6, 1.0]) # 高净值用户
ctx = UserContext(features=user_features)
price = pricer.select_price(ctx)
print(f"展示价格: ${price}")
# 3. 用户反馈:闭环更新
reward = 1 # 用户购买
pricer.observe(ctx, price, reward)
# 4. 查看累计 Regret(仿真评估时使用)
regrets = pricer.cumulative_regret()
8. 论文来源
- 2406.17184