4.机器学习之逻辑回归算法

bonheur bonheur     2023-04-10     192

关键词:

理论上讲线性回归模型既可以用于回归,也可以用于分类。解决回归问题,可以用于连续目标值的预测。但是针对分类问题,该方法则有点不适应,因为线性回归的输出值是不确定范围的,无法很好的一一对应到我们的若干分类中。即便是一个二分类,线性回归+阈值的方式,已经很难完成一个鲁棒性很好的分类器了。为了更好的实现分类,逻辑回归诞生了。逻辑回归(Logistic Regression)主要解决二分类问题,用来表示某件事情发生的可能性。逻辑回归是假设数据服从Bernoulli分布的,因此LR也属于参数模型,他的目的也是寻找到最优参数。logistic回归是一种广义线性回归(generalized linear model)。

【补充】在统计学中,参数模型通常假设总体(随机变量)服从某一个分布,该分布由一些参数确定(比如正太分布由均值和方差确定),在此基础上构建的模型称为参数模型;非参数模型对于总体的分布不做任何假设,只是知道总体是一个随机变量,其分布是存在的(分布中也可能存在参数),但是无法知道其分布的形式,更不知道分布的相关参数,只有在给定一些样本的条件下,能够依据非参数统计的方法进行推断。

首先回顾一下简单线性回归(只考虑一个输入变量,一个输出变量的线性回归)。技术图片 表示输入变量(自变量),第一部分例子中的X。技术图片 表示输出变量(因变量),第一部分例子中的Y。一对 技术图片 表示一组训练样本。m个训练样本 技术图片 称为训练集。上面表示法中的i代表第i个样本。大写的X代表所有输入值组成的空间。大写的Y代表所有输出值组成的空间。回归属于有监督的学习。监督学习的定义是, 给定一个训练集, 我们的目标是“学习”得到一个函数 技术图片 , 使h(x)是真实值y的一个“好的”预测值。这里h叫做模型,也叫做假设(hypothesis)。

技术图片

如果我们要预测的输出值是连续的,那么该问题就称作回归问题。对于简单线性回归来说,我们的模型h可以表示如下:技术图片。其中的 技术图片 和 技术图片 代表模型的参数。线性回归的目标是:求得最合适的技术图片 和 技术图片,使得模型效果最好。

Regression问题的常规步骤为:

  1. 寻找h函数(即hypothesis);
  2. 构造J函数(损失函数);
  3. 想办法使得J函数最小并求得回归参数(θ)

从线性回归到逻辑回归:

我们知道,线性回归的模型是求出输出特征向量Y和输入样本矩阵X之间的线性关系系数θ,满足Y=Xθ。此时我们的Y是连续的,所以是回归模型。如果我们想要Y是离散的话,怎么办呢?一个可以想到的办法是,我们对于这个Y再做一次函数转换,变为g(Y)。如果我们令g(Y)的值在某个实数区间的时候是类别A,在另一个实数区间的时候是类别B,以此类推,就得到了一个分类模型。如果结果的类别只有两种,那么就是一个二元分类模型了。逻辑回归的出发点就是从这来的。下面我们开始引入二元逻辑回归。

逻辑回归(Logistic Regression)与线性回归(Linear Regression)都是一种广义线性模型(generalized linear model)。逻辑回归假设因变量 y 服从伯努利分布,而线性回归假设因变量 y 服从高斯分布。 因此与线性回归有很多相同之处,去除Sigmoid映射函数的话,逻辑回归算法就是一个线性回归。可以说,逻辑回归是以线性回归为理论支持的,但是逻辑回归通过Sigmoid函数引入了非线性因素,因此可以轻松处理0/1分类问题。

首先介绍一下Sigmoid函数,也称为逻辑函数(Logistic function):

技术图片

其函数曲线如下:

技术图片

从上图可以看到sigmoid函数是一个s形的曲线,它的取值在[0, 1]之间,在远离0的地方函数的值会很快接近0或者1。它的这个特性对于解决二分类问题十分重要。

我们知道线性回归的模型:

技术图片

线性回归中广义线性回归我们提到对线性回归的结果做一个在函数g上的转换,可以变化为逻辑回归。这个函数g在逻辑回归中我们一般就取为sigmoid函数,所以逻辑回归的假设函数形式如下:

技术图片

得到二元逻辑回归模型如下:

