【逻辑回归模型】

文章目录

  • 概念
  • 问题
  • 模型
    • sigmoid 函数
    • 决策函数
  • 参数求解
  • 延伸
    • ⽣成模型和判别模型
  • 多分类(softmax)
  • 应⽤

概念

逻辑回归(Logistic Regression)是机器学习中的⼀种分类模型,由于算法的简单和⾼效,在实际中应⽤⾮常⼴泛。本⽂主要关注逻辑回归算法的数学模型和参数求解⽅法,最后也会简单讨论下逻辑回归和贝叶斯分类的关系,以及在
多分类问题上的推⼴。

问题

在实际⼯作中,我们可能会遇到如下问题:

  1. 预测⼀个⽤户是否点击特定的商品
  2. 判断⽤户的性别
  3. 预测⽤户是否会购买给定的品类
  4. 判断⼀条评论是正⾯的还是负⾯的

这些都可以看做是分类问题,更准确地,都可以看做是⼆分类问题。要解决这些问题,通常会⽤到⼀些已有的分类算法,⽐如逻辑回归,或者⽀持向量机。它们都属于有监督的学习,因此在使⽤这些算法之前,必须要先收集⼀批标注好的数据作为训练集。有些标注可以从log中拿到(⽤户的点击,购买),有些可以从⽤户填写的信息中获得(性别),也有⼀些可能需要⼈⼯标注(评论情感极性)。另⼀⽅⾯,知道了⼀个⽤户或者⼀条评论的标签后,我们还需要知道⽤什么样的特征去描述我们的数据,对⽤户来说,可以从⽤户的浏览记录和购买记录中获取相应的统计特征,⽽对于评论来说,最直接的则是⽂本特征。这样拿到数据的特征和标签后,就得到⼀组训练数据。
我们的问题可以简化为,如何找到这样⼀个决策函数,它在未知数据集上能有⾜够好的表现。⾄于如何衡量⼀个⼆分类模型的好坏,我们可以⽤分类错误率这样的指标,也可以⽤准确率召回率,AUC等指标来衡量。
值得⼀提的是,模型效果往往和所⽤特征密切相关。特征⼯程在任何⼀个实⽤的机器学习系统中都是必不可少的。

模型

sigmoid 函数

在这里插入图片描述

对应的函数曲线如下图所⽰:
【逻辑回归模型】_第1张图片

从上图可以看到sigmoid函数是⼀个s形的曲线,它的取值在[0, 1]之间,在远离0的地⽅函数的值会很快接近0/1。这个性质使我们能够以概率的⽅式来解释(后边延伸部分会简单讨论为什么⽤该函数做概率建模是合理的)。

决策函数

⼀个机器学习的模型,实际上是把决策函数限定在某⼀组条件下,这组限定条件就决定了模型的假设空间。当然,我们还希望这组限定条件简单⽽合理。⽽逻辑回归模型所做的假设是:
这⾥的 是上边提到的 sigmoid 函数,相应的决策函数为:
选择0.5作为阈值是⼀个⼀般的做法,实际应⽤时特定的情况可以选择不同阈值,如果对正例的判别准确性要求⾼,可以选择阈值⼤⼀些,对正例的召回要求⾼,则可以选择阈值⼩⼀些。

参数求解

模型的数学形式确定后,剩下就是如何去求解模型中的参数。统计学中常⽤的⼀种⽅法是最⼤似然估计,即找到⼀组参数,使得在这组参数下,我们的数据的似然度(概率)越⼤。在逻辑回归模型中,似然度可表⽰为:
取对数可以得到对数似然度:
另⼀⽅⾯,在机器学习领域,我们更经常遇到的是损失函数的概念,其衡量的是模型预测错误的程度。常⽤的损失函数有0-1损失,log
损失,hinge损失等。其中log损失在单个数据点上的定义为
如果取整个数据集上的平均log损失,我们可以得到
即在逻辑回归模型中,我们最⼤化似然函数和最⼩化log损失函数实际上是等价的。对于该优化问题,存在多种求解⽅法,这⾥以梯度
下降的为例说明。梯度下降(Gradient Descent)⼜叫作最速梯度下降,是⼀种迭代求解的⽅法,通过在每⼀步选取使⽬标函数变化最快的⼀
个⽅向调整参数的值来逼近最优值。基本步骤如下:

