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

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

它的线性模型可以表达为

$$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}}$

原文地址:https://www.cnblogs.com/learninglife/p/9921781.html