技术图片

 其中 技术图片 是样本的输入, 技术图片 为我们要求取的参数。hθ(x)为模型输出,可以理解为某一分类的概率大小。而θ为分类模型要求出的模型参数。对于模型输出hθ(x),我们让它和我们的二元样本输出y(假设为0和1)有这样的对应关系,如果hθ(x)>0.5 ,即xθ>0, 则y为1。如果hθ(x)<0.5,即xθ<0, 则y为0。y=0.5是临界情况,此时xθ=0为, 从逻辑回归模型本身无法确定分类。hθ(x)的值越小,而分类为0的的概率越高,反之,值越大的话分类为1的的概率越高。如果靠近临界点,则分类准确率会下降。此处我们也可以将模型写成矩阵模式:

技术图片

逻辑回归的假设

正如线性回归模型一样,逻辑回归也有假设条件,主要是两个:

(1)假设数据服从伯努利分布

(2)假设模型的输出值是样本为正例的概率

基于这两个假设,我们可以分别得出类别为1和0的后验概率估计(即二元分类回归的模型函数技术图片的值的特殊含义):

 技术图片

理解了二元分类回归的模型,接着我们就要看模型的损失函数了,我们的目标是极小化损失函数来得到对应的模型系数θ。

 

二元逻辑回归的损失函数

回顾下线性回归的损失函数,由于线性回归是连续的,所以可以使用模型误差的的平方和来定义损失函数。但是逻辑回归不是连续的,自然线性回归损失函数定义的经验就用不上了。不过我们可以用最大似然法来推导出我们的损失函数

按照上面二元逻辑回归的定义,假设我们的样本输出是0或者1两类。那么我们有:

技术图片

把这两个式子写成一个式子,就是:

技术图片

前面说到逻辑回归其实是概率类模型,因此,我们通过极大似然估计(MLE)推导逻辑回归损失函数。得到了y的概率分布函数表达式,我们就可以用似然函数最大化来求解我们需要的模型系数θ,即线性模型自变量的权重系数。最大似然函数L(θ)

技术图片

一个连乘的函数是不好计算的,可以通过两边同事取log的形式让其变成连加,所以为了方便求解,这里我们用对数似然函数最大化:

技术图片

如此就推导出了参数的最大似然估计。最大似然估计就是求使技术图片取最大值时的θ,其实这里可以使用梯度上升法求解,求得的θ就是要求的最佳参数。但是在函数最优化的时候习惯让一个函数越小越好,所以我们在前边加一个负号。因为乘了一个负的系数-1,所以取技术图片最小值时的θ为要求的最佳参数。从而符合我们理解的损失函数是最小化,可以用梯度下降法求最小值,因此我们需要在上式前加一个负号便可得到最终的损失函数

技术图片

技术图片

 损失函数也可用矩阵法表达更加简洁:

技术图片

其中E为全1向量。

逻辑回归的损失函数“对数似然函数”,在模型GBDT分类情况下也会用到,又叫作“交叉熵”。在逻辑回归中,最常用的是代价函数是交叉熵(Cross Entropy),交叉熵是一个常见的代价函数,在神经网络中也会用到。在1948年,克劳德·艾尔伍德·香农将热力学的熵,引入到信息论,因此它又被称为香农熵(Shannon Entropy),它是香农信息量(Shannon Information Content, SIC)的期望。香农信息量用来度量不确定性的大小:一个事件的香农信息量等于0,表示该事件的发生不会给我们提供任何新的信息,例如确定性的事件,发生的概率是1,发生了也不会引起任何惊讶;当不可能事件发生时,香农信息量为无穷大,这表示给我们提供了无穷多的新信息,并且使我们无限的惊讶。更多解释可以参考博客:https://blog.csdn.net/rtygbwwwerr/article/details/50778098

 

二元逻辑回归的损失函数的优化方法

 对于线性回归模型而言,可以使用最小二乘法,但对于逻辑回归而言使用传统最小二乘法求解是不合适的。对于二元逻辑回归的损失函数极小化,有比较多的方法,最常见的有梯度下降法,坐标轴下降法,等牛顿法等。之前提到过梯度下降法有代数法求解和矩阵法求解,只不过代数法推导比较的繁琐。具体使用梯度下降法求解逻辑回归损失函数方法可参考https://www.cnblogs.com/pinard/p/6029432.htmlhttps://zhuanlan.zhihu.com/p/51279024 他们的推导过程。

实践中,我们一般不用操心优化方法,大部分机器学习库都内置了各种逻辑回归的优化方法,不过了解这些优化方法还是有必要的。

 

二元逻辑回归的正则化

逻辑回归也会面临过拟合问题,所以我们也要考虑正则化。常见的有L1正则化和L2正则化。

问题的主因:过拟合问题往往源自过多的特征。

解决方法:

1)减少特征数量(减少特征会失去一些信息,即使特征选的很好)

  • 可用人工选择要保留的特征;
  • 模型选择算法;

