社区所有版块导航
Python
python开源   Django   Python   DjangoApp   pycharm  
DATA
docker   Elasticsearch  
aigc
aigc   chatgpt  
WEB开发
linux   MongoDB   Redis   DATABASE   NGINX   其他Web框架   web工具   zookeeper   tornado   NoSql   Bootstrap   js   peewee   Git   bottle   IE   MQ   Jquery  
机器学习
机器学习算法  
Python88.com
反馈   公告   社区推广  
产品
短视频  
印度
印度  
Py学习  »  机器学习算法

机器学习算法入门:Logistic回归学习笔记

量化研究方法 • 5 年前 • 801 次点击  

一、Logistic Regression的理解

角度一:输入变量X服从logistic分布的模型

LOGISTIC分布

设X是连续随机变量,X服从逻辑斯蒂分布是指X具有下列的分布函数密度函数: 


率的大小,将实例划分到较大的一类.

  • 有时为了方便,将偏置扩充到权值向量中,此时模型表示如下


  • 可以看到μ影响的是中心对称点的位置, 越小中心点附近增长的速度越快。而常常在深度学习中用到的非线性变换sigmoid函数是逻辑斯蒂分布的γ=1,μ=0的特殊形式。


    二项logistic回归模型

  • 逻辑回归是为了解决分类问题,根据一些已知的训练集训练好模型,再对新的数据进行预测属于哪个类。

  • 由条件概率分布P(Y|X) 表示,形式就是参数化的逻辑斯蒂分布。这里的自变量X取值为实数,而因变量Y为0或者1。二项LR的条件概率如下:

·对于给定的输入实例x,按照上式可求得对应的条件概率,比较两个条件概率的大小,将实例划分到较大的一类.

  • 有时为了方便,将偏置扩充到权值向量中,此时模型表示如下


角度二:LR模型将线性分类函数转换为(条件)概率

一个事件的几率(odds):指该事件发生与不发生的概率比值,若事件发生概率为p,那么事件发生的几率就是

那么该事件的对数几率(log odds或者logit function)就是:



从而可以得到一种对逻辑回归的定义,输出Y=1的对数几率是由输入x的线性函数表示的模型,即逻辑斯蒂回归模型(李航.《统计机器学习》)所以说Logistic Regression属于对数线性模型)。

因此,针对对输入$x$进行分类的线性函数,通过LR模型可以将其转换为(条件)概率:



