入门机器学习(四)--Logistic回归

1.分类(Classification)

如何开发一个分类算法,以对肿瘤进行恶性或良性分类为例。

入门机器学习(四)--Logistic回归

如果要对以上数据进行线性回归可以这么做:

入门机器学习(四)--Logistic回归

如果h(x)≥0.5,那么输出为"y=1",如果h(x)<0.5,那么输出为"y=0"

但是,如果在数据的右边增加一个点:

入门机器学习(四)--Logistic回归

那么根据线性回归,得到的分类曲线如下图蓝色线所示:

入门机器学习(四)--Logistic回归

这样,取0.5为阈值的话就是明显不合理的。其实将线性回归用于分类问题一般来说是不合适的。用线性回归做分类的特点是:

入门机器学习(四)--Logistic回归

分类的目标是0或者1,但是假设函数的输出可能大于1也可能小于0,所以接下来提出一种逻辑回归,它的特点是:

入门机器学习(四)--Logistic回归

输出总是在[0,1]之间。逻辑回归是一种分类算法。

2. 假设函数(Hypothesis Representation)

相对于线性回归,逻辑回归所使用的假设函数是在线性回归的基础上做一些修改,如下所示:

入门机器学习(四)--Logistic回归

其中g函数为:

入门机器学习(四)--Logistic回归

结合之后,逻辑回归的假设函数为:

入门机器学习(四)--Logistic回归

g(z)函数被称为sigmoid函数或者logistic函数,两个名字是等价的,其函数图像如下图所示:

入门机器学习(四)--Logistic回归

观察图像可知,z趋向正无穷时,g(z)趋近于1,z趋向负无穷的时候,g(z)趋近于0.所以假设函数h(x)的取值范围为[0,1]

举例对该假设函数做数说明:

如果输入为以下值(x0=1的原因是为了以矩阵的形势表示假设函数),输出h(x)=0.7

入门机器学习(四)--Logistic回归

这个输出的意思是有70%的概率,患者的肿瘤是恶性的。

假设函数的输出可以由以下概率公示来表示:

入门机器学习(四)--Logistic回归

3. 决策边界(Decision Boundary)

入门机器学习(四)--Logistic回归

从上图的sigmoid函数可以看出,当z>0的时候,g(z)大于0.5,当z<0的时候,g(z)<0.5.所以可以根据Z的值(θ^T·X)来进行分类,当Z大于0的时候,可以判断为正例,当Z小于0的时候,可以判断为负例。

接下来,假设我们的假设函数如下所示,并且已经得到了最优参数为[-3,1,1]

入门机器学习(四)--Logistic回归

数据集如下图所示

入门机器学习(四)--Logistic回归

如果预测y=1,那么根据之前的推论,则需满足  -3+x1+x2≥0 即x1+x2≥3

如果预测y=0,那么根据之前的推论,则需满足  -3+x1+x2<0 即x1+x2<3

可以得出,x1+x2=3是预测正反例的分界线,将其画出来为:

入门机器学习(四)--Logistic回归

该曲线被称作决策边界,线上的点对应的是h(x)=0.5的情况。该情况下的决策边界是线性的,那么非线性的决策边界该怎么表示呢?另一个例子:

入门机器学习(四)--Logistic回归

假设函数如下所示,其最优参数为[-1,0,0,1,1]

入门机器学习(四)--Logistic回归

与上一例的分析相同,通过预测正反例可以得到其决策边界函数:

入门机器学习(四)--Logistic回归

其决策边界函数为:入门机器学习(四)--Logistic回归 该函数是一个圆,其在数据集上的呈现为:

入门机器学习(四)--Logistic回归

注意:决策边界不是由数据集决定的,即使数据集消失,决策边界仍然不会改变。决策边界是由假设函数的参数决定的,而数据集是决定假设函数的参数的。

4. 代价函数(Cost Function)

对于以下训练集和假设函数,怎么选择最优的参数θ呢?

入门机器学习(四)--Logistic回归

对于线性回归,其代价函数为:

入门机器学习(四)--Logistic回归

如果逻辑回归也用这个代价函数的话,由于h(x)是sigmoid函数,所以J(θ)不是凸函数,其图像大致如下图所示:

入门机器学习(四)--Logistic回归

其不是凸函数,所以由很多局部最优解,这对求解最优参数特别不利。将代价函数写成如下的形式:

入门机器学习(四)--Logistic回归

其中,令

入门机器学习(四)--Logistic回归

则该函数就是逻辑回归的代价函数,它的函数图像如下所示:

入门机器学习(四)--Logistic回归入门机器学习(四)--Logistic回归

该函数能够很好的诠释远离真实标签和贴近真实标签的代价的趋势。

5. 简化代价函数与梯度下降(Simplified cost function and gradient descent)

逻辑回归的代价函数比较复杂,可以用另一种比较简单的方式来表达。根据第四节的描述,逻辑回归的代价函数如下:

入门机器学习(四)--Logistic回归

由于输出是0或者1,所以可以将以上的代价函数写在一起:

入门机器学习(四)--Logistic回归

为了求取最优的参数θ,我们的目的是最小化J(θ),并且迭代地进行梯度下降:

入门机器学习(四)--Logistic回归

带入之后,即:

入门机器学习(四)--Logistic回归

注意:这个迭代公式虽然和线性回归时的一样,但是我们这里的h(x)是sigmoid函数,而不是θ^T·X,所以二者的梯度下降是截然不同的。

6. 高级优化(Advanced Optimization)
  共轭梯度法,BFGS, L-BFGS

这些算法与梯度下降法相比,优缺点为:

优点:不需要人工选择学习率α,一般比梯度下降快

缺点:比梯度下降法更复杂,一般不能自己实现,要调用已经存在的软件库。

举个例子,如何使用这些方法:

入门机器学习(四)--Logistic回归

Octave实现:

入门机器学习(四)--Logistic回归

入门机器学习(四)--Logistic回归

入门机器学习(四)--Logistic回归

7. 多元分类:一对多(Multi-class classificaition:one-vs-all)

何为多元分类,就是将一组特征数据分成多个类别。比如e-mail可以分组成为工作,朋友,家庭等等类别

下面就是一个三分类的例子,怎么对下面这个数据进行分类呢?

入门机器学习(四)--Logistic回归

方法就是将多元分类转化为一对多的问题,如下图所示,将其中的一个类别当做一类,其余的数据当做另一类,把这个问题转化为二元分类问题,然后对该问题求解假设函数h1(x)。

入门机器学习(四)--Logistic回归入门机器学习(四)--Logistic回归

求得h1(x)之后,通上一步,将另一个类单独当做一类,其余的数据当做另一类,求得该二分类问题的h2(x)

入门机器学习(四)--Logistic回归入门机器学习(四)--Logistic回归

同以上两个步骤,得到h3(x)。

入门机器学习(四)--Logistic回归入门机器学习(四)--Logistic回归

得到三个假设函数之后,即完成了多分类问题,训练数据一次经过h1(x),h2(x),h3(x),即可完成分类。