2)正则化(特征较多时比较有效)

  • L2正则化保留所有特征,但减少θ的大小
  • L1正则化

逻辑回归的L1正则化的损失函数表达式如下,相比普通的逻辑回归损失函数,增加了L1的范数做作为惩罚,超参数α作为惩罚系数,调节惩罚项的大小:

技术图片

其中|θ|1为θ的L1范数,逻辑回归的L1正则化损失函数的优化方法常用的有坐标轴下降法和最小角回归法。

二元逻辑回归的L2正则化损失函数表达式如下:

技术图片

其中|θ|2为θ的L2范数,逻辑回归的L2正则化损失函数的优化方法和普通的逻辑回归类似。

 

二元逻辑回归的推广:多元逻辑回归

前面讲的逻辑回归的模型和损失函数都局限于二元逻辑回归,实际上二元逻辑回归的模型和损失函数很容易推广到多元逻辑回归。比如总是认为某种类型为正值,其余为0值,这种方法为最常用的one-vs-rest,简称OvR。

另一种多元逻辑回归的方法是Many-vs-Many(MvM),它会选择一部分类别的样本和另一部分类别的样本来做逻辑回归二分类。最常用的是One-Vs-One(OvO)。OvO是MvM的特例。每次我们选择两类样本来做二元逻辑回归。

多元逻辑回归算法如softmax回归。

 

逻辑回归的优缺点

优点:

1. 直接对分类可能性进行建模,无需实现假设数据分布,这样就避免了假设分布不准确所带来的问题

2. 形式简单,便利的观测样本概率分数,模型的可解释性非常好,特征的权重可以看到不同的特征对最后结果的影响

3. 训练速度较快。分类速度很快

4. 内存占用少

缺点:

1. 一般准确率不是很高,因为形势非常的简单,很难去拟合数据的真实分布

2. 当特征空间很大时,逻辑回归的性能不是很好

3. 很难处理数据不平衡的问题

 

逻辑回归和线性回归的区别:

1. 一个是解决回归问题,一个用于解决分类问题

2. 线性回归的样本的输出,都是连续值,y∈(+∞,−∞)而,逻辑回归中y∈0,1,只能取0和1

3. 拟合函数本质上的差别

    线性回归决策函数:f(x)=θTX=θ1x1+θ2x2+?+θnxn 

   技术图片

   得逻辑回归的决策函数:f(x)=p(y=1∣x;θ)=g(θTX)

  技术图片

 4. 线性回归的拟合函数,的确是对f(x)的输出变量y的拟合,而逻辑回归的拟合函数是对为1类的样本的概率的拟合;在线性回归中θTX为预测值的拟合函数;而在逻辑回归中θTX=0为决策边界;即线性回归中得到的直线是要拟合输入样本的分布的,而逻辑回归里得到的线是决策边界,是要尽可能的将样本非开的,目的不同。

 

一句话概括逻辑回归:逻辑回归假设数据服从伯努利分布,在线性回归的基础上,套了一个二分类的Sigmoid函数,使用极大似然法来推导出损失函数,用梯度下降法优化损失函数的一个判别式的分类算法。分类的本质:在空间中找到一个决策边界来完成分类的决策

 

 

 参考文章:

https://www.cnblogs.com/pinard/p/6029432.html

https://www.cnblogs.com/huangyc/p/9813891.html

https://zhuanlan.zhihu.com/p/28408516

https://blog.csdn.net/pakko/article/details/37878837

https://zhuanlan.zhihu.com/p/51279024

 

机器学习之逻辑回归

2.逻辑回归简述Logistic回归算法基于Sigmoid函数,或者说Sigmoid就是逻辑回归函数。Sigmoid函数定义如下: 11+e?z。函数值域范围(0,1)。因此逻辑回归函数的表达式如下: hθ(x)=g(θTX)=11+e?θTX其中,g(z)=11+e?z其导数形式为: g′... 查看详情

机器学习之五:神经网络反向传播算法(代码片段)

一、逻辑回归的局限在逻辑回归一节中,使用逻辑回归的多分类,实现了识别20*20的图片上的数字。但所使用的是一个一阶的模型,并没有使用多项式,为什么?可以设想一下,在原有400个特征的数据样本中,增加二次、三次、... 查看详情

机器学习之逻辑回归

1.用自己的话描述一下,什么是逻辑回归,与线性回归对比,有什么不同?逻辑回归又称逻辑回归分析,是一种广义的线性回归分析模型,常用于数据挖掘,疾病自动诊断,经济预测等领域;与线性回归相比大致有两大不同:①... 查看详情

