逻辑回归
介绍
逻辑回归是用来做分类的,样本已经做好了分类,我们构建模型使得面对一个新的样本时可以对它进行分类。
sigmoid函数
先来看这样一个函数
y=1+e−x1
这个函数叫做sigmoid函数,它的图像是这样的
可以看到无论x去什么值,总能把y映射到0~1之间。
hθ(x)=1+e−θTx1
通过这个式子,我们就把原本的y值重新映射了一遍,所有的hθ(x)都处在0~1之间,对于h值大于0.5的我们将其类别标记为1,对于h值小于0.5的我们将其类别标记为0。这样就完成了分类。
极大似然估计
一些事情已经发生了,我们就把他们当做是在最大概率的情况下发生的,这就是极大似然估计。
举个例子,一个盒子里有100个球,有黑白两种颜色,但不知道黑白具体数量。
现在你一把抓了10个球,9黑1白,那么盒子里最有可能的分布是什么?
自然是90个黑球,10个白球,因为这种情况会让我们有最大概率抓到9黑1白。
也就是说我们要找到最大概率使得现状发生的这种情况,这种情况也就是最有可能的原有状况。
假设事件xi发生的概率为Pxi,那么这些事件都发生的概率就是:
P总=i=1∏nPxi
此时我们还不知道θ的具体值,我们的目的就是求出使得P总达到最大的θ.
∏i=1nP(xi,θ)也被称为似然函数。
代价函数
sigmoid函数的值域处在0~1之间,正好用来表示概率。
因此事件xi发生的概率就是
P(xi,θ)={hθ(xi),y=11−hθ(xi),y=0
写成一个式子就是
P(xi,θ)=hθ(xi)y(1−hθ(xi))1−y
那么P总就是
P总=i=1∏nhθ(xi)yi(1−hθ(xi))1−yi
乘法太麻烦,我们求lnP总的最大值也是一样
lnP总=i=1∑nyilnhθ(xi)+(1−yi)ln(1−hθ(xi))
一般代价函数都会写成求最小值,所以我们在lnP总加个负号。
J(θ)=−i=1∑nyilnhθ(xi)+(1−yi)ln(1−hθ(xi))
这就是根据极大似然估计得出的逻辑回归的代价函数。
梯度下降
梯度下降是老办法了
θj:=θj−α∂θj∂J(θ)
还是求偏导
J(θ)=−i=1∑nyilnhθ(xi)+(1−yi)ln(1−hθ(xi))
∂θ∂J(θ)=−i=1∑n(hθ(xi)yi−1−hθ(xi)1−yi)∂θ∂hθ(xi)
在最开始我们已经得到
hθ(x)=1+e−θTx1
我们令θTx=t
那么h(t)=1+e−t1
h,(t)=et+e−t+21
又因为
h(t)∗(1−h(t))=et+e−t+21
故
h,(t)=h(t)∗(1−h(t))
∂θ∂hθ(xi)=h,(t)∗∂θ∂t=h,(t)∗∂θ∂θTx=h(t)∗(1−h(t))∗xi=hθ(xi)(1−hθ(xi))∗xi
∂θ∂J(θ)=i=1∑nxi(hθ(xi)−yi)
这么一来迭代的函数就有了
θj:=θj−αi=1∑nxi(hθ(xi)−yi)