paper2skills Playbook

Uplift Modeling (元学习框架)

Skill-Uplift-Modeling · 01-因果推断

causalexperimentforecastingoptimizationpricing广告与投放定价与利润WF-B 广告优化WF-D 选品扫描WF-F 动态定价WF-G Listing内容优化
年化 ROI50 万
实现难度⭐⭐☆☆☆
业务优先级⭐⭐☆☆☆
业务视角
适用角色增长负责人 / CMO · 数据分析师 · 广告优化师
适用平台Amazon · TikTok Shop · Meta Ads · DTC 独立站
什么情况下用广告预算花了,但不确定哪个渠道真的带来新客;做了大促,不知道销量增长是促销效果还是季节规律
成功是什么样的能区分「真实增量」和「自然购买」,砍掉虚假归因渠道后同等预算 ROI 提升 20-40%
业务痛点
钱花出去了不知道有没有用各渠道报告都说自己贡献最大怎么向老板证明这笔钱值得花

1. 解决的问题

识别哪些用户最有可能因为某个干预(如促销、广告)而产生正向行为。

2. 核心算法逻辑

Uplift Modeling(提升建模)解决的核心问题是:识别哪些用户最有可能因为某个干预(如促销、广告)而产生正向行为。与传统的响应预测模型不同,uplift model 预测的是"干预带来的增量效果",而非"干预后的绝对结果"。

3. 业务应用场景

业务问题: 我们销售吸奶器到北美/欧洲市场,在 Facebook/Instagram 投放广告。传统方法是预测转化概率,但高转化概率用户可能本身就是高购买意愿用户,广告只是"锦上添花"。我们需要找到广告"增量转化"的用户——即如果不投广告就不会购买,但投了广告就会购买的用户。

数据要求: - 用户特征:年龄、性别、国家(美国/加拿大/英国/德国)、设备类型、浏览行为(浏览页数、浏览时长)、加购行为、购买历史、是否孕妈/新手妈妈等 - 实验数据:Facebook A/B 测试数据或历史渐进式投放数据 - 标签:广告曝光、点击、是否购买吸奶器 - 数据量:建议至少 10,000 条样本(干预组和对照组各 5,000+)

预期产出: - 每个用户的 uplift score:预测该用户看到吸奶器广告后的增量购买概率 - 用户分群:高 uplift(广告敏感)/ 中 uplift / 低 uplift(自然转化)/ 负 uplift(看了广告反而降低购买意愿) - 投放策略: - 高 uplif:重点投放,预算倾斜 - 负 uplift:减少投放或排除 - 低 uplift:自然转化,不依赖广告

4. 输入数据要求

请查看原始代码模板获取输入规格。

5. 输出结果

请查看原始代码模板获取输出规格。

6. 业务价值 / ROI

  • 数据要求:需要 A/B 测试数据或准实验数据
  • 技术门槛:中等,需要理解因果推断基本概念
  • 工程复杂度:低,模型训练和预测均为标准 ML 流程
  • 维护成本:低,模型可定期更新
  • 业务价值高:直接关联广告投放和促销成本优化
  • 见效快:1-2 周可完成 POC,1 个月可上线

7. 代码模板

代码块数量:1 · 路径:未检测到

"""
Uplift Modeling - 元学习框架实现
用于吸奶器出海电商广告投放归因和促销效果评估
"""

import numpy as np
import pandas as pd
from sklearn.model_selection import train_test_split
from sklearn.ensemble import GradientBoostingClassifier, GradientBoostingRegressor
from sklearn.linear_model import LogisticRegression
import warnings
warnings.filterwarnings('ignore')


# ==================== 吸奶器业务配置 ====================

# 目标产品:吸奶器(Breast Pump)
PRODUCT_CATEGORY = "吸奶器"
TARGET_MARKETS = ["美国", "加拿大", "英国", "德国", "澳洲"]
PRODUCT_PRICE_RANGE = (80, 150)  # 客单价范围(美元)


class UpliftModel:
    """Uplift Modeling 元学习框架"""

    def __init__(self, method='xlearner'):
        """
        初始化 Uplift Model

        Args:
            method: 'tlearner', 'slearner', 或 'xlearner'
        """
        self.method = method
        self.model_treatment = None
        self.model_control = None
        self.model_uplift = None
        self.propensity_model = None
        self.is_fitted = False

    def fit(self, X, treatment, outcome):
        """
        训练 Uplift Model

        Args:
            X: 特征矩阵 (DataFrame 或 np.array)
            treatment: 干预标志 (1=干预组, 0=对照组)
            outcome: 结果变量 (0/1 二分类或连续值)
        """
        X = self._preprocess(X)
        treatment = np.array(treatment)
        outcome = np.array(outcome)

        if self.method == 'tlearner':
            self._fit_tlearner(X, treatment, outcome)
        elif self.method == 'slearner':
            self._fit_slearner(X, treatment, outcome)
        elif self.method == 'xlearner':
            self._fit_xlearner(X, treatment, outcome)

        self.is_fitted = True

8. 论文来源

未自动抽取;请查看原始 Skill 卡片。