提示:本文是基于吴恩达老师机器学习视频总结
一、分类
前面学习的线性回归是针对连续型的,本节学习的logistic回归则是用来处理分类问题的。
例如上图中一些实际问题会使用到分类:判断邮件是否是垃圾邮件,判断网上交易是否存在欺诈以及判断患者是恶性肿瘤还是良性。我们给y赋值0或1,代表正类和负类,当然这都不重要,之后我们还会学习多分类。
对于上图判断肿瘤是良性还是恶性问题,如果对于分类问题采用线性回归的话,那么拟合曲线就会十分容易受到离群值的影响,造成预测的分类偏差较大。
二、假设陈述
在进行二分类问题的时候,我们会希望我们的假设函数
因此,我们需要提出一个假设,让因变量y=hθ(x)位于0到1之间。
在逻辑回归中,我们首先会令
接着我们会令
将两个公式进行整理,我们会得到如下式子:
其中函数g(z)我们又称为sigmoid函数或逻辑函数,它的图像如下:
通过这样的假设,我们就可以将原本hθ(x)∈R映射到hθ(x)∈[0,1]
下面接着解释hθ(x)输出的意义,因为hθ(x)∈[0,1],因此我们会认为hθ(x)输出的值是在给定x的条件下y=1的概率,用数学表达式表示如下。此外我们为了方便理解,我们可以将下图的x和θ这些参数划掉,根据概率统计原理,y=1和y=0的概率之和为1。当然我们也可以反推hθ(x)输出的值是在给定x的条件下y=0的概率。
三、决策界限
对于二分类问题,我们知道结果非0即1,而且我们可以通过hθ(x)输出值来判断是y是0类还是1类。
通过sigmoid函数的图像,我们可以理解
1、 要使g(z)>=0.5,则要使z>0;要使g(z)<0.5,则要使z<0
2、通过第一点,又因为hθ(x)=g(θTx)=g(z),那么就可以得出:
要使hθ(x)>=0.5,则要使θTx>0;要使hθ(x)<0.5,则要使θTx<0
3、通过以上两点,就可以知道:当θTx>0会预测为1类,当θTx<0时会预测为0类
上图这个例子我们可以更清楚的理解决策边界。
首先我们定义一个假设函数hθ(x) = θ0+ θ1 x1 +θ2 x2
我们给定 θ值(至于为什么给这样的值,暂且认为算法实现),并给出 θ的向量,将其带入 θTx,得到 上图的方程式,进而算出 x1 +x2>=3,在sigmoid函数的图像画出不等式图像,从而得到决策边界。
接下来的例子同理:
需要特别注意的是:决策边界是假设函数的一个属性,它包括参数θ0,θ1,θ2。决策边界不是数据集的属性,我们不是用训练集来定义决策边界的,我们只是用训练集来拟合参数θ
四、代价函数
我们已经知道上体所有条件,我们所面临的问题是如何拟合参数θ。
对于逻辑回归的代价函数来说,如果我们依然采用线性回归中的代价函数,如下:
当然,这里的逻辑回归代价函数也线性回归代价函数是不一样的,因为在假设函数的设定上就不同,后面还会继续讲解的。
那么因为sigmoid是一个非线性的函数,因此我们会得到一个非凸的代价函数,也就是无法确保进行梯度下降的时候得到全局最低点,如下左图所示。而我们希望的代价函数是如右下图所示:
我们通常这样定义逻辑回归中的代价函数,并且通过if y = 1这个图像我们可以了解到当hθ(x)趋于0时,所付出的代价趋于无穷;hθ(x)趋于1时,所付出的代价趋于0。
同理if y = 0图像如下:
五、简化代价函数和梯度下降
对于我们刚刚提到的代价函数是个分段函数,就比较复杂,对此我们可以进行简化,得到代价函数的一个简单表达式。分别分析真值为0或1的情况,就会发现这个简化的表达式和上面分段的代价函数是完全一样的。
整理一下,我们就可以得到代价函数的一般表达式,如下图:我们需要做的就是找到让Jθ(x)最小值的θ,从而输出我们的预测值。
接下来我们就会进行梯度下降,原理和线性回归的梯度下降是一样的,同样各个参数需要做到同步更新,并且也可以对梯度下降进行可视化,以及对数据进行缩放从而加快梯度下降的速度,如下图所所示:
进一步化简得到:
如果你有n个特征向量,则你需要对n个θ参数同时更新呢。之前提过的该代价函数虽然和线性回归一样,但在定义预测函数时就已经不同。
高级优化跳过
六、多元分类
当分类问题所需要的分类超过2,则需要多元分类。即y的取值为0、1、2、……
下图说明多元分类以及如何分类
从上图中可以看到,我们对于三个独立的二元分类问题,分别拟合了三个分类器h(1)θ(x)、h(2)θ(x)、h(3)θ(x),也就是产生了三个决策边界。
当我们进行预测的时候,我们给出一个新的输入值x,然后我们需要在这三个分类器中分别运行输入x,然后选择h(i)θ(x)最大的类别,也就是选择可行度最高的、分类效果最好的,我们预测y就是那个值。