logistic回归_logistic回归

logistic回归

logistic回归分析可用于估计某个事件发生的可能性,这是一个分类模型而不是一个回归模型

它的基本思想是利用一条直线将平面上的点分为两个部分,即两个类别,要解决的问题就是如何拟合出这条直线,这个拟合的过程就称之为“回归”。

698056ff94268de559fb8cd46f2b41e1.png

logistic模型

假设你有一个需要预测的内容,要通过三个输入,x1 、x2 和 x3的某种线性组合来预测某个问题,或者说知道某件事情发生的概率 z的话,那么用 logistic 回归来表达

51fc3c490a6134eee46754ca1c866076.png

写成一般式:

90cf5779d1cb4e081a19fe69f2b24ee7.png

logistic回归是处理二分类问题的,所以输出的标记y={0,1},并且线性回归模型产生的预测值z=wx+b是一个实值,所以我们将实值z转化成0/1值便可,这样有一个可选函数便是“单位阶跃函数”:

ae3c28a06e0aba891c6b3b705c64f9e7.png

这种如果预测值大于0便判断为正例,小于0则判断为反例。

但是单位阶跃函数是非连续的函数,我们需要一个连续的函数,“Sigmoid函数”便可以很好的取代单位阶跃函数:

4c6cd0b3156d95ddec67a5ca8eb209e0.png

b4b166b85556cd5d7e9bece8794d3f1a.png

31f9983290346ee761936d6d07c32d6e.png

这样我们在原来的线性回归模型外套上sigmoid函数便形成了logistic回归模型的预测函数,可以用于二分类问题:

123c8f4d68c3affb493474aa31497086.png

对上式的预测函数做一个变换为:

4f9200ca688ab1745ea90db471612381.png

若将y视为样本x作为正例的可能性,则1-y便是其反例的可能性。二者的比值便被称为“几率”,反映了x作为正例的相对可能性,这也是logistic回归又被称为对数几率回归的原因!

损失函数:

在逻辑回归中,需要预测的结果 ̂可以表示为y^=σ(wTx+b),我们约定y^=p(y|x),也就是说,算法输出的y^是给定训练样本x条件下y等于1的概率。

y=1时,在给定训练样本x条件下 = ̂

y=0时,在给定训练样本x条件下 =1− ̂

因此,如果y^代表y=1的概率,那么1−y^就代表y=0的概率。将上面两个公式合二为一: ( | )= ̂**y(1− ̂)**(1-y)

当y=1时, ( | )= ̂

当y=0时, ( | )=1− ̂

损失函数(取对数是为了连乘变成连加):

ab73f252efade27d44a05a396dacb4d9.png

我们先来看一看这个看上去很复杂的 Loss Function 能否起到衡量输出准确的作用,为了使得输出尽可能准确,我们要做的就是使得损失函数尽可能小:

1.当正确输出 y=0

y=0 时,表达式变成了公式L(ŷ,y)=−log(1−ŷ),为了使得 L(yˆ,y)

尽可能小,log(1−yˆ)就要尽可能大,也就是 1−yˆ要尽可能大,最终结果是 yˆ要尽可能小,而 yˆ∈[0,1],因此 yˆ 需要尽可能接近于0,也就是正确输出 y。

2.当正确输出 y=1时,表达式变成了公式L(ŷ,y)=−log(ŷ),为了使得 L(yˆ,y)尽可能小,log(yˆ)就要尽可能大,最终结果是 yˆ要尽可能大,而 yˆ∈[0,1],因此 yˆ需要尽可能接近于1,也就是正确输出 y。

ps:为什么要用交叉熵损失函数,而不用均方损失函数?

这是因为如果使用均方损失函数 D(yˆ,y)那么对应的 Cost 函数 J(w,b)将是非凸的,这会产生许多的局部最小值,导致在梯度下降的过程当中难以找到全局最优解。而损失函数是凸的,这就有利于我们在后面进行梯度下降。

梯度下降法:

为了使得模型的效果更好,我们需要着眼的是怎样调节 w和 b,使得 Cost Function J(w,b)尽可能小。

为了方便起见,我们暂时忽略 b,只看 w对 J(w)的影响,你将下图看到它的形态。

e749cbafe8e8596c763f10c8cf6c0f55.png

ef292f8ec97b357e30b82b82529e1905.png

现在假设我们的 w取在了最低点的右侧,那么你会发现它的斜率是大于零的,也就是

6cfa1ede77f5de11779f1597e133098c.png

那么为了减小 w,你应该用将 w 减去一个常数去乘以这个导数:

dc415b962a38ae4d8261fdd7ef532ee7.png

这个常数被称作学习率(Learning rate),一般记作 α,用来控制每次更新的步幅。而如果我们的 w偏小了,即取在了最低点的左侧,你会发现它的斜率是小于零的,那么用公式来更新 w就会使得 w变大,因此无论 w偏小还是偏大,我们都可以只使用公式就能够不断地优化 w,使得 J(w) 越来越小。

Logistic 回归中的梯度下降法

Logistic 回归当中的梯度下降法:

9d49a3a44200fee233dacfe921b97145.png

首先我们计算一下 a对于损失函数 L(a,y)的偏导数:

cd1ef1c0ca1ae3e43bc20b3dacb6cf42.png

ff9526dd1ae97634e37ed298a57a471f.png

2b8f8e32685730f5933d75008c9f12d1.png

b7ee252da90206d33a8caa887f52da8e.png
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值