1200字范文,内容丰富有趣,写作的好帮手!
1200字范文 > 【机器学习】逻辑回归 LR 算法 整理

【机器学习】逻辑回归 LR 算法 整理

时间:2023-07-05 01:55:40

相关推荐

【机器学习】逻辑回归 LR 算法 整理

有了 Sigmoid 函数之后,由于其值取值范围在[0,1]。就可以将其视为类 1 的后验概率估计 p(y=1|X)。就是如果有一个测试点 x,就可以用Sigmoid函数算出来的结果当作该点 x 属于类别 1 的概率大小。

于是,非常自然地,把 Sigmoid 函数计算得到的值大于等于0.5的归为类别1,小于0.5的归为类别0:

1.逻辑斯蒂回归模型

LR模型主要用于分类模型,细心的人不难发现LR模型在线性回归模型上加了一个sigmoid转换。为了更加深入地了解这个模型,我们可能要思考以下几个问题

(1)sigmoid从何而来,篇幅比较大,下面会单独讨论

(2)sigmoid转换的优势

- 求梯度方便 ;sigmoid 的导数 = sigmoid(x) * (1 - sigmoid(x))

- 数据统一分布在0-1之间,从下面的LR分布也可以看出

(3)这种转换需要注意的地方,LR分布可以此种转换的特征

2.逻辑斯蒂回归分布

分布函数式中,为位置参数,为形状参数

密度函数

逻辑斯蒂回归分布的密度函数和分布函数

不难看出,F(x)曲线在中心附近增长速度比较快,在两端增长速度较慢。形状参数的值越小,曲线在中心附近增长得越快

3.模型参数估计

应用极大似然估计法估计模型

(1)设

(2)似然函数

(3)对数似然函数

(4)梯度下降

最后括号中表达式就是训练时的误差,从而我们可以通过batch等方法进行随机梯度下降

4.sigmoid

定义表达式

A(u,v):如果u == v,则A(u,v) = 1 ,否则为0

表示x的label为u的概率

满足条件

第三个条件可以简单的从频率学派和贝叶斯学派理解

优化目标(拉格朗日)

求梯度

最终可以得到

对于分类问题,我们最终要确保每个类别概率之和为1

因此

通过化简可得

5.二分类问题中,为什么弃用传统的线性回归模型,改用逻辑斯蒂回归?

线性回归用于二分类时,首先想到下面这种形式,p是属于类别的概率:

但是这时存在的问题是:

1)等式两边的取值范围不同,右边是负无穷到正无穷,左边是[0,1],这个分类模型的存在问题

2)实际中的很多问题,都是当x很小或很大时,对于因变量P的影响很小,当x达到中间某个阈值时,影响很大。即实际中很多问题,概率P与自变量并不是直线关系。

所以,上面这分类模型需要修整,怎么修正呢?统计学家们找到的一种方法是通过logit变换对因变量加以变换,

具体如下:

从而,

这里的P完全解决了上面的两个问题。

6.从最根本的广义线性模型角度,导出经典逻辑回归

1)指数家族

当固定T时,这个分布属于指数家族中的哪种分布就由a和b两个函数决定。下面这种是伯努利分布,对应于逻辑回归问题

注:从上面可知,从而,在后面用GLM导logistic regression的时候会用到这个sigmoid函数。

下面这种是高斯分布,对应于经典线性回归问题

2)GLM(广义线性模型)

指数家族的问题可以通过广义线性模型来解决。如何构建GLM呢?在给定x和参数后,y的条件概率p(y|x,θ) 需要满足下面三个假设:

assum1) y | x; θ ∼ ExponentialFamily(η).

assum2) h(x) = E[y|x]. 即给定x,目标是预测T(y)的期望,通常问题中T(y)=y

assum3) η = θTx,即η和x之间是线性的

3)经典逻辑回归

逻辑回归:以二分类为例,预测值y是二值的{1,0},假设给定x和参数,y的概率分布服从伯努利分布(对应构建GLM的第一条假设)。由上面高斯分布和指数家族分布的对应关系可知,,根据构建GLM的第2、3条假设可model表示成:

可以从GLM这种角度理解为什么logistic regression的公式是这个形式~

7.实例

二分类问题,分类边界实乃重中之重。训练样本是否均衡、样本权重都会对边界有影响

C1、C2为类别,图片引用于PRML

