机器学习入门——Logistic回归

6 Logistic回归

学习了线性回归(包括单变量和多变量),我们发现可以使用它来实现预测某个食物的发展趋势。

那么能不能使用线性回归进行分类呢?

单纯的线性回归,,其假设函数一个训练数据,对应一个假设值,这样起不到分类的效果。但是,在这个基础上,进行延伸,比如将假设的结果和概率结合起来,就可以用来做分类器了。拿二分类(0和1)作为例子,当线性回归的结果使分类结果为1的概率大于0.5,则该数据归为1类,否则,就归为0类。其实,这种算法就是本文即将要讲解的Logistic回归。


6.1 相关概念

凸集(Convex Set)

凸集是一种特殊的集合。在实数域R上的向量空间中,如果集合S中任意两点的连接上的点都在S内,则称集合S为凸集。(如下图所示)

convex set

凸函数(Convex Function)

凸函数是凸集中元素的数学特征,也就是凸集中的元素所呈现出的规律性。
凸函数被定义为某个向量空间的凸子集C上的实值函数f。如果在其定义域C上的任意两点x1,x2,以及α∈[0,1],都有



直观上,这个公式中的任意两点x1和x2的函数值的连线上的点都在曲线的上方,即两个点线性组合的函数值要小于等于两个点函数值的线性组合。(如下图所示)



注:

  1. 凸函数仅仅是定义在凸集上的函数,它反映了凸集(或凸子集)中元素的存在形式或规律。
  2. 因为凸集是一个集合,元素可以是连续,也可以是离散的,所以凸函数不要求函数f(x)是连续的和可微的(可导的)。

凸函数的重要作用

凸函数在凸优化中具有很好的性质:

(1) 凸优化的任一局部极小(大)点也是全局极小(大)点,且全体极小(大)点的集合为凸集。

(2) 凸优化的任一局部最优解都是它的整体最优解。


6.2 分类算法(二分类)

在现实中,我们需要机器进行很多二分类操作。比如,上电子邮箱时,需要机器判断邮件是否是垃圾邮件,从而获得更好的用户体验;需要通过机器检测某人是否患了某种病,等等。此时,假设我们用y表示预测结果,则y只有两个值,1或者0(是或者否)。

此时,我们还用之前讲解的线性回归进行预测,从而分类,就很不合适了。我们需要进行改进,这样我们就要引入Logistic函数。


6.3 Logistic 函数

首先,我们看看Logistic函数的样子,如下图所示:


观察Logistic函数,在纵坐标的取值范围正好是(0,1),它的函数表达式是:

下面我们结合二分类简单理解这个表达式。我们假设输出标签y={0,1},那么,

如果y=1,概率就是p,p=P{Y=1|x},我们令:



如果y=0,概率就是1-p,1-p=P{Y=0|x},那么,


这时我们结合之前讲解过的线性回归,将其假设函数由,更改为,这样线性回归的结果就能概率化,同时,当概率大于等于0.5,就判断为1类,否则,判断为0类。这个就是Logistic分类的基本思想和原理。


6.4 决策边界(Decision Boundary)

由6.3可知,


再次观察6.3中的Logistic函数图像,当z>=0时,g(z)>=0.5,而此时

总的来说,时,输出结果为1;反之,输出结果为0。即:


因此,就是决策边界(也可以说是分类超平面)。决策边界,可以是线性的,也可以是非线性的。下面举例说明。

线性决策边界

假设有两类训练数据,如图所示


这是,我们假设决策边界是线性的,则假设函数为:


在本节,我们暂时忽略θ参数的求解。这里,我们假设求得:

这是,我们将决策边界可视化,有:


根据上图所示,我们可得出结论:


显然,上图所示,绿色的线即为决策边界。注意:决策边界是假设函数的属性,而并非训练数据的属性。也就是说,使用训练数据去确定θ参数,确定参数后,决策边界将被完全确定,因此,在绘制决策边界时,不一定要绘制训练数据。

非线性决策边界

假设有这样两类的训练数据,如下图所示


显然,这个例子比上一例更为复杂,此时决策边界不适合使用线性的函数去表示,这是我们需要考虑非线性的拟合,这里,我们使用多项式拟合。即:


同样,在这里暂时不讲解参数的求解,我们假设求得:,当θ确定后,决策边界就会确定,此时,决策边界为:,如下图所示


