逻辑斯蒂回归算法原理推导

前言

假如有一个罐子,里面有黑白两种颜色的球,数目多少不知,
两种颜色的比例也不知。我们想知道罐中白球和黑球的比例,
但我们不能把罐中的球全部拿出来数。现在我们可以每次任意从已经摇匀
的罐中拿一个球出来,记录球的颜色,然后把拿出来的球 再放回罐中。
这个过程可以重复,我们可以用记录的球的颜色来估计罐中黑白球的比例。
假如在前面的一百次重复记录中,
有七十次是白球,请问罐中白球所占的比例最有可能是多少?

请问罐子中白球的比例是多少?
 很多种可能10%,5%,95%……
请问罐子中白球的比例最有可能是多少?
70%,进行精确计算,‘感觉’

假设白球的概率为p,黑球为1-p
取 出 两 个 白 球 的 概 率 , 都 是 白 球 : p 2 取出两个白球的概率,都是白球:p^2 p2
取 出 3 个 球 , 两 个 黑 球 一 个 白 球 的 概 率 ( 不 考 虑 排 列 组 合 ) : p 2 ∗ ( 1 − p ) 取出3个球,两个黑球一个白球的概率(不考虑排列组合):p^2 * (1-p) 3p2(1p)
取 出 100 个 球 , 70 是 白 球 , 30 个 是 黑 球 , 概 率 : p 7 0 ∗ ( 1 − p ) 3 0 取出100个球,70是白球,30个是黑球,概率:p^70*(1-p)^30 1007030p70(1p)30

那么问题来了,为什么人们的感觉就是白球是70%呢?
上公式!!!:
f ( x ) = p 70 ∗ ( 1 − p ) 30 f(x) = p^{70}*(1-p)^{30} f(x)=p70(1p)30
f ′ ( x ) = 70 p 69 ∗ ( 1 − p ) 30 + p 30 ∗ 30 ( 1 − p ) 29 ∗ ( − 1 ) = 0 f'(x)=70p^{69}*(1-p)^{30}+p^{30}*30(1-p)^{29}*(-1) = 0 f(x)=70p69(1p)30+p3030(1p)29(1)=0
70 p 69 ∗ ( 1 − p ) 30 − p 70 ∗ 30 ( 1 − p ) 29 = 0 70p^{69}*(1-p)^{30}-p^{70}*30(1-p)^{29} = 0 70p69(1p)30p7030(1p)29=0
约 分 化 简 : 70 ( 1 − p ) − p ∗ 30 = 0 约分化简:70(1-p)-p*30=0 70(1p)p30=0
70 − 70 p − p ∗ 30 = 0 70-70p-p*30=0 7070pp30=0
p = 0.7 p=0.7 p=0.7

所以这就是我们猜测的结果,是有科学依据的。哈哈

逻辑斯蒂回归(Logistic Regression)

逻辑斯蒂回归是针对线性可分问题的一种易于实现而且性能优异的分类模型,是使用最为广泛的分类模型之一。