了解下Fisher判别函数对理解分类问题本质会有很大帮助

8.多项逻辑斯蒂回归

假设离散型随机变量Y的取值集合是{1,2…,K},那么多项逻辑斯蒂回归模型是

类似于CNN分类最后一层softmax

9.Tips

训练速度快数据量比较少的时候容易过拟合,这与使用极大似然估计(本质上为均值)是有关的特征One-hot设计组合特征进行多分类的时候,思考下不同label之间是否有关系,从而觉得到底使用多个二分类还是一个多分类

参考文献 : 统计学习方法

逻辑回归原理,虽然叫做“回归”,但是这个算法是用来解决分类问题的。回归与分类的区别在于:回归所预测的目标量的取值是连续的(例如房屋的价格);而分类所预测的目标变量的取值是离散的(例如判断邮件是否为垃圾邮件)。便于理解,从二值分类(binary classification)开始,二分类 y只能取0或1。假如,要制作一个垃圾邮件过滤系统,如果一封邮件是垃圾系统,y=1,否则y=0 。给定训练样本集,当然它们的特征和label都已知,就是要训练一个分类器,将它们分开。

回归分析用来描述自变量 x 和因变量 Y 之间的关系,或自变量X对因变量Y的影响程度,并对因变量Y进行预测。其中因变量是希望获得的结果,自变量是影响结果的潜在因素,自变量可以有一个,也可以有多个。一个自变量的叫做一元回归分析,超过一个自变量的叫做多元回归分析。

下面是一组广告费用和曝光次数的数据,费用和曝光次数一一对应。其中曝光次数是我们希望知道的结果,费用是影响曝光次数的因素,我们将费用设置为自变量X,将曝光次数设置为因变量Y,通过一元线性回归方程和判定系数可以发现费用(X)对曝光次数(Y)的影响。

1、逻辑回归模型

回归是一种极易理解的模型,就相当于y=f(x),表明自变量x与因变量y的关系。最常见问题有如医生治病时的望、闻、问、切,之后判定病人是否生病或生了什么病,其中的望闻问切就是获取自变量x,即特征数据,判断是否生病就相当于获取因变量y,即预测分类。

最简单的回归是线性回归,在此借用Andrew NG的讲义,有如图1.a所示,X为数据点——肿瘤的大小,Y为观测值——是否是恶性肿瘤。通过构建线性回归模型,如hθ(x)所示,构建线性回归模型后,即可以根据肿瘤大小,预测是否为恶性肿瘤hθ(x)≥.05为恶性,hθ(x)<0.5为良性。

线性回归示例

线性回归的鲁棒性很差,例如在数据集上建立回归,因最右边噪点的存在,使回归模型在训练集上表现都很差。主要是因为线性回归在整个实数域内敏感度一致,而分类范围,需要在[0,1]。逻辑回归就是一种减小预测范围,将预测值限定为[0,1]间的一种回归模型。逻辑曲线在 z=0 时,十分敏感,在z>>0或z<<0处,都不敏感,将预测值限定为(0,1)。

梯度下降算法

伪代码:

初始化回归系数为1

重复下面步骤直到收敛{

计算整个数据集的梯度

使用alpha x gradient来更新回归系数

}

返回回归系数值

注:因为本文中是求解的Logit回归的代价函数是似然函数,需要最大化似然函数。所以我们要用的是梯度上升算法。但因为其和梯度下降的原理是一样的,只是一个是找最大值,一个是找最小值。找最大值的方向就是梯度的方向,最小值的方向就是梯度的负方向。不影响我们的说明,所以当时自己就忘了改过来了,谢谢评论下面@wxltt的指出。另外,最大似然可以通过取负对数,转化为求最小值。代码里面的注释也是有误的,写的代码是梯度上升,注销成了梯度下降,对大家造成的不便,希望大家海涵。

随机梯度下降SGD (stochastic gradient descent)

梯度下降算法在每次更新回归系数的时候都需要遍历整个数据集(计算整个数据集的回归误差),该方法对小数据集尚可。但当遇到有数十亿样本和成千上万的特征时,就有点力不从心了,它的计算复杂度太高。改进的方法是一次仅用一个样本点(的回归误差)来更新回归系数。这个方法叫随机梯度下降算法。由于可以在新的样本到来的时候对分类器进行增量的更新(假设我们已经在数据库A上训练好一个分类器h了,那新来一个样本x。对非增量学习算法来说,我们需要把x和数据库A混在一起,组成新的数据库B,再重新训练新的分类器。但对增量学习算法,我们只需要用新样本x来更新已有分类器h的参数即可),所以它属于在线学习算法。与在线学习相对应,一次处理整个数据集的叫“批处理”。

