4.逻辑回归

本文由中山大学In+ Lab整理完成,转载注明出处

团队介绍 传送门

逻辑回归

  逻辑回归logistic regression)是机器学习中的经典分类方法。看到这个机器学习方法的名字,你可能会有点疑惑:“逻辑回归明明是一个分类方法,为什么名字里面有回归的字眼?”,这实际上是个好问题,说明你对分类和回归是有所区分的,请你先别急,我们也会在之后的篇幅当中解答这个问题。为了使这个教程相对比较好理解,我们将问题缩小一点,只关注二分类的情况,也就是说标签变量只能取两种值,0 和 1 。举个例子,假如我们希望构建一个能够回答“该股票未来是否会涨”的分类器,这时 x 是基于该股票所构建的一些特征,y 是“该股票未来是否会涨”的结果(如果会涨取 1,如果不会涨取 0)。这时, 被称作特征变量; 被称作标签变量;1 被称作正类;0 被称作负类。首先,我们会使用经典的机器学习三要素(模型、策略和算法)的框架来介绍逻辑回归;最后,我们将结合金融领域,阐述一个贷款违约检测的例子。

模型

  假设你已经学完了前面的部分,那么此时你应该对线性回归有所了解。线性回归的假设函数(hypotheses)(或模型)是 y=wx+b,并且它所解决的问题是回归问题,也就是标签变量 y 的值是连续的。事实上,我们可以讲线性回归稍作修改就能使用在分类问题上,具体做法是:确定一个阈值 A,如果假设函数的预测值大于 A 则标签变量为 1,反之亦然。但是为什么我们没有这样做呢,原因在于:这样做的效果太差了!

  为了使得效果能够好些,我们重新定义了假设函数(或模型):

此处,g 函数指:

g 函数被称作逻辑函数logistic function)或者 S 型函数sigmoid function)。到这里,你可能会问:“线性回归中有截距 b 的,这里的 b 去哪里了?”。实际上,我们为了形式好看,只是将 b “藏起来”了,我们使得 ,这样就有 ,其中 n 为特征的数量。逻辑函数的函数图如图 1 所示:

 

图 1: 逻辑函数的函数图

看到这个函数,你不要怕,我们来一起解读一下这个函数。从图中可以看出,当 z 趋向于正无穷时,函数值 g(z) 趋向于 1;当 z 趋向于负无穷时,函数值 g(z) 趋向于 0;函数 g(z) 或者 h(x) 的值是被约束在 0 和 1 之间的。

  为了使得我们的模型具备更好的解释性,我们赋予它一系列的概率特性,我们可以做出如下假设:

这里可以被解释成:在给定特征变量 x 和参数 w 的条件下,标签变量 y 等于 1 的概率为 。因此,相应的决策函数(也就是对于给定的特征变量 x,我们如何做出分类):

这里选择 0.5 作为阈值是一个一般的做法,实际应用时特定的情况可以选择不同阈值。

  到这里,你是否能回答最初提的一个疑问呢:逻辑回归明明是一个分类方法,为什么名字里面有回归的字眼?因为,逻辑回归是一个使用逻辑函数将线性回归的结果归一化的分类模型,这里的归一化指将值约束在 0 和 1 之间。

策略

       在上一节我们确定了模型的数学形式,剩下的就是如何去求解模型中的参数。统计学中常用的一种方法是极大似然估计

  那么,什么是极大似然估计呢?

  实际上,极大似然估计很直观,按照字面理解,极大似然估计的意思就是可能性最大的估计。而这种思想,不夸张地说,在我们的日常生活中也是充满了极大似然估计的身影。

  举个例子:

  假如有一天你和基友阿翔在上学的途中,看到有一个前面一个身影进了你们等下正要上课的教室。前面的身影走得比较快,你仅仅看到是 ta 有一把长发。这个时候,你的基友阿翔问你,“咦,前面这个同学走得很快哦,没有看清,是男生还是女生?”

于是,你站在路上想了一下,酷酷地回答说,“是个女生”。

  这就是一个极大似然估计思考的过程,让我们简单回顾一下:

  你看到了一个人走进课室,并且看到 ta 是长头发的。尽管这个同学可能是男的,也可能是女,但是你根据经验判断,女生的长头发的可能性有 95%,男生长头发的可能性只有 4%,于是,你根据这个可能性做出了判断,她是一个女生。没错,这种按照可能性最大的猜测正是极大似然估计的思想。

  因此,公式化之后,我们要做的就是求解这个最优化问题:

