机器学习-逻辑回归

逻辑回归

什么是逻辑回归

逻辑回归(Logistic Regression) 是一个用来解决分类问题的算法,逻辑回归算法可以根据样本的特征 计算出 样本发生的概率,概率取值范围 [0, 1]之间 ,是一个浮点数,一个精确到数值,算法名称中包含“回归”两个字眼;
在多元线性回归,多项式回归模型中
y = f ( x ) y = f(x) y=f(x)
我们训练处模型后,传入样本x,输出的预测值y值域是 (-infinite, +infinite) ,但是逻辑回归 我们需要的输出是一个0-1之间的概率,如果输出值大于0.5 则分类为1,小于0.5则分类为0;所以我们需要一个函数,将 θ ⋅ X \theta \cdot X θX输出的y 映射到 [0, 1]之间

sigmoid函数

p = 1 1 + e − t p = \frac {1} {1+e^{-t}} p=1+et1
函数姿势是这样的
在这里插入图片描述
t值就是我们传入的 预测值 y, 可以想象一下,如果t 趋于正无穷,则 e − t e^{-t} et值趋于0,那么 sigmoid函数值趋于1,反之 t趋于负无穷,则sigmoid 函数值趋于0;当t = 0,函数值为0.5 ;这个函数用来将 一个值域为 (-infinite, +infinite)的值映射到 (0,1)之间

逻辑回归的损失函数

应用sigmoid函数后,那么对于样本 x 1 x_1 x1预测输出值为
p = 1 1 + e − X b 1 ⋅ θ p = \frac {1} {1 + e^{-X_b^1 \cdot \theta}} p=1+eXb1θ1

我们再来考虑 逻辑回归的损失函数,逻辑回归的损失函数 与之前 多元线性回归,PCA 的损失函数不同,当样本的标记不同(为0 或 1)逻辑回归的损失函数也不一样;
对于一个样本 x b x_b xb
如果 x b x_b xb的标记为1:预测值 p(取值范围[0, 1])越大 则误差越小(趋于0)
如果 x b x_b xb的标记为0:预测值 p(取值范围[0, 1])越大 则误差越大(趋于正无穷)
所以我们使用如下函数作为逻辑回归的损失函数
x b x_b xb标记为1:
c o s t = − l o g ( p ) cost = -log(p) cost=log(p)
x b x_b xb标记为0:
c o s t = − l o g ( 1 − p ) cost = -log(1-p) cost=log(1p)

函数图像如下
在这里插入图片描述
可以看出罗辑回归的损失函数分为两段,样本的标记不同,则需要应用不用的损失函数,我们使用下面的方式,将损失函数的两部分合为一体

c o s t = ( y ) ⋅ − l o g ( p ^ ) + ( 1 − y ) ⋅ ( − l o g ( 1 − p ^ ) ) cost = (y) \cdot -log(_p^\verb!^!) + (1-y) \cdot (-log(1-{_p^\verb!^!})) cost=(y)log(p^)+(1y)(log(1p^))
当样本的 y 分类为1 ,代入公式,就会忽略 y为0 的部分;而y分类为0时 就会忽略 y为1 的损失函数部分,那么这就是逻辑回归的损失函数

逻辑回归损失函数求导

由于 p = σ ( − X b ⋅ θ ) = ( 1 1 + e − X b ⋅ θ ) p = \sigma(-X_b \cdot \theta) = (\frac {1} {1+e^{-X_b \cdot \theta}}) p=σ(Xbθ)=(1+eXbθ1)
代入损失函数中,并考虑所有样本
c o s t = ∑ i = 1 m ( y i ) ⋅ ( − l o g ( 1 1 + e − X b i ⋅ θ ) ) + ( 1 − y i ) ⋅ ( − l o g ( 1 − 1 1 + e − X b i ⋅ θ ) ) cost = \sum_{i=1}^{m} (y^i) \cdot (-log({\frac 1 {1 + e^{-X_b^i \cdot \theta}}})) + (1-y^i) \cdot (-log(1- {\frac 1 {1 + e^{-X_b^i \cdot \theta}}})) cost=i=1m(yi)(log(1+eXbiθ1))+(1yi)(log(11+eXbiθ1))
θ \theta θ各个维度分量求导,得到梯度,然后进行梯度下降即可
为了计算方便,我们先对 σ \sigma σ函数外面的部分进行求导
c o s t = ∑ i = 1 m ( y i ) ⋅ ( − l o g ( σ ( p ) ) ) + ( 1 − y i ) ⋅ ( − l o g ( 1 − σ ( p ) ) ) cost = \sum_{i=1}^{m} (y^i) \cdot (-log({\sigma(p)})) + (1-y^i) \cdot (-log(1- {\sigma(p)})) cost=i=1m(yi)(log(σ(p)))+(1yi)(log(1σ(p)))
化简
c o s t = − ∑ i = 1 m y i ⋅ ( l o g ( σ ( p ) ) ) + ( 1 − y i ) ⋅ ( l o g ( 1 − σ ( p ) ) ) cost = -\sum_{i=1}^{m} y^i \cdot (log({\sigma(p)})) + (1-y^i) \cdot (log(1- {\sigma(p)})) cost=i=1myi(log(σ(p)))+(1yi)(log(1σ(p)))

我们先对 σ ( − X b ⋅ θ ) \sigma(-X_b \cdot \theta) σ(Xbθ) 函数进行求导, 设 t = − X b ⋅ θ t = -X_b \cdot \theta t=Xbθ,则
σ ( t ) = 1 1 + e − t \sigma(t) = \frac 1 {1 + e^{-t}} σ(t)=1+et1

σ ( t ) = ( 1 + e − t ) − 1 \sigma(t) = (1+e^{-t})^{-1} σ(t)=(1+et)1

σ ( t ) ′ = − ( 1 + e − t ) − 2 ⋅ e − t ⋅ − 1 = ( 1 + e − t ) − 2 ⋅ e − t \sigma(t)^{'} = -(1+e^{-t})^{-2} \cdot e^{-t} \cdot -1 = (1+e^{-t})^{-2} \cdot e^{-t} σ(t)=(1+et)2et1=(1+et)2et
所以 σ ( t ) \sigma(t) σ(t)函数最终导数为 ( 1 + e − t ) − 2 ⋅ e − t (1+e^{-t})^{-2} \cdot e^{-t} (1+et)2et

未完待续。。。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值