Logistic回归算法

引入逻辑回归

Logistic回归常用于分类问题,其实质就是在线性回归函数的基础上加上了sigmoid函数,将线性回归预测到的值压缩成为了一个概率,根据这个概率我们就可以得到分类结果。

在损失函数方面,Logistic回归没有使用欧式距离来衡量误差,而使用了交叉熵函数(crossentropy)。

在这里插入图片描述

算法流程

1.线性回归

先对数据进行线性回归,输入值为 x n x_{n} xn,输出值为 y n y_{n} yn

y n = ∑ i = 1 p r o p e r t y x i w i + b y_{n}=\sum ^{property}_{i=1}x_{i}w_{i}+b yn=i=1propertyxiwi+b

2.sigmoid函数压缩回归值

将回归结果送进sigmoid函数

f n = 1 1 + e − y n f^{n}=\dfrac{1}{1+e^{-y^{n}}} fn=1+eyn1

3.损失函数

P为label,是一个概率分布,常用one_hot编码。例如针对3分类问题而言,若样本属于第一类,则P为(1,0,0),若属于第二类,则P为(0,1,0),若属于第三类,则为(0,0,1)。即所属的类概率值为1,其他类概率值为0。Q为模型得出的概率分布,可以是(0.1,0.8,0.1)等。
损失函数定义为: L o s s k = ∏ n = 1 k P n Q n Loss_{k}=\prod ^{k}_{n=1}P_{n}Q_{n} Lossk=n=1kPnQn

但是我们为了求导得方便,对其求对数。为了满足Loss越小越好的的习俗,对其求负。
最终的损失函数为: L o s s k = − ∑ n = 1 k P n l n Q n Loss_{k}=-\sum ^{k}_{n=1}P_{n}lnQ_{n} Lossk=n=1kPnlnQn

对于二分类问题就损失函数比较简单了: y ^ n \widehat{y}_{n} y n为1或0,表示属不属于这个类)
L o s s k = − ∑ n = 1 k [ y ^ n ln ⁡ f n + ( 1 − y ^ n ) ln ⁡ ( 1 − f n ) ] Loss_{k}=-\sum^{k}_{n=1}\left[ \widehat{y}_{n}\ln f_{n}+\left( 1-\widehat{y}_{n}\right) \ln \left( 1-f_{n}\right) \right] Lossk=n=1k[y nlnfn+(1y n)ln(1fn)]

4.梯度更新

接着就到重头戏了。众所周知,不管线性回归还是Logistic回归,其关键和核心就在于通过误差的反向传播来更新参数,进而使模型不断优化。

直接放下求导后的结果(LaTex太麻烦了~逃:(

∂ L o s s n ∂ w i = − ∑ n = 1 k x i ( y ^ n − f n ) \dfrac{\partial Loss_{n}}{\partial w_{i}}=-\sum ^{k}_{n=1}x_{i}\left( \widehat{y}_{n}-f_{n}\right) wiLossn=n=1kxi(y nfn)

∂ l o s s n ∂ b = − ∑ n = 1 k ( y ^ n − f n ) \dfrac{\partial loss_{n}}{\partial b}=-\sum ^{k}_{n=1}\left( \widehat{y}_{n}-f_{n}\right) blossn=n=1k(y nfn)

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值