伪代码如下:

初始化回归系数为1

重复下面步骤直到收敛{

对数据集中每个样本

计算该样本的梯度

使用alpha xgradient来更新回归系数

}

返回回归系数值

改进的随机梯度下降

1)在每次迭代时,调整更新步长alpha的值。随着迭代的进行,alpha越来越小,这会缓解系数的高频波动(也就是每次迭代系数改变得太大,跳的跨度太大)。当然了,为了避免alpha随着迭代不断减小到接近于0(这时候,系数几乎没有调整,那么迭代也没有意义了),我们约束alpha一定大于一个稍微大点的常数项,具体见代码。

2)每次迭代,改变样本的优化顺序。也就是随机选择样本来更新回归系数。这样做可以减少周期性的波动,因为样本顺序的改变,使得每次迭代不再形成周期性。

伪代码如下:

初始化回归系数为1

重复下面步骤直到收敛{

对随机遍历的数据集中的每个样本

随着迭代的逐渐进行,减小alpha的值

计算该样本的梯度

使用alpha x gradient来更新回归系数

}

附:

LR推导及与SVM的区别

1、逻辑斯谛分布

介绍逻辑斯谛回归模型之前,首先看一个并不常见的概率分布,即逻辑斯谛分布。

设X是连续随机变量,X服从逻辑斯谛分布是指X具有如下的累积分布函数和概率密度函数:

其中,f(x) 为 F(x) 的导数。式中,μ为位置参数,γ>0为形状参数。

逻辑斯谛的分布的密度函数f(x)和分布函数F(x)的图形如下图所示。

其中分布函数属于逻辑斯谛函数,其图形为一条S形曲线。该曲线以点(μ,1/2)为中心对称,即满足:

曲线在中心附近增长较快,在两端增长较慢,形状参数γ的值越小,曲线在中心附近增长得越快。

2、逻辑斯谛回归模型:

线性回归的应用场合大多是回归分析,一般不用在分类问题上,原因可以概括为以下两个:

1)回归模型是连续型模型,即预测出的值都是连续值(实数值),非离散值;

2)预测结果受样本噪声的影响比较大。

2.1 LR模型表达式

LR模型的表达式为参数化的逻辑斯谛函数,即:

2.2 理解LR模型

2.2.1 对数几率

一个事件发生的几率(odds)是指该事件发生的概率与该事件不发生的概率的比值。如果事件发生的概率是p,那么该事件的几率为p/(1-p) ,该事件的对数几率(log odds)或logit函数是:

对LR而言,根据模型表达式可以得到:

即在LR模型中,输出y=1的对数几率是输入x的线性函数,或者说y=1的对数几率是由输入x的线性函数表示的模型,即LR模型。

2.2.2 函数映射

除了从对数几率的角度理解LR之外,从函数映射也可以理解LR模型。

考虑对输入实例x进行分类的线性表达式θT,其值域为实数域,通过LR模型的表达式可以将线性函数θTx的结果映射到(0,1)区间,取值表示为结果为1的概率(在二分类场景中).

线性函数的值越接近于正无穷大,概率值就越近1;反之,其值越接近于负无穷,概率值就越接近于0,这样的模型就是LR模型。

LR本质上还是线性回归,只是特征到结果的映射过程中加了一层函数映射,即sigmoid函数,即先把特征线性求和,然后使用sigmoid函数将线性和约束至(0,1)之间,结果值用语二分或回归预测。

2.2.3 概率解释

LR模型多用于解决二分类问题,如广告是否被点击(是/否),商品是否被购买(是/否)等互联网领域中常见的应用场景。但在实际场景中,我们又不把它处理成绝对的分类,而是用其预测值作为事件发生的概率。

这里从事件,变量以及结果的角度给予解释。

我们所能拿到的训练数据统称为观测样本。问题,样本是如何生成的?

