首先逻辑回归解决的是分类的问题。
它的线性模型可以表达为
$$h_{ heta}=g( heta^{T}*x)$$
其中g函数为sigmod函数,也叫对数函数,主要作用是把一个变量平滑地映射到(0,1)区间,具体的形式为
$$g(z) = frac{1}{1+e^{-z}}$$
那么我们把$h_{ heta}$作为,在样本x情况下,y = 1的概率的一个估计,这个是模型的核心。
为什么做这样的估计是可行的,假设我们的判别是这样的,
当$h_{ heta}$ >= 0.5时,判别为正类,即y=1,
当$h_{ heta}$ < 0.5时,判别为负类,即y=0
这等价于
当$ heta^{T}*x$ >= 0时,判别为正类,即y=1,
当$ heta^{T}*x$ < 0时,判别为负类,即y=0
问题可以看做为线性回归问题,即通过线性回归获得$y= heta^{T}*x$的参数$ heta$。
我们也可以通过引入代价函数来求解模型, 下面为对于y为1的样本的代价函数
$-log(h_{ heta}) \, \, \, when \, y = 1$
这是对数的代价函数,对y为1的样本,如果$h_{ heta}$也为1时,代价为0,如果$h_{ heta}$趋向于0,代价趋向于无穷大。
对于y为0的样本,代价函数如下
$-log(1-h_{ heta}) \, \, \, when \, y = 0$
整合在一起的代价函数为
$J( heta)=-sum_{i=1}^{m}y^{i}*log(h_{ heta}(x^{i})) +(1-y^{i})*log(1-h_{ heta}(x^{i}))$
这个代价函数是一个凸函数,用梯度下降法可以求得最小值。简单推导梯度下降过程
$frac{partial J}{partial { heta}} = - (frac{y}{h_{ heta}}frac{partial h_{ heta}}{partial { heta}} - frac{1-y}{1-h_{ heta}}frac{partial h_{ heta}}{partial { heta}})$
$frac{partial J}{partial { heta}} = - (frac{partial h_{ heta}}{partial { heta}}(frac{y-h_{ heta}}{h_{ heta}*(1-h_{ heta})})))$
$h_{ heta}$是sigmod函数,sigmod函数的求导公式为g'(z) = g(z)*(1-g(z)),所以
$frac{partial J}{partial { heta}} = sum_{i=1}^{m} x*(h_{ heta} - y)$
于是$ heta$的迭代更新为
$ heta_{j} := heta_{j} - alphasum_{i=1}^{m}{(h_{ heta}(x^{i}) - y^{i})*x^{i}}$