定义

分类问题是一个应用很广的问题,比如邮件是不是垃圾等等
可以抽象成以下表达式

0常常代指“没有什么东西”,比如0代指良性肿瘤
1常常反之,比如代指拥有恶行肿瘤
当然,y可以取1,2,3,4,不过这就是多元分类问题了,这个话题之后再说。
引子

假设我们拥有这么一个数据集,横坐标是肿瘤大小,纵坐标判定是否是恶性的
我们当然可以用我们之前学的回归算法,直接拟合

然后利用以下逻辑去判定是否是恶性肿瘤

但是线性回归算法在特殊情况下会产生误差

比如多增加的这个样本,会让这个一元线性回归模型正确率大大降低
尽管这个样本其实很契合实际,不应该当成异常值来处理
所以线性回归其实不太适合应用在分类问题上
逻辑回归模型
我们希望我们的输出值都在(0,1)之间

因此我们对原来的回归模型做了一些修改,改成了g(h(x)),详情如下

这个g(x)在学术界有两个名字,是等价的(Sigmoid function,Logistics function)
它的图像大致是这样的

这样就解决了之前困扰我们的问题
以这个例子来解释上述逻辑回归模型的意义

对于每个输入值,输出值都表示有多少概率这个值接近于1
比如看到给定的肿瘤大小,告诉病人这是恶心肿瘤的概率
所以总结如下

该函数有一些特点
比如当z大于0时,g(z)> 0.5
所以当θTx大于0的时候,我们就预测y更可能等于1
下面的例子帮助更直观理解这个假设模型的工作原理

给出一个给定的训练集和模型
并且我们假设已经给定了参数

即θ = [-3, 1, 1] (再通俗点,把上面的式子化简成为X1+X2>3)
那么这个函数的意义就是

右上角都将被我们预测为 y = 1
这条线被称之为“决策边界”,这个决策边界是受预测的参数所影响的,跟数据集无关(目前)
再来一个例子

此时我们使我们的模型:

使θ = [-1, 0, 0, 1, 1],那么决策的函数如下所示

如果我们使用更复杂的高阶多项式
我们可以得到更复杂的决策边界

可能得到

OK,接下来就只剩下如何确定θ了
问题如下所示:

之前的线性回归我们利用了代价方程, 如下图所示

在上述方程中我们定义使模型和现状的误差最小,是通过(输出值(h(x))-实际值
y)的平凡的1/2,使这个项累加最小。
很可惜,事实证明,由于我们套用了g(x)这个函数,容易使代价函数成为一个非凸函数(这里不做证明),如下图所示

所以逻辑线性回归要用如下代价方程

这个代价函数有非常好的性质:
1.h(x),即1/[1+e^f(z)]值域为(0,1),(0,1)同时作为cost(h(x),y)的定义域
2.以拟合y=1举例,Cost(h(x),y)取-log(h(x))
3.当h(x)=1时,-log(1) = 0,h(x)=0,-log(0)趋向于正无穷
4.-log(x)在(0,1)内单调递减,不存在局部最小值,合理的用梯度下降一定能收敛到全局最小值

这样使得错误出现的概率非常小,其实有点概率论的意思了(即假设检验)
提一嘴,这个代价函数是由统计学中的极大似然法提出来的=.=
使用梯度下降

接下来我们要把这个两种情况合并成一个算法,由于y只有0与1两个值,我们可以做一点处理:

由于y只有两个值,所以通过1-y与y我们可以很轻松的消除两项中的一项,因此式子就被合并了。
接下来上梯度下降

那个导数项展开是这样的

值得一提的是,这个梯度下降和之前线性回归的梯度下降的一模一样