一个样本可以理解为发生的一次事件,样本生成的过程即事件发生的过程,对于0/1分类问题来讲,产生的结果有两种可能,符合伯努利试验的概率假设。因此,我们可以说样本的生成过程即为伯努利试验过程,产生的结果(0/1)服从伯努利分布,那么对于第i个样本,概率公式表示如下:

将上面两个公式合并在一起,可以得到第i个样本正确预测的概率:

上式是对一个样本进行建模的数据表达。为什么可以这么做呢,因为y=1时后面一项为1,y=0时前面一项为1。那么对于所有的样本,假设每条样本生成过程独立,在整个样本空间中(N个样本)的概率分布(即似然函数)为:

接下来我们就可以通过极大似然估计方法求概率参数。

3、模型参数估计

3.1 Sigmoid函数

上图所示即为sigmoid函数,它的输入范围为−∞→+∞,而值域刚好为(0,1),正好满足概率分布为(0,1)的要求。用概率去描述分类器,自然要比阈值要来的方便。而且它是一个单调上升的函数,具有良好的连续性,不存在不连续点。

此外非常重要的,sigmoid函数求导后为:

3.2 参数估计推导

上一节的公式不仅可以理解为在已观测的样本空间中的概率分布表达式。如果从统计学的角度可以理解为参数θ

似然性的函数表达式(即似然函数表达式)。就是利用已知的样本分布,找到最有可能(即最大概率)导致这种分布的参数值;或者说什么样的参数才能使我们观测到目前这组数据的概率最大。参数在整个样本空间的似然函数可表示为:

为了方便参数求解,对这个公式取对数,可得对数似然函数:

然后,我们使用随机梯度下降的方法,对参数进行更新:

最后,通过扫描样本,迭代下述公式可救的参数:

式中,a表示学习率。

以上的推导,就是LR模型的核心部分,在机器学习相关的面试中,LR模型公式推导可能是考察频次最高的一个点,要将其熟练掌握。

4、LR的优缺点

优点

一、预测结果是界于0和1之间的概率;

二、可以适用于连续性和类别性自变量;

三、容易使用和可解释性强;

缺点

一、对模型中自变量多重共线性较为敏感,例如两个高度相关自变量同时放入模型,可能导致较弱的一个自变量回归符号不符合预期,符号被扭转。​需要利用因子分析或者变量聚类分析等手段来选择代表性的自变量,以减少候选变量之间的相关性;

二、预测结果呈“S”型,因此从log(odds)向概率转化的过程是非线性的,在两端随着​log(odds)值的变化,概率变化很小,边际值太小,slope太小,而中间概率的变化很大,很敏感。 导致很多区间的变量变化对目标概率的影响没有区分度,无法确定阀值。

三、逻辑回归无法学习到特征间的组合关系,因此有了 因子分解机FM 和 场感知因子分解机FFM。

逻辑回归的主要应用。逻辑回归常用于疾病自助诊断、经济预测、点击率预测等领域。逻辑回归适合用来学习需要大规模训练的样本和特征,对于广告十亿量级的特征和亿量级的特征来说,逻辑回归有着天然的优势,因此在工业界获得了广泛的关注。

逻辑回归的缺点是:需要大量的特征组合和离散的工作来增加特征的表达性,模型表达能力弱,比较容易欠拟合。

5、LR和SVM

1、LR采用log损失,SVM采用合页损失。

2、LR对异常值敏感,SVM对异常值不敏感。

3、在训练集较小时,SVM较适用,而LR需要较多的样本。

4、LR模型找到的那个超平面,是尽量让所有点都远离他,而SVM寻找的那个超平面,是只让最靠近中间分割线的那些点尽量远离,即只用到那些支持向量的样本。

5、对非线性问题的处理方式不同,LR主要靠特征构造,必须组合交叉特征,特征离散化。SVM也可以这样,还可以通过kernel。

6、svm 更多的属于非参数模型,而logistic regression 是参数模型,本质不同。其区别就可以参考参数模型和非参模型的区别

那怎么根据特征数量和样本量来选择SVM和LR模型呢?Andrew NG的课程中给出了以下建议:

如果Feature的数量很大,跟样本数量差不多,这时候选用LR或者是Linear Kernel的SVM

如果Feature的数量比较小,样本数量一般,不算大也不算小,选用SVM+Gaussian Kernel

如果Feature的数量比较小,而样本数量很多,需要手工添加一些feature变成第一种情况。(LR和不带核函数的SVM比较类似。)

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。