原文地址:Uplift modeling for clinical trial data
这篇文章主要提出了一种用one-mode就可以计算出样本uplift值的方法,并在此基础上提出了一种用来提升one-model准确度的半监督方法。
论文中的符号标记
- X 1 , … , X m ∈ R X_{1}, \ldots, X_{m} \in \mathbb{R} X1,…,Xm∈R :单个样本中m个特征
- Y ∈ { 0 , 1 } Y \in\{0,1\} Y∈{
0,1} : outcome 即 label的值,比如优惠券问题中是否购买行为 - G ∈ { T , C } G \in\{T, C\} G∈{
T,C} :样本所属group, treatment 和 control组,样本被分到T组合C组的概率简写为 P T P^{T} PT 和 P C P^{C} PC - D T D^{T} DT and D C D^{C} DC : T组样本和C组样本
- d i T = ( x i T , y i T ) \mathbf{d}_{i}^{T}=\left(\mathbf{x}_{i}^{T}, y_{i}^{T}\right) diT=(xiT,yiT) :T组中的第
i
个样本(C组类推) - M T M^{T} MT and M C M^{C} MC: 分别通过T组样本和C组样本训练出来分类模型(two-model)
- M U M^{U} MU: 用T组和C组样本训练出来的uplift-model(one-model)
- 论文中提到的one-model 一般指使用标签转化的uplift-model
- 论文中提到的two-model 一般指使用两个分类器的two-model
另外需要注意的是,对于模型的预测值Y
- two-model中的分类器,预测值为[0,1] ,两个分类器的diff为[-1,1]
- one-model的预测值为[-1,1]
two-model下uplift值计算
uplift的理论计算值如下:
P ( Y = 1 ∣ X 1 , … , X m , G = T ) − P ( Y = 1 ∣ X 1 , … , X m , G = C ) = P T ( Y = 1 ∣ X 1 , … , X m ) − P C ( Y = 1 ∣ X 1 , … , X m ) ( 1 ) \begin{array}{c} P\left(Y=1 \mid X_{1}, \ldots, X_{m}, G=T\right) -P\left(Y=1 \mid X_{1}, \ldots, X_{m}, G=C\right) \\ \quad=P^{T}\left(Y=1 \mid X_{1}, \ldots, X_{m}\right)-P^{C}\left(Y=1 \mid X_{1}, \ldots, X_{m}\right) \end{array} \qquad(1) P(Y=1∣X1,…,Xm,G=T)−P(Y=1∣X1,…,Xm,G=C)=PT(Y=1∣X1,…,Xm)−PC(Y=1∣X1,…,Xm)(1)
但是在实际情况中,一个样本只可能命中一种行为,所以在two-model的方法中,分别基于特征 X 1 , … , X m X_{1}, \ldots, X_{m} X1,…,Xm在T组和C组上训练分类器 M T M^{T} MT and M C M^{C} MC, 对于某个样本,分别用两个分类器去预测该样本分到被T和被C时label的值,二者diff作为其lift值,数学表达式如下:
M U ( X 1 , … , X m ) = M T ( X 1 , … , X m ) − M C ( X 1 , … , X m ) ( 2 ) \begin{aligned} M^{U}\left(X_{1}, \ldots, X_{m}\right) &=M^{T}\left(X_{1}, \ldots, X_{m}\right)-M^{C}\left(X_{1}, \ldots, X_{m}\right) \qquad(2) \end{aligned} MU(X1,…,Xm)=MT(X1,…,Xm)−MC(X1,…,Xm)(2)
虽然two-model的方法适合于各种分类器模型,但是这种方法更关注与预测T组和C组各自的分类准确度,而不是lift值。
class variable transformation method (标签转化法)
为了解决这two-model不能直接预测lift值的问题,论文提出了一种基于类别转化的one-model的方法。
这一部分主要介绍one-model方法的理论依据
首先定义了新的类别 Z ∈ { 0 , 1 } Z \in\{0,1\} Z∈{
0,1}:
Z = { 1 if G = T and Y = 1 1 if G = C and Y = 0 0 otherwise. ( 3 ) Z=\left\{\begin{array}{ll} 1 & \text { if } G=T \text { and } Y=1 \\ 1 & \text { if } G=C \text { and } Y=0 \\ 0 & \text { otherwise. } \end{array}\right. \qquad (3) Z=⎩⎨⎧110 if G=T and Y=1 if G=C and Y=0 otherwise. (3)
即在T组并且Y=1或者在C组Y=0的样本, Z = 1 Z=1 Z=1,其他情况Y=0,如果用 Z Z Z当做新的label,那么基于T组合C组组合成的数据,可以训练一个用于预测 Z Z Z模型,则 Z Z Z的条件概率如下
P ( Z = 1 ∣ X 1 , … , X m ) = P ( Z = 1 ∣ X 1 , … , X m , G = T ) P ( G = T ∣ X 1 , … , X m ) + P ( Z = 1 ∣ X 1 , … , X m , G = C ) P ( G = C ∣ X 1 , … , X m ) = P ( Y = 1 ∣ X 1 , … , X m , G = T ) P ( G = T ∣ X 1 , … , X m ) + P ( Y = 0 ∣ X 1 , … , X m , G = C ) P ( G = C ∣ X 1 , … , X m ) ( 4 ) \begin{array}{l} P\left(Z=1 \mid X_{1}, \ldots, X_{m}\right) \\ =P\left(Z=1 \mid X_{1}, \ldots, X_{m}, G=T\right) P\left(G=T \mid X_{1}, \ldots, X_{m}\right) +P\left(Z=1 \mid X_{1}, \ldots, X_{m}, G=C\right) P\left(G=C \mid X_{1}, \ldots, X_{m}\right) \\ =P\left(Y=1 \mid X_{1}, \ldots, X_{m}, G=T\right) P\left(G=T \mid X_{1}, \ldots, X_{m}\right) +P\left(Y=0 \mid X_{1}, \ldots, X_{m}, G=C\right) P\left(G=C \mid X_{1}, \ldots, X_{m}\right) \qquad (4) \end{array} P(Z=1∣X1,…,Xm)=P(Z=1∣X1,…,Xm,G=T)P(G=T∣X1,…,Xm)+P(Z=1∣X1,…,Xm,G=C)P(G=C∣X1,…,Xm)=P(Y=1∣X1,…,Xm,G=T)P(G=T∣X1,…,Xm)+P(Y=0∣X1,…,Xm,G=C)P(G=C∣X1,…,Xm)(4)
因为 G ∈ { T , C } G \in\{T, C\} G∈{
T,C} 是独立于特征变量 X 1 , … , X m ∈ R X_{1}, \ldots, X_{m} \in \mathbb{R} X1,…,Xm∈R 的,所以
P ( G ∣ X 1 , … , X m ) = P ( G ) P\left(G \mid X_{1}, \ldots, X_{m}\right)= P(G) P(G∣X1,…,Xm)=P(G)
所以可将(4)式改写为
P ( Z = 1 ∣ X 1 , … , X m ) = P T ( Y = 1 ∣ X 1 , … , X m ) P ( G = T ) + P C ( Y = 0 ∣ X 1 , … , X m ) P ( G = C ) ( 5 ) \begin{aligned} P(Z=&\left.1 \mid X_{1}, \ldots, X_{m}\right) \\ &=P^{T}\left(Y=1 \mid X_{1}, \ldots, X_{m}\right) P(G=T) +P^{C}\left(Y=0 \mid X_{1}, \ldots, X_{m}\right) P(G=C) \quad (5) \end{aligned} P(Z=1∣X1,…,Xm)=PT(Y=1∣X1,…,Xm)P(G=T)+PC(Y=0∣X1,…,Xm)P(G=C)(5)
假设样本分到T和C组的概率是相等的,即 P ( G = T ) = P ( G = C ) = 1 2 P(G=T)=P(G=C)=\frac{1}{2} P(G=T)=P(G=C)=21, 可以将(5)式改写为
2 P ( Z = 1 ∣ X 1 , … , X m ) = P T ( Y = 1 ∣ X 1 , … , X m ) + P C ( Y = 0 ∣ X 1 , … , X m ) = P T ( Y = 1 ∣ X 1 , … , X m ) + 1 − P C ( Y = 1 ∣ X 1 , … , X m ) \begin{array}{l} 2 P\left(Z=1 \mid X_{1}, \ldots, X_{m}\right) \\ =P^{T}\left(Y=1 \mid X_{1}, \ldots, X_{m}\right)+P^{C}\left(Y=0 \mid X_{1}, \ldots, X_{m}\right) \\ =P^{T}\left(Y=1 \mid X_{1}, \ldots, X_{m}\right) +1-P^{C}\left(Y=1 \mid X_{1}, \ldots, X_{m}\right) \end{array} 2P(Z=1∣X1,…,Xm)=PT(Y=1∣X1,…,Xm)+PC(Y=0∣X1,…,Xm)=PT(Y=1∣X1,…,Xm)+1−PC(Y=1∣X1,…,Xm)
即
P T ( Y = 1 ∣ X 1 , … , X m ) − P C ( Y = 1 ∣ X 1 , … , X m ) = 2 P ( Z = 1 ∣ X 1 , … , X m ) − 1 ( 6 ) \begin{array}{c} P^{T}\left(Y=1 \mid X_{1}, \ldots, X_{m}\right)-P^{C}\left(Y=1 \mid X_{1}, \ldots, X_{m}\right) \\=2 P\left(Z=1 \mid X_{1}, \ldots, X_{m}\right)-1 (6) \end{array} PT(Y=1∣X1,…,Xm)−PC(Y=1∣X1,…,Xm)=2P(Z=1∣X1,…,Xm)−1(6)
可以看到(6)式左边即为(1)式(uplift的理论计算值),优化模型去预测 Z Z Z即优化模型去预测样本的lift值。
到此,论文用很完美的理论解决了two-model没法直接预测lift值的问题。
注意这里有个很强的假设,数据集中T组和C组数量占比为1:1,在实际情况中可通过采样实现。
半监督的模型优化迭代
虽然one-model可以直接预测lift值,但是two-model在一些任务上的表现也非常好。这一部分主要提出了一种半监督的方法,通过two-model和one-model互相为彼此的数据集添加新的样本,使得各自的模型训练的更好。
算法输入:T组数据 D T D^T DT 和 C组数据 D C D^C DC
算法输出: uplift model M U M^U MU
step1~2: 对数据进行复制和标记,原始数据只有两类 D T D^T DT 和 D C D^C DC。 D c T D_{c}^{T} DcT 和 D c C D_{c}^{C} DcC表示用于two-model(即classifier)的T组数据和C组数据, D u T D_{u}^{T} DuT 和 D u C D_{u}^{C} DuC表示用于one-model(即uplift model)的T组合C组数据。
D c T D_{c}^{T} DcT 和 D c C D_{c}^{C} DcC 分别用于two-model的两个分类器训练使用,而 D u T D_{u}^{T} DuT 和 D u C D_{u}^{C} DuC一起用于uplift-model训练使用。
repeat:
step4:用 D u T D_{u}^{T} DuT 和 D u C D_{u}^{C} DuC训练uplift-model,基于标签转换法
setp5:用 D c T D_{c}^{T} DcT训练two-model中的一个分类器, M T M^{T} MT
step6:用 D c C D_{c}^{C} DcC训练two-model中的另外一个分类器, M C M^{C} MC
step7:将 x c C ∈ D c C \mathbf{x}_{c}^{C} \in D_{c}^{C} xcC∈DcC中的数据添加treatment标记,转化为对应的uplift-model中的样本,并用uplift-model去预测该样本,得到label y c T y_{\mathrm{c}}^{T} ycT
step8: 与step7相似,用uplift-model预测的是 D c T D_{c}^{T} DcT中添加control标记的样本
step11~12: 将通过 M U M^U MU预测 D c C D_{c}^{C} DcC得到的新样本加入到 D c T D_{c}^{T} DcT中,反之亦然。(哪些样本应该加入见下文补充1)
step9: 用 M T M^T MT对uplift-model中的C组数据 x u C \mathbf{x}_{u}^{C} xuC进行预测得到label y u T y_{u}^{T} yuT,step10也一样
step13~14:样本融合,与step11-12类似(哪些样本应该加入见下文补充1)
重复step 4~14直到收敛
通过step7、9、11、12 完成了uplift-model干预下的two-model各自classifier的样本重构
通过step9、10、13、14完成了two-model干预下的uplift-model的样本重构。
补充1
在step11、12中需要决定 M U M^U MU预测的样本,哪些需要被选出来加入到two-model的T和C组的数据中,这里选择模型比较确信的样本,对于 M U M^U MU而言就是预测值接近1和-1的样本,即有如下筛选法:
x c C = arg max x c C ∈ D C ∣ M U ( x c C ) ∣ ( 选 择 样 本 ) y c T = { 1 if M U ( x c C ) > 0 0 otherwise. ( 打 标 ) \begin{array}{l} \mathbf{x}_{c}^{C}=\underset{\mathbf{x}_{c}^{C} \in D^{C}}{\arg \max }\left|M^{U}\left(\mathbf{x}_{c}^{C}\right)\right| \qquad (选择样本) \\ y_{c}^{T}=\left\{\begin{array}{ll} 1 & \text { if } M^{U}\left(\mathbf{x}_{c}^{C}\right)>0 \\ 0 & \text { otherwise. } \end{array}\right. \quad (打标) \end{array} xcC=xcC∈DCargmax∣∣MU(xcC)∣∣(选择样本)ycT={
10 if MU(xcC)>0 otherwise. (打标)
而对于two-model 的classifier M T 、 M C M^T、M^C MT、MC而言,就是模型预测接近0和1的样本,即有如下筛选法
x u C = arg max x u C ∈ D C max { M T ( x u C ) , 1 − M T ( x u C ) } ( 选 择 样 本 ) y u T = { 1 if M T ( x u C ) > 1 2 0 otherwise ( 打 标 ) \begin{array}{l} \mathbf{x}_{u}^{C}=\underset{\mathbf{x}_{u}^{C} \in D^{C}}{\arg \max } \max \left\{M^{T}\left(\mathbf{x}_{u}^{C}\right), 1-M^{T}\left(\mathbf{x}_{u}^{C}\right)\right\} \qquad (选择样本)\\ y_{u}^{T}=\left\{\begin{array}{ll} 1 & \text { if } M^{T}\left(\mathbf{x}_{u}^{C}\right)>\frac{1}{2} \\ 0 & \text { otherwise } \end{array}\right. \qquad (打标) \end{array} xuC=xuC∈DCargmaxmax{
MT(xuC),1−MT(xuC)}(选择样本)yuT={
10 if MT(xuC)>21 otherwise (打标)
在该算法中,模型与数据相互相互干预情况如下图所示,不同颜色的线表示模型预测的数据的情况和数据转移的情况。two-model和one-model都会从对方的T和C组数据中取一些加入对方的T和C组,利用对立的模型调整自身的数据,即从不同的视角进行优化。
这样,通过该算法,让two-model和one-model的T组和C组数据不断丰富,同时也让 M U 、 M T 、 M C M^U、M^T、M^C MU、MT、MC三个模型也训练的更好。
今天的文章Uplift modeling for clinical trial data 论文阅读分享到此就结束了,感谢您的阅读,如果确实帮到您,您可以动动手指转发给其他人。
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
如需转载请保留出处:https://bianchenghao.cn/32273.html