假设我们有一个数据集
Our package by default implements the Transformed Outcome (Athey 2016) method, defined as:
$$
Y^=Y \frac{W-p}{p(1-p)}
$$
where $Y^$ is the Transformed Outcome,
The beauty of this transformation is that, in expectation, $$ E\left[Y^\right]=P(Y \mid W=1)-P(Y \mid W=0), $$ or uplift. Any algorithm trained to predict $Y^$, then, gives a prediction of uplift.
对于累计 Uplift 曲线:纵坐标的值计算公式如下: $$ \text { Uplift curve }(\phi)=\frac{n_{t, y=1}(\phi)}{n_{t}(\phi)}-\frac{n_{c, y=1}(\phi)}{n_{c}(\phi)} $$
-
在
pylift
包中一般用cuplift
标识,uplift
标识和此计算方式一致,只是不是从0开始累积的,而是在每个bin中去计算平均值。在scikit-uplift
包中对应 sklift.metrics.uplift_curve。 -
该曲线下方的面积就是常见的评估指标 AUUC ,在
scikit-uplift
包中对应 sklift.metrics.uplift_auc_score。 -
对于前 k 个个体计算出的Uplfit值记为
uplift@k
, 在scikit-uplift
包中对应 sklift.metrics.uplift_at_k。 -
加权平均 Uplift:它是百分位数的平均提升。权重是Treatment组的百分位大小,在
scikit-uplift
包中对应 sklift.metrics.weighted_average_uplift。
Uplift Curve深度解读:
将前百分比
- 如果 uplift 预估值是完全随机数,那么每个分桶里面观察到的 uplift 结果应该都是相同的,所以 uplift curve 就是一条直线;
- 如果 uplit 预估值非常准,也就是说横坐标上面的人群排序:最左侧是 persuadables,最右侧是 sleeping dogs,中间是 sure thing 和 lost causes;那么完美的 uplift curve 形状就是:
- 刚开始就会达到最高点,在有限的 persuadables 上面就可以拿到全部的 uplift;
- 中间持平,因为 sure thing 和 lost causes 不会带来任何 uplift;
- 最后会下降,因为 sleeping dogs 看到广告之后,反而不转化了;
对于Qini曲线,纵坐标的值计算公式如下: $$ \text { Qini curve }(\phi)=\frac{n_{t, y=1}(\phi)}{N_t}-\frac{n_{c, y=1}(\phi)}{N_c} $$
- 在
pylift
包中一般用qini
标识,在scikit-uplift
包中对应 sklift.metrics.qini_curve。
To evaluate
- 在
scikit-uplift
包中对应 sklift.metrics.qini_auc_score。
对于Adjusted Qini曲线,纵坐标的值计算公式如下: $$ \operatorname{Adjusted} \operatorname{Qini}(\phi)=\frac{n_{t, 1}(\phi)}{N_t}-\frac{n_{c, 1}(\phi) n_t(\phi)}{n_c(\phi) N_t} $$
- 在
pylift
包中一般用aqini
标识。
对于Cumulative Gains曲线,纵坐标的值计算公式如下: $$ \text { Cumulative gain }(\phi)=\left(\frac{n_{t, 1}(\phi)}{n_t(\phi)}-\frac{n_{c, 1}(\phi)}{n_c(\phi)}\right)\left(n_t(\phi)+n_c(\phi)\right) $$
- 在
pylift
包中一般用cgains
标识。
每个bin内Treatment组大小与总组大小的比率: $$ \operatorname{Balance}(\phi)=\frac{n_t(\phi)}{n_t(\phi)+n_c(\phi)} $$
- 在
pylift
包中一般用balance
标识。在scikit-uplift
包中对应 sklift.metrics.treatment_balance_curve。
Ref: Bayesian nonparametric modeling for causal inference
$$
PEHE =\frac{1}{N} \sum_{i=1}^N\left(\left(y_{i 1}-y_{i 0}\right)-\left(\hat{y}{i 1}-\hat{y}{i 0}\right)\right)^2
$$
where