从上图可见,可得:


由此可见,此时,决策边界为:


6.5 Logistic的代价函数

对于线性回归,,显然,单个样例的代价函数为:

通过之前的学习,我们可以知道这个形式的代价函数能很好地应用在线性回归中,那么现在我们把它应用在Logistic回归中。
当将该代价函数应用于Logistic回归,首先,要改变的是假设函数,此时,

乍眼看上去,好像还可以。但实际上,这样会使单个样例的代价函数变成一个关于参数θ的非凸函数,因为logistic函数是一个非线性函数,这样就失去了凸函数的很多优良性质(在6.1中有提及),出现很多局部最优解,同时局部最优解也不是全觉最优解,导致难以使用梯度下降去求参数。为了使用梯度下降和凸函数的优良特性,我们必须对代价函数进行处理。

在Logistic回归中,单个样例的代价函数为:

Logistic代价函数的解释

Logistic代价函数的意思是,当假设为h(x),而如果训练集中该组数据分类结果为1,则使用上式作为代价函数;反之,使用下式。我们通过作图,对该代价函数进行详细分析。

当y=1时,


观察上图,易得:
如果训练集数据结果是1(y=1),同时假设结果也为1,这时由此函数可得,cost=0;而这时假设函数结果接近0,则cost接近无穷大,即为错误的预测付出很大代价。

当y=0时,


观察上图,如果训练集数据是0,同时假设结果也为0,则此时代价函数值为0;相反,如果假设接近1,代价值会激增。

由上面的分析,如上式的代价函数很适合Logistic回归,同时该类型的对数函数是凸函数,利于梯度下降的使用。


6.6 Logistic回归与梯度下降的结合使用

在上一节,我们详细解释了Logistic回归的单个数据代价函数。现在我们整合以下,有:


对于y,它只有两个可能取值,0和1,所以,我们可以把分段函数合并,即:


再次进行整合,有:




显然,目标函数就是:

梯度下降实现代价最小化

在整合了Logistic的代价函数,我们可以使用梯度下降使其代价最小化。即:


其实,这个和我们之前讲解的线性回归的梯度下降很相似,只是假设函数不同而已,计算是类似的。同样,如果使用了梯度下降,我们需要注意特征缩放(Feture scaling)


6.7 更高级的优化方法

在上一节,我们介绍了梯度下降求解Logistic参数。使用梯度下降时,我们需要确定代价函数J(θ),以及其关于θ的偏导,然后带入公式,从而最小化J(θ)。
其实,对于Logistic的优化算法不仅仅只有梯度下降,还有很多更高级的算法,比如:Conjugate gradient、BFGS和L-BFGS等。

梯度下降和高级优化算法的对比



由于高级算法比较复杂,不属于该课程的讲解范围之类,因此没有详细讲解。


6.8 Logistic的拓展

根据上述所讲,Logistic回归只能进行二分类,但实际生活中,存在着许多的多元分类,如:给邮件上标签,即对邮件进行分类;所患疾病的判断;天气情况的预测,等等。

如果遇到多元分类问题,应该如何解决呢?

答案是,可以将其看作是多个二分类的问题来解决。举了例子,假设有训练集数据,如下图所示:


显然,如图所示,数据应该是分成三类的。此时,我们可以这个多分类的问题,转化为三个二元分类的问题。现在,我们进行三个二元分类。

(1)我们将class1看作一类,class2和class3看作另一类,则有:


如果使用Logistic回归,则决策边界大致为下图的黄线

(2)我们将class2看作一类,class1和class3看作另一类,则有:


如果使用Logistic回归,则决策边界大致为下图的黄线

(3)我们将class3看作一类,class1和class2看作另一类,则有:


如果使用Logistic回归,则决策边界大致为下图的黄线

这时我们有三个分类器,即三个假设函数

由Logistic回归,我们可以求出每一类的概率,

因此,要进行分类很简单,就是输入x,然后带入三个分类器(或者说是假设函数),就能求出属于某一类的概率值,哪个概率值大就属于哪一类。即:


其实,6.8节所述正是softmax回归算法。

第6章知识点较多,同时也很重要,因此在下一篇文章将详细讲解一个基于python的Logistic实战。

  • 12
    点赞
  • 33
    收藏
    觉得还不错? 一键收藏
  • 3
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值