也就是说,输出Y=1的对数几率是由输入x的线性函数表示的模型,这就是 逻辑回归模型。当 w⋅x的值越接近正无穷,P(Y=1|x) 概率值也就越接近1.这样的模型是逻辑斯蒂回归模型(李航.《统计机器学习》

逻辑回归的思路是,先拟合决策边界(这里的决策边界不局限于线性,还可以是多项式),再建立这个边界与分类的概率联系,从而得到了二分类情况下的概率。


角度三:广义线性模型在分类问题上的推广

根据广义线性模型的思想,可以通过寻找一个联系函数来将分类任务的真实标记与线性回归模型的预测值联系起来,最直接的想法是单位阶跃函数,即


但是单位阶跃函数不连续,所以我们希望找到一个替代函数来在一定程度上近似单位阶跃函数,并希望该函数单调可微,于是就引入了对数几率函数(sigmoid函数)

它是一个可导函数,定义域为(−∞,+∞)(−∞,+∞),值域为[0, 1],其导数为:g′(z)=g(z)(1−g(z))

说明一下,表达式(1)等价于使用线性回归模型的预测结果直接去逼近真实标记的对数几率,因此将其称作“对数几率回归(logit regression)”。使用这种方法有以下几大优点:

  • 直接对样本进行建模,无需对样本进行先验假设;

  • 其结果不仅可以预测出“label”,还可以得到近似的概率预测值;

  • sigmoid函数的数学性质良好,它是任意阶可导的凸函数,因此许多的优化方法都可使用

将对数几率函数带入广义线性模型则有



二、logistic回归的损失函数

基本思想:应用极大似然估计法估计模型参数,从而将问题转化为以对数似然函数为目标函数的最优化问题,然后采用梯度下降法或者拟牛顿法进行求解



最优化算法并不限于梯度下降,还有:

  • Newton Method(牛顿法)

  • Conjugate gradient method(共轭梯度法)

  • Quasi-Newton Method(拟牛顿法)

  • BFGS Method

  • L-BFGS(Limited-memory BFGS)

上述优化算法中,BFGS与L-BFGS均由拟牛顿法引申出来,与梯度下降算法相比,其优点是:第一、不需要手动的选择步长;第二、比梯度下降算法快。但缺点是这些算法更加复杂,实用性不如梯度下降。

三、sigmoid函数的由来

一种解释是通过广义线性模型,如将输入y的对数几率表示为输入x的线性组合,即

具体可参考:逻辑回归(LR)

扫码查看详情

2. 另一种推导则是由最大熵模型导出,详细推导如下

用最大熵模型来解释逻辑斯谛回归的函数形式

扫码查看详情

3.指数分布族的推导

四、多项LR模型-多分类

五、正则化

结构风险函数包括了经验风险项和正则项,加入正则项相当于对参数加入了一个先验分布,常用的有L1和L2正则,L1,L2正则化项对模型的参数向量进行“惩罚”,从而避免单纯最小二乘问题的过拟合问题。正则化项本质上是一种先验信息,整个最优化问题从贝叶斯观点来看是一种贝叶斯最大后验估计,其中正则化项对应后验估计中的先验信息,损失函数对应后验估计中的似然函数,两者的乘积即对应贝叶斯最大后验估计的形式,如果将这个贝叶斯最大后验估计的形式取对数,即进行极大似然估计,你就会发现问题立马变成了损失函数+正则化项的最优化问题形式。

在逻辑回归求解中,如果对样本加上一个先验的服从高斯分布的假设,那么就取log后,式子经过化简后就变成在经验风险项后面加上一个正则项,此时损失函数变为。

六、常见考点

1.LR中损失函数的意义是什么?

在LR中,最大似然函数与最小化对数损失函数等价

证明如下:

更多损失函数内容,参考:机器学习-损失函数

扫码查看详情


2. LR与线性回归的联系和区别

逻辑回归和线性回归首先都可看做广义的线性回归,其次经典线性模型的优化目标函数是最小二乘,而逻辑回归则是似然函数,另外线性回归在整个实数域范围内进行预测,敏感度一致,而分类范围,需要在[0,1]。逻辑回归就是一种减小预测范围,将预测值限定为[0,1]间的一种回归模型,因而对于这类问题来说,逻辑回归的鲁棒性比线性回归的要好。

3.LR与最大熵模型

逻辑回归跟最大熵模型没有本质区别。逻辑回归是最大熵对应类别为二类时的特殊情况,也就是当逻辑回归类别扩展到多类别时,就是最大熵模型。

  • 指数簇分布的最大熵等价于其指数形式的最大似然。

  • 二项式分布的最大熵解等价于二项式指数形式(sigmoid)的最大似然;

  • 多项式分布的最大熵等价于多项式分布指数形式(softmax)的最大似然。

4.LR与svm

相同点:

  1. 都是分类算法

  2. 都是监督学习算法

  3. 都是判别模型

  4. 都能通过核函数方法针对非线性情况分类

  5. 目标都是找一个分类超平面

  6. 都能减少离群点的影响

不同点:

  1. 损失函数不同,逻辑回归是cross entropy loss,svm是hinge loss

  2. 逻辑回归在优化参数时所有样本点都参与了贡献,svm则只取离分离超平面最近的支持向量样本。这也是为什么逻辑回归不用核函数,它需要计算的样本太多。并且由于逻辑回归受所有样本的影响,当样本不均衡时需要平衡一下每一类的样本个数。

  3. 逻辑回归对概率建模,svm对分类超平面建模

  4. 逻辑回归是处理经验风险最小化,svm是结构风险最小化。这点体现在svm自带L2正则化项,逻辑回归并没有

  5. 逻辑回归通过非线性变换减弱分离平面较远的点的影响,svm则只取支持向量从而消去较远点的影响

  6. 逻辑回归是统计方法,svm是几何方法

5 LR与朴素贝叶斯

  • 相同点是,它们都能解决分类问题和都是监督学习算法。此外,有意思的是,当假设朴素贝叶斯的条件概率P(X|Y=ck)P(X|Y=ck)服从高斯分布时Gaussian Naive Bayes,它计算出来的P(Y=1|X)P(Y=1|X)形式跟逻辑回归是一样的。

  • 不同的地方在于,逻辑回归为判别模型求的是p(y|x)p(y|x),朴素贝叶斯为生成模型求的是p(x,y)p(x,y)。前者需要迭代优化,后者不需要。在数据量少的情况下后者比前者好,数据量足够的情况下前者比后者好。由于朴素贝叶斯假设了条件概率P(X|Y=ck)P(X|Y=ck)是条件独立的,也就是每个特征权重是独立的,如果数据不符合这个情况,朴素贝叶斯的分类表现就没有逻辑回归好。

6 LR与感知机

  • 相同点

    • 都是线性分类模型,原始模型都只能处理二分类问题

    • 模型的形式相似(都是在线性模型外通过联系函数映射到另外的空间,只不过感知机是符号函数,LR是sigmoid(或者说Logistic)函数)

    • 训练方法都是使用梯度下降法


  • 不同点

    • LR输出为仅是概率的值,而感知机输出为1/-1

7. 多分类-softmax

如果y不是在[0,1]中取值,而是在K个类别中取值,这时问题就变为一个多分类问题。有两种方式可以出处理该类问题:一种是我们对每个类别训练一个二元分类器(One-vs-all),当K个类别不是互斥的时候,比如用户会购买哪种品类,这种方法是合适的。如果K个类别是互斥的,即y=i的时候意味着y不能取其他的值,比如用户的年龄段,这种情况下 Softmax 回归更合适一些。Softmax 回归是直接对逻辑回归在多分类的推广,相应的模型也可以叫做多元逻辑回归(Multinomial Logistic Regression)。模型通过 softmax函数来对概率建模,具体形式如下:

七、LR优缺点

  • 优点

    • 实现简单

    • 分类时计算量非常小,速度快,存储资源低


  • 缺点

    • 容易欠拟合,一般准确度不太高

    • 原始的LR仅能处理二分类问题,且必须线性可分(衍生出的softmax可以用于多分类)

八、LR模型在工业界的应用

常见应用场景

  • 预估问题场景(如推荐、广告系统中的点击率预估,转化率预估等)

  • 分类场景(如用户画像中的标签预测,判断内容是否具有商业价值,判断点击作弊等)

LR适用上述场景的原因

LR模型自身的特点具备了应用广泛性

  • 模型易用:LR模型建模思路清晰,容易理解与掌握;

  • 概率结果:输出结果可以用概率解释(二项分布),天然的可用于结果预估问题上;

  • 强解释性:特征(向量)和标签之间通过线性累加与Sigmoid函数建立关联,参数的取值直接反应特征的强弱,具有强解释性;

  • 简单易用:有大量的机器学习开源工具包含LR模型,如sklearn、spark-mllib等,使用起来比较方便,能快速的搭建起一个learning task pipeline;

面临的问题

  • 学习的过拟合问题;

  • 学习的数据稀疏性问题;

  • 模型自身的学习效率(收敛速度,稳定性);

  • 训练模型时数据、特征的扩展性问题,即学习算法可否在分布式环境下工作;

  • 如何结合实际应用场景(比如多资源位/多广告位的点击预估问题),给出相应的解决方案.




九、并行化

参考以下第六小节:【机器学习算法系列之二】浅析Logistic Regression

扫码查看详情

参考

统计学习方法笔记(六)——Logistic Regression


扫码查看详情


Logistic Regression 的前世今生(理论篇)


扫码查看详情


【机器学习算法系列之二】浅析Logistic Regression


扫码查看详情


逻辑回归 (LR)



扫码查看详情


最大熵


扫码查看详情


模型简介


扫码查看详情




文章转自知乎

作者|涨知识的猴头菇

编辑|刘刘刘佳楠


今天看啥 - 高品质阅读平台
本文地址:http://www.jintiankansha.me/t/E1tzed3TlG
Python社区是高质量的Python/Django开发社区
本文地址:http://www.python88.com/topic/12361
 
801 次点击