Logistic回归主要用于二分类。属于监督学习算法的一种。算法
其具体公式为:函数
下图给出了其图像:学习
当x为0时,其函数值为0.5,随着x的增大,对应的函数值会逼近于1;随着x的减小,其值会趋于0.当横坐标刻度足够大时,其看上去会像一个阶跃函数。测试
采用该函数进行回归时,能够在每一个特征上乘以一个回归系数,而后把结果相加,总和代入函数中,当函数值大于0.5的被分为1类,不然分为0类。优化
那么,怎么肯定回归系数呢?spa
假设一个数据含有n个特征值,记为x1,x2,…,xn,对应的回归系数记为w1,w2,w3,…,wn,那么咱们能够以矩阵(向量)的形式来表示:3d
其中:blog
如今咱们须要肯定W列向量中每一个变量的值。变量
假设有P0和P1两个条件几率:方法
P0表示在当前W、X的状况下,函数值(咱们记为y)为0,即当前数据被分到0类的几率,P1表示被分到1类的几率。
所以咱们获得几率函数为:
该函数是指,y为1时,就只考虑其为1的几率;y为0时,只考虑为0的几率。咱们须要找到合适的W,而后最大化这个几率,尽量使其分类正确。
假定样本与样本之间相互独立,那么整个样本集分类正确的几率即为全部样本分类正确的几率的乘积(似然估计函数),这里咱们设总样本数目为m:
其中,y(i)表示第i个样本的分类,X(i)为第i个样本的特征向量。将式(4)代入式(5),得:
咱们经过对该算式取对数ln()进行简化(对数似然函数):
知足该函数最大的W即为咱们所要求解的值(最大似然估计值)。
咱们经过用梯度上升法来求其局部极大值(也能够取负对数采用梯度降低法)。即让参数W沿着该函数梯度上升的方向变化:
其中,α为步长,即表示向梯度上升方向移动的距离。
对于函数σ(z),其对z的导数为:
接下来,咱们对l(W)求偏导:
因为:
因此有:
所以,最后梯度上升的迭代公式为:
若是把m个样例的特征及其正确分类按行排成矩阵:
其中第i行表示第i个样例的n个特征及其分类。
这样,式13可更改成:
接下来,只须要肯定步长α和适宜的迭代次数便可经过X这一训练样本获得符合要求的W,经过W结合logistic sigmoid函数来估计测试数据的分类。
将对数似然函数乘以一个负系数:
此时可将该式理解为对数损失函数。
此时须要求使得J(W)最小的W值,采用梯度降低法:
对J(W)求偏导:
所以式17可改成:
将X,Y改写成矩阵(式14所示),并可将常数1/m省略,则有: