机器学习中的逻辑回归方法

首先逻辑回归解决的是分类的问题。

它的线性模型可以表达为

$$h_{\theta}=g(\theta^{T}*x)$$

其中g函数为sigmod函数,也叫对数函数,主要作用是把一个变量平滑地映射到(0,1)区间,具体的形式为

$$g(z) = \frac{1}{1+e^{-z}}$$

那么我们把$h_{\theta}$作为,在样本x情况下,y = 1的概率的一个估计,这个是模型的核心。

为什么做这样的估计是可行的,假设我们的判别是这样的,

当$h_{\theta}$ >= 0.5时,判别为正类,即y=1,

当$h_{\theta}$ < 0.5时,判别为负类,即y=0

这等价于

当$\theta^{T}*x$ >= 0时,判别为正类,即y=1,

当$\theta^{T}*x$ < 0时,判别为负类,即y=0

问题可以看做为线性回归问题,即通过线性回归获得$y=\theta^{T}*x$的参数$\theta$。

我们也可以通过引入代价函数来求解模型, 下面为对于y为1的样本的代价函数

$-log(h_{\theta}) \, \, \, when \, y = 1$

这是对数的代价函数,对y为1的样本,如果$h_{\theta}$也为1时,代价为0,如果$h_{\theta}$趋向于0,代价趋向于无穷大。

对于y为0的样本,代价函数如下

$-log(1-h_{\theta}) \, \, \, when \, y = 0$

整合在一起的代价函数为

$J(\theta)=-\sum_{i=1}^{m}y^{i}*log(h_{\theta}(x^{i})) +(1-y^{i})*log(1-h_{\theta}(x^{i}))$

这个代价函数是一个凸函数,用梯度下降法可以求得最小值。简单推导梯度下降过程

$\frac{\partial J}{\partial {\theta}} = - (\frac{y}{h_{\theta}}\frac{\partial h_{\theta}}{\partial {\theta}} - \frac{1-y}{1-h_{\theta}}\frac{\partial h_{\theta}}{\partial {\theta}})$

$\frac{\partial J}{\partial {\theta}} = - (\frac{\partial h_{\theta}}{\partial {\theta}}(\frac{y-h_{\theta}}{h_{\theta}*(1-h_{\theta})})))$

$h_{\theta}$是sigmod函数,sigmod函数的求导公式为g'(z) = g(z)*(1-g(z)),所以

$\frac{\partial J}{\partial {\theta}} = \sum_{i=1}^{m} x*(h_{\theta} - y)$

于是$\theta$的迭代更新为

$\theta_{j} := \theta_{j} - \alpha\sum_{i=1}^{m}{(h_{\theta}(x^{i}) - y^{i})*x^{i}}$

 

posted @ 2018-11-07 15:44  何振华Jeanva  阅读(528)  评论(0编辑  收藏  举报