机器学习之逻辑回归(logisticregression)

 """逻辑回归中的Sigmoid函数""" importnumpyasnp importmatplotlib.pyplotasplt   defsigmoid(t): return1/(1+np.exp(-t))   x=np.linspace(-10,10,500) y=sigmoid 查看详情

机器学习之k-means算法

前言      以下内容是个人学习之后的感悟,转载请注明出处~  简介  在之前发表的线性回归、逻辑回归、神经网络、SVM支持向量机等算法都是监督学习算法,需要样本进行训练,且样本的类别是... 查看详情

机器学习之逻辑回归

二项逻辑回归模型是如下的条件概率分布: 其中x∈是输入,y∈0,1是输出。为了方便,将权值向量和输入向量进行扩充,此时w=,x=,回归模型表示如下:   参数w未知,采用统计学中的极大似然估计来由样本估计参... 查看详情

机器学习之逻辑回归

1、逻辑回归其实可以称之为广义的线性回归,采用和线性回归类似的模型。但是逻辑回归解决的是一个分类问题,因此会对求出的y值做一个sigmod函数映射,然后根据预先设定的阈值进行标签处理。其中,使用sigmod函数将θTx映射... 查看详情

机器学习之逻辑回归

给定一张图片,如何让计算机帮助我们识别它是不是一张猫的图片,这个问题可以看成一个简单的分类问题。如下图所示,平面上有两种不同颜色(黑色,红色)的点,我们要做到就是要找到类似与那条直线那样的界限。当某个... 查看详情

机器学习之svm与逻辑回归的联系和区别

  通常说的SVM与逻辑回归的联系一般指的是软间隔的SVM与逻辑回归之间的关系,硬间隔的SVM应该是与感知机模型的区别和联系。而且工程中也不能要求所有的点都正确分类,训练数据中噪声的存在使得完全正确分类很可能造成... 查看详情

机器学习之logistic回归算法

1Logistic回归算法的原理1.1需要的数学基础我在看机器学习实战时对其中的代码非常费解,说好的利用偏导数求最值怎么代码中没有体现啊,就一个简单的式子:θ=θ - α Σ[(hθ(x(i))-y(i) )]*xi。经过查找资料才知道,... 查看详情

机器学习之线性回归算法

...回归算法总结:  回归是统计学中最有力的工具之一。机器习监督学习算法分为分类算法和回归算法两种,其实就是根据类别标签分布类型为离散型、连续性而定义的。回归算法用于连续型分布预测,针对的是数值型的样本,... 查看详情

机器学习之学习路线

机器学习机器学习朴素贝叶斯(NBC) 决策树K-近邻算法回归K-均值聚类算法Apriori算法FP-growth算法主成分分析(PCA)奇异值分析(SVD)支持向量机logistic回归python实现明星专家系统http://9399369.blog.51cto.com/9389369/d-22/p-2本文出自“运维... 查看详情

机器学习之线性回归

1.机器学习算法**监督学习:**已经知道类别的样本,通过一定的模型或者是特定的算法,可以预测出某种特定的结果,例如预测房价,最终可以预测出房价是什么,或者是预测肿瘤疾病,判断肿瘤是良... 查看详情

机器学习之线性回归

1.机器学习算法**监督学习:**已经知道类别的样本,通过一定的模型或者是特定的算法,可以预测出某种特定的结果,例如预测房价,最终可以预测出房价是什么,或者是预测肿瘤疾病,判断肿瘤是良... 查看详情

机器学习之逻辑回归以及梯度下降法求解(代码片段)

文章目录前言梯度下降法梯度梯度法逻辑回归思路公式推导代码实现西瓜数据集手写梯度下降法求解二分类逻辑回归模型可爱的sklearn求解参考前言逻辑回归,其实不是回归任务,而是分类任务,逻辑回归模型对二分... 查看详情

机器学习之四:支持向量机推导

一、支持向量机(SVM)支持向量机,是用于解决分类问题。为什么叫做支持向量机,后面的内容再做解释,这里先跳过。在之前《逻辑回归》的文章中,我们讨论过,对于分类问题的解决,就是要找出一条能将数据划分开的边界... 查看详情

机器学习之回归简介

线性回归综述目的是找到一个映射,最能反映二者之间的关系。用来预测当有新的样本输入的时候,输入的结果线性回归处理的变量必须是连续的。欠拟合&过拟合过拟合跟欠拟合是ml算法表现差的两大原因欠拟合:... 查看详情

机器学习之线性回归岭回归lasso回归(代码片段)

1、回归算法分类算法的目标值是标称型数据,而回归的目标变量是连续型数据,主要包括线性回归,岭回归,lasso回归,前向逐步回归。2、线性回归线性回归主要用于处理线性数据,结果易于理解,计算复杂度不高,但是处理... 查看详情