什么时候用
先判断任务是否合适
- 需要估计哪些个体对干预的反应更大(CATE/Uplift)时
- 需要为营销、定价或个性化推荐选择最优处理策略时
- 需要评估和比较多个CATE模型的排序质量(AUUC/Qini)时
- 需要用工具变量方法处理内生性问题时
先准备什么
材料越清楚,结果越有用
- •准备特征矩阵X、处理指示向量(0/1)、结局变量y
- •如果是观察数据,准备倾向性得分估计;如果是实验数据则可省略
- •根据数据规模选择基模型:小数据用线性模型,大数据用XGBoost/LightGBM
- •确认无混杂假设是否成立(工具变量法还需确认工具外生性和排他约束)
它会怎样推进
从材料到可以检查的结果
- 01
选择学习器
根据数据和目标选S/T/X/R/DR learner或因果树/森林
- 02
估计CATE
用fit/predict接口估计个体处理效应
- 03
评估模型
用AUUC/Qini曲线和敏感性分析评估CATE质量
- 04
优化策略
基于CATE和成本收益学习最优处理分配策略
第一次这样开始
把仓库地址直接交给 AI
先让 AI 说明环境和风险,再完成最小安装验证。跑通以后,再把自己的真实材料放进去。
第一次直接复制
帮我安装这个库:https://github.com/uber/causalml 安装前先告诉我需要什么环境,安装后帮我跑通一个最小示例。
结果出来后
先看这些检查点
- 元学习器的ATE置信区间是否包含零(效应是否显著)
- AUUC/Qini曲线是否明显优于随机分配基线
- 敏感性分析的Placebo和Random Cause检验是否通过
- 倾向性得分分布是否在处理组和对照组间有足够重叠
常见误区
这些判断仍由你负责
- 对观察数据使用元学习器时不检查无混杂假设是否成立
- 混淆AUUC排序(相对评估)和绝对因果效应(需要识别假设)
- R-learner/DR-learner依赖的倾向性得分估计不准导致CATE偏差
- 用Granger因果替代结构性因果解释
技术依据
查看能力拆解、验证范围与来源
技术依据
查看能力拆解、验证范围与来源
- 01
uplift树分类与排序
对二元结局的场景,用基于 uplift(增量响应)分裂准则的决策树和随机森林,直接从特征 X、处理指示 T、二元结局 y 学到每个样本的 uplift 分数(处理组转化率 − 对照组转化率),并支持树可视化与森林排序。
- 02
uplift评估曲线与AUUC
在真实 CATE 不可得的观察/实验数据上,用 uplift 曲线(gain/lift/qini)、AUUC、Qini 分数、Treatment Operating Characteristic(TOC)和基于 DR 伪结果的评分对多个 CATE 模型做排序与比较;并用 Placebo、Random Cause、Subset Data、Random Replace、Selection Bias 等敏感性方法检验估计对未观测混淆的稳健性。
- 03
倾向性得分估计与匹配
从特征 X 和二元处理 w 估计每个样本接受处理的概率(倾向性得分 p),并提供 isotonic 校准、边界裁剪和交叉验证;在倾向性得分基础上做最近邻匹配(PSM)生成平衡样本,并用 table one 与 SMD 报告匹配前后协变量平衡。
- 04
元学习器CATE估计
从实验或观察数据中的特征 X、处理指示 T、结局 Y 出发,用一组"元学习器"(S/T/X/R/DR/TMLE)把任意可替换的基模型组合成条件平均处理效应(CATE)估计,并给出 ATE、置信区间和特征重要性/SHAP 解释。
| 能力 | 主要输入 | 主要输出 | 人工检查 |
|---|---|---|---|
uplift树分类与排序源码已核对 |
|
|
|
uplift评估曲线与AUUC源码已核对 |
|
|
|
倾向性得分估计与匹配源码已核对 |
|
|
|
元学习器CATE估计源码已核对 |
|
|
|
因果树与森林源码已核对 |
|
|
|
处理优化与策略学习源码已核对 |
|
|
|
处理机制
- 01
核心处理链
用机器学习估计个体处理效应并做uplift建模与策略优化
已核对范围
- 静态读取 inference/tree/uplift.pyx 中 UpliftTreeClassifier、UpliftRandomForestClassifier、DecisionTree 的类与方法签名
- 静态读取 inference/tree/init.py 的 uplift 导出与序列化补丁
- 静态读取 inference/tree/plot.py 与 utils.py 的导出
- 静态读取 metrics/init.py 全部导出
- 静态读取 metrics/visualize.py 的 plot/getcumlift/getcumgain/getqini/auucscore/qiniscore 签名与机制
- 静态读取 metrics/rate.py 的 gettoc/ratescore/plottoc
- 静态读取 metrics/catescoring.py 的 computedrpseudooutcomes/drscore/plugintscore
- 静态读取 metrics/sensitivity.py 的 Sensitivity 类与 SensitivitySelectionBias 等
仍待核对
- 未运行 UpliftTreeClassifier/UpliftRandomForestClassifier,未验证 uplift 分数与分裂实际行为
- 未读取 Cython uplift.pyx 内部分裂准则(如 KL/ED/Chi/CTS)的完整实现,仅静态确认类签名
- 未运行任何评估函数,未验证 AUUC/Qini/TOC 数值与曲线绘制
- 未运行敏感性分析,未验证 Selection Bias / Random Cause 等方法的实际输出
- 未运行任何倾向性模型,未验证校准后的倾向性得分数值
- 未运行 PSM 匹配,未验证匹配后平衡表(table one)实际效果
- 未运行任何 learner.fit/estimateate,未验证任一 learner 实际 CATE/ATE 数值输出
- 未验证 bootstrap CI、多处理组、effectmodifiers 分层估计的实际行为
读取版本
78176f86a594369dcc953fce8a3b6f3dbefa7040许可
Apache-2.0
最近核对
内容 2026-07-10
Stars 2026-07-11
相关文章
科研之我见
AI 科研全流程怎么搭,我梳理出三个核心入口
每天开工先固定阶段入口、材料入口和验证入口,把庞大的科研全流程收缩成一段可执行、可检查的任务。
查看内容