对数几率回归

前人栽树,后人乘凉,既然前人已经完成了的工作,我觉得没必要做重复的工作,“拿来主义”对于我个人的入门和学习是必要的。在此谢谢他们。内容来自:https://blog.csdn.net/hongbin_xu/article/details/78270526,如果有侵权,联系我删除。

理论推导

在以前的博客(机器学习入门学习笔记:(2.1)线性回归理论推导 )中推导了单元线性回归和多元线性回归的模型。
  将线性回归模型简写为: y = ω T x + b y=\omega^{T} x+b y=ωTx+b
  对数线性回归模型可以写成: ln ⁡ ( y ) = ω T + b \ln (y)=\omega^{T}+b ln(y)=ωT+b;本质上仍然是线性回归,只不过拟合的是非线性的ln函数了。
  更一般地,考虑单调可微函数 g ( . ) g( .) g(.),令 y = g − 1 ( ω T x + b ) y=g^{-1}\left(\omega^{T} x+b\right) y=g1(ωTx+b);这个模型就叫做广义线性回归模型。
  对于二分类任务,输出标记为 y ∈ { 0 , 1 } y \in\{0,1\} y{0,1},而线性回归的预测结果 h ( x ) = ω T x + b h(x)=\omega^{T} x+b h(x)=ωTx+b,很明显是一个连续值,所以需要将其转换为0/1值。
   所以要用到单位阶越函数: y = { 0 , h ( x ) &lt; 0 0.5 , h ( x ) = 0 1 , h ( x ) &gt; 0 y=\left\{\begin{array}{l}{0, h(x)&lt;0} \\ {0.5, h(x)=0} \\ {1, h(x)&gt;0}\end{array}\right. y=0,h(x)<00.5,h(x)=01,h(x)>0

即,若预测值大于0,就判为正例;若预测值小于0,就判为负例;临界值处,任意判别。
  我们都知道,阶跃函数不可导,不连续,而 g − 1 ( . ) g^{-1}( .) g1(.)必须是一个可微的函数,所以阶跃函数不能用作 g − 1 ( . ) g^{-1}( .) g1(.),还需要找一个连续函数代替阶跃函数。
  我们常用对数几率函数(logistic function)来进行替代:
y = 1 1 + e − z y=\frac{1}{1+e^{-z}} y=1+ez1

画出图形会看到它形似S,所以也是一种sigmoid函数。
  把对数几率函数作为 g − 1 ( . ) g^{-1}( .) g1(.),代入到广义线性回归的公式中:
y = 1 1 + e − ( ω T x + b ) y=\frac{1}{1+e^{-\left(\omega^{T} x+b\right)}} y=1+e(ωTx+b)1

做一些化简,可以得到:
ln ⁡ ( y 1 − y ) = ω T x + b \ln \left(\frac{y}{1-y}\right)=\omega^{T} x+b ln(1yy)=ωTx+b

其中,y是正例的可能性,(1-y)是负例的可能性。
  那么,这个 ln ⁡ ( y 1 − y ) \ln \left(\frac{y}{1-y}\right) ln(1yy)其实就是“对数几率”,等式右边的是什么不用说了吧。可以看出,对数几率回归实质上就是使用线性回归模型 ( ω T x + b ) \left(\omega^{T} x+b\right) (ωTx+b)来逼近这个对数几率 ( ln ⁡ ( y 1 − y ) ) \left(\ln \left(\frac{y}{1-y}\right)\right) (ln(1yy))
  好的,那么问题来了。如何求解出这个模型中的未知参数ω和b呢?
  只考虑二分类的情况下,将y换成后验概率 P ( y = 1 ∣ x ) P(y=1 | x) P(y=1x)来表示,同理1-y可以换成 P ( y = 0 ∣ x ) P(y=0 | x) P(y=0x)
  则有:
{ ln ⁡ ( P ( y − 1 ∣ x ) P ( y − 0 ∣ x ) ) = ω T x + b P ( y = 1 ∣ x ) + P ( y = 0 ∣ x ) = 1 \left\{\begin{array}{l}{\ln \left(\frac{P(y-1 | x)}{P(y-0 | x)}\right)=\omega^{T} x+b} \\ {P(y=1 | x)+P(y=0 | x)=1}\end{array}\right. {ln(P(y0x)P(y1x))=ωTx+bP(y=1x)+P(y=0x)=1

解得:
{ P ( y = 1 ∣ x ) = e x x + b 1 + e x T x + b P ( y = 0 ∣ x ) = 1 1 + e x x x + b \left\{\begin{array}{l}{P(y=1 | x)=\frac{e^{x} x+b}{1+e^{x^{T} x+b}}} \\ {P(y=0 | x)=\frac{1}{1+e^{x^{x} x+b}}}\end{array}\right. {P(y=1x)=1+exTx+bexx+bP(y=0x)=1+exxx+b1

通过极大似然法来估计ωω和bb:
L ( ω , b ) = ∑ i = 1 m ln ⁡ ( P ( y i ∣ x i ; ω , b ) ) L(\omega, b)=\sum_{i=1}^{m} \ln \left(P\left(y_{i} | x i ; \omega, b\right)\right) L(ω,b)=i=1mln(P(yixi;ω,b))

为表述方便,使用一个新矩阵ββ来表示ω和b,令 β = { ω , b } \beta=\{\omega ,b\} β={ω,b}
  同时也要给x矩阵补上一列1,令 x ′ = { x , 1 } x^{\prime}=\{x \quad, 1\} x={x,1}。因为要对应参数b,补上1,保证结果不变。
  那么, ω T x + b = β T x ′ \omega^{T} x+b=\beta^{T} x^{\prime} ωTx+b=βTx
  由于是二分类,即只有y=0和y=1的情况,那么可以将似然项重写为y=0和y=1的情况相加:
p ( y i ∣ x i ; β ) = y i × p ( y = 1 ∣ x i ′ ; β ) + ( 1 − y i ) × p ( y = 0 ∣ x i ′ ; β ) p\left(y_{i} | x_{i} ; \beta\right)=y_{i} \times p\left(y=1 | x_{i}^{\prime} ; \beta\right)+\left(1-y_{i}\right) \times p\left(y=0 | x_{i}^{\prime} ; \beta\right) p(yixi;β)=yi×p(y=1xi;β)+(1yi)×p(y=0xi;β)
  ”西瓜书“上是这么写的,当然这样也不难理解。其实为了后面推导方便和容易理解,我们可以换成对数几率的形式来表示,原理依然是一样的,无非是加了个对数:
ln ⁡ [ p ( y i ∣ x i ; β ) ] = y i × ln ⁡ [ p ( y = 1 ∣ x i ′ ; β ) ] + ( 1 − y i ) × ln ⁡ [ p ( y = 0 ∣ x i ′ ; β ) ] \ln \left[p\left(y_{i} | x_{i} ; \beta\right)\right]=y_{i} \times \ln \left[p\left(y=1 | x_{i}^{\prime} ; \beta\right)\right]+\left(1-y_{i}\right) \times \ln \left[p\left(y=0 | x_{i}^{\prime} ; \beta\right)\right] ln[p(yixi;β)]=yi×ln[p(y=1xi;β)]+(1yi)×ln[p(y=0xi;β)]

将上式代入到前面极大似然的公式中: L ( β ) = ∑ i = 1 m ln ⁡ ( P ( y i ∣ x i ; β ) ) L(\beta)=\sum_{i=1}^{m} \ln \left(P\left(y_{i} | x i ; \beta\right)\right) L(β)=i=1mln(P(yixi;β))
  联立前面推出的后验概率的结果:
{ P ( y = 1 ∣ x ) = e x T x + b 1 + e x T x + b P ( y = 0 ∣ x ) = 1 1 + e x T x + b \left\{\begin{array}{l}{P(y=1 | x)=\frac{e^{x^{T} x+b}}{1+e^{x^{T} x+b}}} \\ {P(y=0 | x)=\frac{1}{1+e^{x^{T} x+b}}}\end{array}\right. {P(y=1x)=1+exTx+bexTx+bP(y=0x)=1+exTx+b1

得到最后的结果:
L ( β ) = ∑ i = 1 m ( y i β T x i ′ − ln ⁡ ( 1 + e β T x i ′ ) ) L(\beta)=\sum_{i=1}^{m}\left(y_{i} \beta^{T} x_{i}^{\prime}-\ln \left(1+e^{\beta^{T} x_{i}^{\prime}}\right)\right) L(β)=i=1m(yiβTxiln(1+eβTxi))
  由于是极大似然,我们需要求出其极大值,所以有:
β ∗ = argmax ⁡ m L ( β ) \beta^{*}=\operatorname{argmax}_{m} L(\beta) β=argmaxmL(β)
  求出使L(β)最大的最优解等价于求出使−L(β)最小的解,所以有:
β ∗ = argmax ⁡ m L ( β ) = argmin ⁡ m L ( β ) = ∑ i = 1 m ( − y i β T x i ′ + ln ⁡ ( 1 + e β T x i ′ ) ) \begin{aligned} \beta^{*} &amp;=\operatorname{argmax}_{m} L(\beta)=\operatorname{argmin}_{m} L(\beta) \\ &amp;=\sum_{i=1}^{m}\left(-y_{i} \beta^{T} x_{i}^{\prime}+\ln \left(1+e^{\beta^{T} x_{i}^{\prime}}\right)\right) \end{aligned} β=argmaxmL(β)=argminmL(β)=i=1m(yiβTxi+ln(1+eβTxi))
  最后可以通过凸优化中的梯度下降法、牛顿法等方法来求出L(β)L(β)函数的最优解β∗β∗。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值