逻辑斯蒂回归与WOE

本文地址:https://goodgoodstudy.blog.csdn.net/article/details/108699013

逻辑斯蒂回归

y = g ( W x + b ) (1) y = g(Wx+b) \tag{1} y=g(Wx+b)(1)
其中 g g gsigmoid函数,即值域在 [ 0 , 1 ] [0,1] [0,1] 之间的S形函数:
g ( z ) = 1 1 + e − z (2) g(z) = \frac{1}{1+e^{-z}} \tag{2} g(z)=1+ez1(2)
为什么要把输出限制在0-1之间呢?因为我们通常建模时希望模型预测的是概率值。

对于逻辑回归对应的二分类问题,通常 y 指的是样本标签为正(负)的概率。
在这里插入图片描述
sigmoid 函数有个特点:
z = ln ⁡ ( g ( z ) 1 − g ( z ) ) (3) z = \ln \left (\frac{g(z)}{1-g(z)} \right) \tag{3} z=ln(1g(z)g(z))(3)
故(1)式转化为:
ln ⁡ ( y 1 − y ) = W x + b (4) \ln \left (\frac{y}{1-y} \right) = Wx + b \tag{4} ln(1yy)=Wx+b(4)
y y y表示的是概率, ( y 1 − y ) (\frac{y}{1-y} ) (1yy) 表示的是几率(odds), ln ⁡ ( y 1 − y ) \ln(\frac{y}{1-y} ) ln(1yy) 表示的对数几率。

所以逻辑斯蒂回归建模的出发点(假设)为:样本标签为正的对数几率是自变量 x x x的线性函数

这当然是一个很强的假设,显示数据是很难符合条件的。

WOE 编码

WOE 全称叫 Weight of Evidence。

逻辑斯蒂回归中的线性假设很难满足,导致模型表现不好,但是自变量在 WOE 编码之后可以满足上述假设,即对数几率通常是自变量 x x x的WOE编码的线性函数

假设有 k k k 个自变量 x i , … , x k x_i, \ldots, x_k xi,,xk
ln ⁡ P ( Y = 1 ∣ x 1 , … , x k ) P ( Y = 0 ∣ x 1 , … , x k = ln ⁡ P ( Y = 1 ) P ( x 1 , … , x k ∣ Y = 1 ) P ( Y = 0 ) P ( x 1 , … , x k ∣ Y = 0 ) = ln ⁡ P ( Y = 1 ) P ( Y = 0 ) + ln ⁡ P ( x 1 , … , x k ∣ Y = 1 ) P ( x 1 , … , x k ∣ Y = 0 ) = ln ⁡ P ( Y = 1 ) P ( Y = 0 ) + ∑ i = 1 k ln ⁡ P ( x i ∣ Y = 1 ) P ( x i ∣ Y = 0 ) ( 注 : 假 设 x i 关 于 Y 条 件 独 立 ) \begin{array}{ll} \ln\frac{P(Y=1|x_1,\ldots,x_k)}{P(Y=0|x_1,\ldots,x_k} &= \ln\frac{P(Y=1)P(x_1,\ldots,x_k|Y=1)}{P(Y=0)P(x_1,\ldots,x_k|Y=0)} \\\\ &= \ln\frac{P(Y=1)}{P(Y=0)} + \ln\frac{P(x_1,\ldots,x_k|Y=1)}{P(x_1,\ldots,x_k|Y=0)}\\\\ &= \ln\frac{P(Y=1)}{P(Y=0)} + \sum_{i=1}^{k}\ln\frac{P(x_i|Y=1)}{P(x_i|Y=0)} \\\\ &(注:假设 x_i 关于 Y 条件独立) \end{array} lnP(Y=0x1,,xkP(Y=1x1,,xk)=lnP(Y=0)P(x1,,xkY=0)P(Y=1)P(x1,,xkY=1)=lnP(Y=0)P(Y=1)+lnP(x1,,xkY=0)P(x1,,xkY=1)=lnP(Y=0)P(Y=1)+i=1klnP(xiY=0)P(xiY=1)(xiY)
上式最后一个等式成立的条件为 x i x_i xi 关于 Y Y Y 条件独立,这又是一个很强的假设,因为有时候变量之间有相关性。

为了弱化这个假设,将上式变为:
ln ⁡ P ( Y = 1 ∣ x 1 , … , x k ) P ( Y = 0 ∣ x 1 , … , x k = ln ⁡ P ( Y = 1 ) P ( Y = 0 ) + ∑ i = 1 k w i ln ⁡ P ( x i ∣ Y = 1 ) P ( x i ∣ Y = 0 ) (5) \ln\frac{P(Y=1|x_1,\ldots,x_k)}{P(Y=0|x_1,\ldots,x_k} = \ln\frac{P(Y=1)}{P(Y=0)} + \sum_{i=1}^{k}w_i \ln\frac{P(x_i|Y=1)}{P(x_i|Y=0)} \tag{5} lnP(Y=0x1,,xkP(Y=1x1,,xk)=lnP(Y=0)P(Y=1)+i=1kwilnP(xiY=0)P(xiY=1)(5)
虽然加上权重 w i w_i wi 并不能直接消除变量之间的相关性,但是在极端情况下,比如 w i w_i wi 只能取 0 或1,意味着对自变量进行筛选,把相关的变量剔除掉不就没有相关变量了嘛(

上式中, ln ⁡ P ( x i ∣ Y = 1 ) P ( x i ∣ Y = 0 ) \ln\frac{P(x_i|Y=1)}{P(x_i|Y=0)} lnP(xiY=0)P(xiY=1) 就是对第i个自变量的WOE编码

WOE 计算

举个例子来看具体怎么做的,例如年龄对借贷风险的影响,bad 表示有风险:

在这里插入图片描述
将原始的自变量 “年龄” 经过分箱、WOE编码后,再做逻辑回归!

有些文章讨论 WOE 是不是单调的、线性的,在我看来都是无意义的,WOE 编码的作用就是为了提升逻辑斯蒂回归的准确率!

参考:

  1. https://blog.csdn.net/zhaojc1995/article/details/81592567
  2. https://zhuanlan.zhihu.com/p/30026040
  3. https://zhuanlan.zhihu.com/p/80134853

猜你喜欢

转载自blog.csdn.net/itnerd/article/details/108699013