(二)Logistic Regression[逻辑回归]&正则项

来源:互联网 发布:淘宝家居排行榜 编辑:程序博客网 时间:2024/06/05 20:56

逻辑回归解决的是分类问题,它的本质是给了X,yθ,和线性回归很像。逻辑回归也是Xθ进行预测,预测的值可以理解为概率,在0~1之间,比如可以将>0.5的值归为1,<0.5的归为0。 
总之,逻辑回归和线性回归都是为了得到θ(θ是个香饽饽~),得到了之后,一个用来分类,一个用来预测。下面详解。


逻辑回归

比如打算把一群sample分成2类,分别用0,1代表负样本和正样本,即y{0, 1},那么之前的h(x)就显得不那么合适了,因为他可能会得到任意值,为了使h(x)[0,1],就需要对它进行变形。 
h(x)=g(θTx)=11+eθTx,其中g(x)如下图所示: 
这里写图片描述 
这样,h(x)就回到了[0,1]之间,就可以用差的平方计算J(θ),如下 
J(θ)=1mmi=112(hθ(x(i))y(i))2(1)
但是由于新的h(x)的原因,J(θ)是非凸函数(左下图),我们想得到凸函数(右下图): 
这里写图片描述 
这样梯度下降很可能落到局部最优点中。 
为了解决这个问题,我们将J(θ)变成 
这里写图片描述
意义如下图所示: 
这里写图片描述 
就是说,如果预测了1但结果是0,就会有很大的代价,造成J(θ)很大;另一种情况同理。 
我们知道,我们的目的是为了通过θ的变化让J变得尽量小,所以梯度下降的新θ如下所示,这里其实是整个算法的核心。 
这里写图片描述
这里我没有仔细推公式,有怀疑利用新的J(θ)得到的θ的梯度真的张这个样子?因为如果终止条件是迭代次数的话,最最重要的就是θ的变化。

关于决策边界

实际上就是θx=y得到的线,既然参数θ得到了,自然可以画出线来,就像让你画y=ax+b已知a,b一样。

多分类问题

利用逻辑回归如何解决多分类问题? 
其实思路很简单,比如现在要分成3个类,那么就训练出3个h(x)3θ,最后有新的数据来了分别带入,看看哪个的h(x)(概率)更高。

正则项

为了防止过拟合,如下图 
这里写图片描述
最左边的是欠拟合,也就是说得到的J会比较大;中间的不错,嗯;最右边的就是过拟合了,从训练数据的J看上去很理想,但是对于新的一组数据,其并不能有这么好的效果。

为了解决这个问题,就应该尽量让后面的高次项小一些,这样图像看上去会“正常”些。 
对于线性回归,可以给J加上正则项这里写图片描述 
直观的理解就是如果后面的权重大的话,会贡献更大的代价,其新的θ如下 
这里写图片描述 
如果以迭代次数为终止条件,这是最最重要的一步,因为此时J只是顺带计算一下让我们看看下降的效果。

对于逻辑回归来说, 
这里写图片描述
这里写图片描述

总结

其实逻辑回归与线性回归算法过程很相似,一个用预测值分类,一个用预测值预测。 
下面以带正则项的逻辑回归为例,附上主要过程:

while(满足迭代条件){ 
计算θnew 
计算J(θ) 
}

阅读全文
0 0
原创粉丝点击