其中,l(w) 是指:

  实际上,函数 l(w) 是一个我们定义好的对数似然函数,如果你希望了解定义的缘由,可以查找相关的资料进行深入的了解。如果你不太愿意追究细节,函数 l(w) 你可以理解成可能性(似然),这个最优化问题你可以理解成最大化可能性(极大似然)。因此,我们希望按照可能性最大的猜测去求解模型参数 。

算法

  我们在上一节确定了最优化问题,接下来便是需要找到一种方法去求解这个最优化问题。梯度下降法是统计学中非常常用的方法。

  什么是梯度下降呢?

  我们来玩一个游戏,假如你在一座山上,蒙着眼睛,但是你必须到达山谷中最低点的湖泊,你该怎么办?

  梯度可以帮助你完成这个游戏。你只需要通过手感受附近梯度最大的方向,一直沿着梯度相反的方向就可以到达谷底(原理和弹珠从高处滚落最后会滚进最低处一样)。这就是梯度下降的思想。

  因此,在此处,我们需要做的便是:首先对参数 w 初始化,可以随机初始化,也可以全 0 初始化;然后沿着梯度相反的方向改变参数 w 的值,使得最优化问题中的目标函数 l(w) 的值减小,直到它收敛为止。

例子

  这一节,我们希望使用一个例子,让你对逻辑回归的模型有一个更加直观的认识。以金融领域中的贷款违约检测为例,假设我们是一家银行,我们手中持有客户之前的金融信息,包括:资产、负债、信用等。现在我们希望使用逻辑回归的方法,对于一个客户的贷款申请,做出其未来是否会违约的预测。

  假设我们已经拥有了一个训练好的模型,对于该客户的特征向量,我们首先会计算他的线性回归的值,你可以理解成一个打分的结果;然后在把该值当作 S 型函数的输入值,计算其分类的概率值。我们习惯把概率值大于或等于 0.5 的归为一类,小于 0.5 的归为另一类。因此,倘若计算出的概率值大于或等于 0.5,模型将该客户预测为:未来会违约;若小于 0.5,模型将该客户预测为:未来不会违约。

  那么,对于特征 x=2.5 的客户,我们将会怎么做出预测呢?假设我们训练好的模型的参数 。

1. 首先,逻辑回归模型将会计算其线性回归的值,也就是 w*x=2*2.5=5,如图 2 所示;

图 2: 使用线性回归计算打分结果

2. 然后,将该值作为 S 型函数的输入,计算未来会违约的概率,也就是 ,如图 3 所示,于是得到:该客户未来会违约的概率为 0.993;

图 3: 使用 S 型函数计算分类概率

3. 该客户未来会违约的概率大于 0.5,因此模型将做出预测:该客户未来会违约!

总结

  在这篇教程中,我们希望使用尽量少的公式讲清楚逻辑回归这个机器学习方法的整个流程,我们分别从机器学习方法的三要素:模型、策略和算法,对逻辑回归进行了介绍。首先,我们基于逻辑函数定义了模型;然后,我们使用极大似然估计法定义了最优化问题;最后,我们使用梯度下降法求解最优化问题,从而得到模型中的参数。与此同时,我们还结合了金融领域中的应用,针对贷款违约检测做出举例。

参考文献

[1] 李航. 统计学习方法[M]. 清华大学出版社, 2012.

[2] Ng A. CS229 Lecture notes[J]. CS229 Lecture notes, 2000, 1(1): 1-3.

[3] 美团点评技术团队. Logistic Regression 模型简介 [EB/OL]. http://www.creader.com/news/20011219/200112190019.html.

[4] 浩彬老撕. (理论+案例)如何通俗地理解极大似然估计 [EB/OL]. https://ask.hellobi.com/blog/wetalkdata/5414.

[5] 马同学. 如何直观形象的理解方向导数与梯度以及它们之间的关系 [EB/OL]. https://www.zhihu.com/question/36301367.

posted @ 2018-03-05 10:33  inpluslab-dataplayer  阅读(255)  评论(0编辑  收藏  举报