普通的线性回归:
y = w x + b y=wx+b y=wx+b
线性回归模型产生的预测值是一系列实值。为了使得输出的预测结果变成分类所需的0和1,我们需要在线性回归的基础式子外再套一个函数将其输出变成0和1,这时候我们就想到了单位阶跃函数,图像如下:
y = { 1 x > = 1 0 x < 1 y=\{{1 x>=1 \atop 0 x<1} y={0x<11x>=1
单位跃阶函数
从图中可以看出单位阶跃函数不是连续函数,不连续代表不能保证可微的严格性,因此不能直接作用于式中。我们需要的是一个一定程度上具有相似功能的函数去代替单位阶跃函数,那就是sigmoid函数。sigmoid函数的表达式如下:
y = 1 1 + e − x y=\frac{1}{1+e^{-x}} y=1+ex1
sigmoid
这样就把公式压缩到了0-1之间了,公式为:
y = 1 1 + e − ( w T X + b ) y = \frac{1}{1+e^{-(w^TX+b)}} y=1+e(wTX+b)1
这时候我们需要一个门槛来判别,大于某个值就划分为1,否则为0
一般来说我们把门槛设置为0.5
log ⁡ y 1 − y = w T X \log\frac{y}{1-y} = w^TX log1yy=wTX
y就是样本x为正样本的发生概率,1-y则为负样本的发生概率,两者相除我们称它为‘几率‘,表示正样本在事件中发生的几率。
P ( y ∣ x : w ) = w T X P(y|x:w) = w^TX P(yx:w)=wTX
这是我们得到的逻辑斯蒂函数模型为:
P ( y = 1 ∣ x : w ) = e x p ( w T X ) 1 + e x p ( w T X ) P(y=1|x:w) = \frac{exp(w^TX)}{1+exp(w^TX)} P(y=1x:w)=1+exp(wTX)exp(wTX)
P ( y = 0 ∣ x : w ) = 1 1 + e x p ( w T X ) P(y=0|x:w) = \frac{1}{1+exp(w^TX)} P(y=0x:w)=1+exp(wTX)1
P ( y = 1 ∣ x : w ) = π ( x ) , P ( y = 0 ∣ x : w ) = 1 − π ( x ) P(y=1|x:w)= \pi(x),P(y=0|x:w)=1-\pi(x) P(y=1x:w)=π(x),P(y=0x:w)=1π(x)则将两个公式合并成一个为:
P ( y i ∣ x i ; w ) = ( e x p ( w T X ) 1 + e x p ( w T X ) ) y i ∗ ( 1 ) 1 + e x p ( w T X ) ) 1 − y i = π ( x i ) y i ∗ ( 1 − π ( x i ) ) 1 − y i P(y_i|x_i;w)=( \frac{exp(w^TX)}{1+exp(w^TX)})^{y_i}*( \frac{1)}{1+exp(w^TX)})^{1-y_i}= \pi(x_i)^{y_i}*(1-\pi(x_i))^{1-y_i} P(yixi;w)=(1+exp(wTX)exp(wTX))yi(1+exp(wTX)1))1yi=π(xi)yi(1π(xi))1yi
将得到的函数把他们乘快来,则为w的真正参数的概率
L ( w , b ) = ∏ i = 0 N { π ( x i ) y i ∗ ( 1 − π ( x i ) ) 1 − y i } L(w,b) = \prod_{i=0}^{N} \{\pi(x_i)^{y_i}*(1-\pi(x_i))^{1-y_i}\} L(w,b)=i=0N{π(xi)yi(1π(xi))1yi}
由于乘法难解,通过取对数可以将乘法转换为加法,简化计算。对数似然函数为:
L ( w , b ) = ∑ i = 0 N { y i log ⁡ ( π ( x i ) ) + ( 1 − y i ) log ⁡ ( 1 − π ( x i ) ) } L(w,b) = \sum_{i=0}^{N}\{y_i\log{(\pi(x_i))+(1-y_i)\log(1-\pi(x_i))}\} L(w,b)=i=0N{yilog(π(xi))+(1yi)log(1π(xi))}
= ∑ i = 0 N { y i log ⁡ ( π ( x i ) ) + log ⁡ ( 1 − π ( x i ) ) − y i log ⁡ ( 1 − π ( x i ) ) } = \sum_{i=0}^{N}\{y_i\log{(\pi(x_i))+\log(1-\pi(x_i))-y_i\log(1-\pi(x_i))}\} =i=0N{yilog(π(xi))+log(1π(xi))yilog(1π(xi))}
= ∑ i = 0 N { y i log ⁡ ( π ( x i ) 1 − π ( x i ) ) ) + log ⁡ ( 1 − π ( x i ) ) } = \sum_{i=0}^{N}\{y_i\log{(\frac{\pi(x_i)}{1-\pi(x_i)}))+\log(1-\pi(x_i))}\} =i=0N{yilog(1π(xi)π(xi)))+log(1π(xi))}
= ∑ i = 0 N { y i w T x i − log ⁡ ( 1 + exp ⁡ ( w T x i ) ) } =\sum_{i=0}^{N}\{y_iw^Tx_i-\log(1+\exp(w^Tx_i))\} =i=0N{yiwTxilog(1+exp(wTxi))}

这是观察这个对数似然函数,函数越大越好,这是我们可以使用梯度上升去寻找最大值,但是老祖先的经验告诉我们,用梯度下降求最小值可以更加省事。所以我们在前面加一个负号,即损失函数为:
j ( w ) = − ∑ i = 0 N { y i w T x i − log ⁡ ( 1 + exp ⁡ ( w T x i ) ) } j(w)=-\sum_{i=0}^{N}\{y_iw^Tx_i-\log(1+\exp(w^Tx_i))\} j(w)=i=0N{yiwTxilog(1+exp(wTxi))}

这时候我们就可以使用,梯度下降拟牛顿法来求最小值了

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

一只敲代码的大脸猫

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值