*个人学习笔记
一、写在前面的话
注意到Logistic Regression 和 Linear Regression从名字上非常类似(事实上不仅是名字),但是本质是不同的,必须进行区分,了解到他们的不同之处,具体的不同最后我会给出的。
二、线性回归模型解决分类问题(糟糕!)
首先我们尝试使用一个线性回归模型来计算一个肿瘤是否是恶性的,我们可以看到划一条直线hθ(x) = θTx,转化为一个阈值问题,大于0.5阈值的为1,小于为零,看起来不错。
但如果我们在最右侧增加一个数据,那么拟合的曲线就会被拉偏,按照之前设置的阈值,就会产生分类错误。当然,改变阈值能够修正这一个结果。
但是,你会发现,这个线性回归模型的结果有时会远远大于1对不对,因为是线性的,而非0/1两个值的输出,这就很难受。
可以看到线性回归做这个是有一些不合适的,所以我们希望用Logistic Regression来解决这个分类问题,那么具体怎么做?一步步来。
二、Logistic Regression
1.1 假设函数
假设函数为hθ(x)=g(θTx), 其中g(z)=1/(1+e−z),g(z)叫做Sigmoid Function或者对率函数(Logistic Function).
我们可以将对率函数的输出理解为当输入为x的时候, y=1的概率. 可以用hθ(x)=P(y=1|x;θ)
表达.(这个条件该概率的式子应该都知道,代表x和θ指定值下y = 1的概率)
那么为什么假设函数等于这个条件概率的公式呢?
以肿瘤为例,代入计算x和θ值,然后代入sigmoid得出的会是一个0到1的数字对不对,把这个当作得肿瘤的概率,就可以想明白了。
1.2 决策边界 Decision Boundary
我们可以看到,根据sigmoid,当z = 0时, g(z) = 0.5,如果把0.5当作一根分界线(也就是决策边界),我么可以说>0.5的就是预测值为1,<的自然就是0了;即当θTx≥0时, 预测y=1;当θTx<0时, 预测y=0
如下图中的 x1 + x2 = 3 就是决策边界,因为大于这条曲线的就是y=1,如x1+x2=4,反之亦然。
1.3 代价函数
如果我们还记得Linear Regression的代价函数:
线性回归用这个美得很,因为这个J在现行回归模型中是一个凸函数,存在最优解,那么将现在的假设函数h代入costfunction呢??
什么鬼,好多局部最优点,这就很痛苦了,所以这个美得很的平方差代价函数就不能用了,用个新的!
Cost(hθ(x),y)=−ylog(hθ(x))−(1−y)log(1−hθ(x))
具体这个式子怎么来的呢?
是由这两个式子合并的,其实就是线性组合了下,那么这两个式子啥意思嘞?
如果你画出上面的图像就明白了。
y=1时(y代表真实输出,h代表预测输出),对于预测h=0的地方,给予最严重的惩罚∞(因为计算J时,我们的目标是个最小的值对吧),而h=1即代表预测正确,则cost=0。
y=0亦然。
1.4梯度下降
代入上面的全新cost function,就可以得到:
经过一系列求导之后,竟然!!!更新规则和前面的线性回归是一样的。。。呵呵。。(注:下图公式中α后少了一个1/m)
1.5 高级优化算法
这里提到了几个高级优化算法,而非梯度下降,好处很多,缺点就是太复杂了。
三、多分类问题
那之前之分01啊,那如果有三类012怎么办嘞?
一种办法叫做“一对多 ONE-VS-ALL”,就是将上面这个三类转为三个二分类问题(三个“是/不是I种类”(i=0、1、2)的问题)。
分别计算出针对三种输出的概率,取最大的就是预测值啦。其实这个后面的SVM肯定也会讲到。
四、总结
LinearRegression VS LogisticRegression
这个就很重要了!!反正除了最后的θ更新,其他公式都不同!
还有一定要记住,LinearR是用在预测一个具体数字输出上的,而LogisticR使用在分类问题上的。