paper2skills Playbook

Guardrailed Uplift Targeting — 约束优化 CATE:业务护栏驱动的精准干预

Skill-Guardrailed-Uplift-Targeting · 01-因果推断

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

1. 解决的问题

当前做法是向所有"高流失风险"用户统一发"免费延长30天"优惠券,ROI 极低——很多用户即使不发券也会续订

2. 核心算法逻辑

核心思想:不是问"谁会流失",而是问"谁会因为我的干预而改变行为"——并且在预算和收入保护约束下,只精准打击这批人。

3. 业务应用场景

业务问题:奶粉/纸尿裤订阅用户次月流失预警。当前做法是向所有"高流失风险"用户统一发"免费延长30天"优惠券,ROI 极低——很多用户即使不发券也会续订。

数据要求: - 历史 A/B 测试数据(有无发券的随机对照):最少 5,000 用户,干预组/对照组各占50% - 特征:`purchase_freq`(近30天下单次数)、`days_since_last`(最近购买距今天数)、`ltv`(历史累计消费)、`has_subscription`(是否当前订阅)、`category_loyalty`(品类粘性)、`price_sensitivity`(促销响应历史) - 结果变量:`renewed`(30天内续订标志 0/1)

预期产出: - 每个用户的 CATE 分数(个体优惠券响应增量) - 最优定向名单:只覆盖 6-12% 用户,优先 CATE > 0.05 的 persuadables - Qini 曲线对比(全量 vs 约束优化策略)

4. 输入数据要求

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

5. 输出结果

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

6. 业务价值 / ROI

25-28万

7. 代码模板

代码块数量:1 · 路径:paper2skills-code/causal_inference/guardrailed_uplift_targeting

"""
Guardrailed Uplift Targeting — 约束优化 CATE 实现
论文: arXiv:2512.19805 | 场景: 母婴订阅用户挽留
"""

from __future__ import annotations

import numpy as np
import pandas as pd
from dataclasses import dataclass, field
from typing import Optional, Tuple
from sklearn.ensemble import GradientBoostingClassifier, GradientBoostingRegressor
from sklearn.linear_model import LogisticRegression
from sklearn.model_selection import train_test_split
from sklearn.preprocessing import StandardScaler


# ────────────────────────────────────────────
# 数据结构
# ────────────────────────────────────────────

@dataclass
class CustomerFeatures:
    """母婴客户特征"""
    purchase_freq: float        # 近30天下单次数
    days_since_last: float      # 最近购买距今天数
    ltv: float                  # 历史累计消费金额(¥)
    has_subscription: int       # 是否当前订阅 (0/1)
    category_loyalty: float     # 品类粘性分 (0-1)
    price_sensitivity: float    # 促销响应历史分 (0-1)


@dataclass
class TargetingPolicy:
    """定向策略输出"""
    targeting_mask: np.ndarray          # 布尔数组:哪些客户被选中
    targeting_rate: float               # 定向比例
    expected_lift: float                # 预期增量挽留率
    expected_cost_saving: float         # 相比全量发券节省成本比例
    roi: float                          # ROI 倍数
    persuadables_count: int             # persuadables 数量
    sleeping_dogs_excluded: int         # 排除的 sleeping dogs 数量
    cate_scores: np.ndarray             # 每个客户的 CATE 分数


# ────────────────────────────────────────────
# CATE 估计器(X-Learner 简化版)
# ────────────────────────────────────────────

class CATEEstimator:
    """
    X-Learner CATE 估计器
    阶段1: 分别训练干预组/对照组响应模型
    阶段2: 用交叉预测估计个体处理效应
    阶段3: 倾向得分加权融合
    """

    def __init__(self, n_estimators: int = 100, random_state: int = 42):
        self.n_estimators = n_estimators
        self.random_state = random_state

8. 论文来源

  • 2512.19805