“如欲采蜜,勿蹴蜂房” — 《人性的弱点》戴尔·卡耐基
hello,同学们,经历过周末《百万英雄》场的小差,今天我们继续来我们的数据科学旅程。今天要给大家带来的Logistic Regression(逻辑回归)。之前一直有提到最大似然估计最佳应用就是Logistic Regression,下面的主体内容会充分的描述到,请大家认真阅读哈。
首先置顶的关于Logistic Regression的两个tips,希望大家能够记住,哪怕是死记硬背也需要掌握的:
(1)Logistic Regression 不是解决回归问题,是解决分类问题,名字容易引起大家误解;
(2)掌握了Logistic Regression的基本原理以及实战用法,基本上解决了数据科学领域建模问题的70%,一点都不夸张。比如预测一个用户是否点击特定的商品、判断一条评论是正面的还是负面的等实际场景都可以使用Logistic Regression建模。
接下来就带着大家进入Logistic Regression的世界,内容将分为:一、Logistic Regression的模型表达形式;二、Logistic Regression的概率解释;三、Logistic Regression的求解过程和优化方法;四、总结
一、LogisticRegression的模型表达形式
开始讲解Logistic Regression之前我们再次陈述一下之前经常提到的机器学习模型的上帝视角:
(1)定义目标:二分类还是多分类?还是回归
(2)生成预测目标函数(基于目标反推)(hypothesis)
(3)构造损失函数(基于目标函数,生成符合条件的损失函数)(loss function)
(4)通过优化算法,计算最小化损失函数,得到最终的模型
我们会把上述(1)(2)(3)称之为模型的表达形式,Logistic Regression的模型表达形式如下:
Logistic Regression利用了sigmoid的函数形式(为什么是sigmoid?这是一个很有意思的问题,以后会单独介绍)
sigmoid形式
其对应的函数曲线如下:
sigmoid曲线形式
我们使用如下形式代替Z,这样求解参数即为模型的目标函数h
LR的构造目标函数
有了目标函数,接下来我们就来构造对应的损失函数了这里我们以二分类问题为推导)。对于一个典型的二分类问题,我们可以构造如下损失函数(这个损失函数形式并不难理解,二项分布的损失函数都可以按照这个形式给出):
LR的损失函数形式
有了目标函数,有了基于目标函数推导出来的损失函数,那么Logistic Regression是不是就搞定了?答案肯定不是的。因为到了现在这几个公式放在这里,大家肯定一脸懵逼,不知道咋下手了,接下来我就带着大家通过概率论相关知识将损失函数J进行数学变化得到对应的求解形式。
二、Logistic Regression的概率解释
已知如上的损失函数,为了能够求解的话,接下来要引入重头戏了:最大似然估计
最大似然估计的核心知识,我们再复习一下:
最大似然估计的概率函数形式
基本套路:写出似然函数;对似然函数取对数;梯度下降法求导;解似然方程
那么,对于二分类问题我们先写出似然函数方程:
似然函数
对似然函数取对数:
似然函数取对数
在做下一步之前,我们观察一下这部分是不是和Logistic Regression的损失函数很像?对的,对于Logistic Regression问题我们解决最大似然函数,即等价于Logistic Regression的损失函数最小。那么整个过程就解释的通了。
三、Logistic Regression的求解过程和优化方法
有了损失函数,有了统计概率论的相关解释,我们接下来就看怎么求解了。常用的优化方法有哪些?
如前所示,Logistic Regression的损失函数形式等价于最大似然估计,对于最大似然估计我们常用的求解方法就是梯度下降算法,我们这里以批量梯度下降BGD为例。
批量梯度下降法BGD
推导过程如下:
推导过程
最终的代码表达如下:
代码表达
即在既定步长下,观察两次梯度变化小于某个值停止迭代,完成整个模型的迭代,但是BGD是全量样本迭代,效率是要较低一些,所以我们常见的优化方法还有SGDSAG牛顿法,以后会单独介绍,另外针对Logistic Regression的正则化也单独介绍。
四、总结
由于LR模型的简单高效,易于实现,可以为后续模型优化提供一个不错的baseline。通过对特征做离散化和其他映射,逻辑回归也可以处理非线性问题,是一个非常强大的分类器。因此在实际应用中,当我们能够拿到许多低层次的特征时,可以考虑使用逻辑回归来解决我们的问题。
声明:本站部分文章及图片源自用户投稿,如本站任何资料有侵权请您尽早请联系jinwei@zod.com.cn进行处理,非常感谢!