同线性回归一样,对于逻辑回归我们首先考虑其hypothesis,简单的线性表示显然满足不了。从二分类的角度看,我们引入sigmoid函数,g(z)=1/(1+exp(-z)),形如:
从而我们定义我们的hypothesis:
定义了hypothesis之后,接下来就需要找到J(θ),回忆线性回归,在线性回归中我们使用的是平方和,J(θ)是convex的,由于分类问题y非0即1,使用平方和产生的J(θ)是non-convex。具体如下(一个特征下来理解):
所以我们需要一个新的方法来定义J(θ),我们定义
可以看出基本理念没变,将每个样本的预测值和实际值的‘差异’求和,不同的是重新定义了‘差异’。再接着看这个cost
当y=1时
可以看见cost(h,y)在h=1时为零,意思就是当预测值和实际值相同时cost=0,而且当h趋近于0时,cost则越变越大,是能体现预测值与实际值差别的函数。同样,当y=0时,图形如下:
最后,cost(h,y)还可以写成以下形式:
cost(h,y)=-y*log(h)-(1-y)*log(1-h)
所以我们最后的J(θ)可表示为
最后采用梯度下降最小化J(θ)。这里也可才用matlab自带的一高级函数fminunc,
接着我们从概率的角度来解释:
我们可以看到,logistics回归的参数学习规则和线性回归的形式上是一样的,但是我们应该明白其hypothesis是不一样的。
登录 | 立即注册