选择下⽅(梯度⽅向,
选择步长,更新参数
重复以上两步直到满⾜终⽌条件
其中损失函数的梯度计算⽅法为:
沿梯度负⽅向选择⼀个较⼩的步长可以保证损失函数是减⼩的,另⼀⽅⾯,逻辑回归的损失函数是凸函数(加⼊正则项后是严格凸函
数),可以保证我们找到的局部最优值同时是全局最优。此外,常⽤的凸优化的⽅法都可以⽤于求解该问题。例如共轭梯度下降,⽜顿
法,LBFGS等。
分类边界
知道如何求解参数后,我们来看⼀下模型得到的最后结果是什么样的。很容易可以从sigmoid函数看出,当时,,否则。是模型隐含的
分类平⾯(在⾼维空间中,我们说是超平⾯)。所以说逻辑回归本质上是⼀个线性模型,但是,这不意味着只有线性可分的数据能通过LR
求解,实际上,我们可以通过特征变换的⽅式把低维空间转换到⾼维空间,⽽在低维空间不可分的数据,到⾼维空间中线性可分的⼏率会⾼
⼀些。下⾯两个图的对⽐说明了线性分类曲线和⾮线性分类曲线(通过特征映射)。
左图是⼀个线性可分的数据集,右图在原始空间中线性不可分,但是在特征转换 后的空间是线性可分的,对应的原始空间中分类边界为
⼀条类椭圆曲线。
正则化
当模型的参数过多时,很容易遇到过拟合的问题。这时就需要有⼀种⽅法来控制模型的复杂度,典型的做法在优化⽬标中加⼊正则项,
通过惩罚过⼤的参数来防⽌过拟合:
⼀般情况下,取或,分别对应L1,L2正则化,两者的区别可以从下图中看出来,L1正则化(左图)倾向于使参数变为0,因此能产⽣
稀疏解。
实际应⽤时,由于我们数据的维度可能⾮常⾼,L1正则化因为能产⽣稀疏解,使⽤的更为⼴泛⼀些。

延伸

⽣成模型和判别模型

逻辑回归是⼀种判别模型,表现为直接对条件概率P(y|x)建模,⽽不关⼼背后的数据分布P(x,y)。⽽⾼斯贝叶斯模型(Gaussian Naive Bayes)是⼀种⽣成模型,先对数据的联合分布建模,再通过贝叶斯公式来计算样本属于各个类别的后验概率,即:
通常假设P(x|y)是⾼斯分布,P(y)是多项式分布,相应的参数都可以通过最⼤似然估计得到。如果我们考虑⼆分类问题,通过简单的变
化可以得到:
如果 ,⼆次项会抵消,我们得到⼀个简单的线性关系:
由上式进⼀步可以得到:
可以看到,这个概率和逻辑回归中的形式是⼀样的。这种情况下GNB 和 LR 会学习到同⼀个模型。实际上,在更⼀般的假设(P(x|y)
的分布属于指数分布族)下,我们都可以得到类似的结论。

多分类(softmax)

如果不是在[0,1]中取值,这时问题就变为⼀个多分类问题。有两种⽅式可以出处理该类问题:⼀种是我们对每个
类别训练⼀个⼆元分类器(One-vs-all),当个类别不是互斥的时候,⽐如⽤户会购买哪种品类,这种⽅法是合适的。如果个类别是互斥的,即 的时候意味着 不能取其他的值,⽐如⽤户的年龄段,这种情况下 Softmax 回归更合适⼀些。Softmax 回归是直接对逻辑回归在多分类的推⼴,相应的模型也可以叫做多元逻辑回归(Multinomial Logistic Regression)。模型通过 softmax 函数来对概率建模,具体形式如下:
⽽决策函数为:
对应的损失函数为:
类似的,我们也可以通过梯度下降或其他⾼阶⽅法来求解该问题,这⾥不再赘述。

应⽤

本⽂开始部分提到了⼏个在实际中遇到的问题,这⾥以预测⽤户对品类的购买偏好为例,介绍⼀下美团是如何⽤逻辑回归解决⼯作中问
题的。该问题可以转换为预测⽤户在未来某个时间段是否会购买某个品类,如果把会购买标记为1,不会购买标记为0,就转换为⼀个⼆分
类问题。我们⽤到的特征包括⽤户在美团的浏览,购买等历史信息,见下表
其中提取的特征的时间跨度为30天,标签为2天。⽣成的训练数据⼤约在7000万量级(美团⼀个⽉有过⾏为的⽤户),我们⼈⼯把相
似的⼩品类聚合起来,最后有18个较为典型的品类集合。如果⽤户在给定的时间内购买某⼀品类集合,就作为正例。哟了训练数据后,使
⽤Spark版的LR算法对每个品类训练⼀个⼆分类模型,迭代次数设为100次的话模型训练需要40分钟左右,平均每个模型2分钟,测试集
上的AUC也⼤多在0.8以上。训练好的模型会保存下来,⽤于预测在各个品类上的购买概率。预测的结果则会⽤于推荐等场景。
由于不同品类之间正负例分布不同,有些品类正负例分布很不均衡,我们还尝试了不同的采样⽅法,最终⽬标是提⾼下单率等线上指
标。经过⼀些参数调优,品类偏好特征为推荐和排序带来了超过1%的下单率提升。
此外,由于LR模型的简单⾼效,易于实现,可以为后续模型优化提供⼀个不错的baseline,我们在排序等服务中也使⽤了LR模型。
总结
逻辑回归的数学模型和求解都相对⽐较简洁,实现相对简单。通过对特征做离散化和其他映射,逻辑回归也可以处理⾮线性问题,是⼀
个⾮常强⼤的分类器。因此在实际应⽤中,当我们能够拿到许多低层次的特征时,可以考虑使⽤逻辑回归来解决我们的问题。

你可能感兴趣的:(机器学习,逻辑回归,机器学习)