逻辑回归 Logistic Regression

简介: 逻辑回归 Logistic Regression

正文


逻辑回归也被称为对数几率回归,是一种分类算法,用条件概率分布的形式表示P ( Y ∣ X ) ,这里随机变量X XX取值为n nn维实数向量。


例如x = ( x 1 , x 2 , … , x n ) Y取值为0或1。


逻辑回归模型


逻辑回归的模型定义如下:

14.png

假设有一个二分类问题,输出为y = { 0 , 1 } ,而线性回归模型产生的预测值为 z=wx+b是实数值,我们希望有一个理想的阶跃函数来帮我们实现z值到0/1值的转化.

我们可以很自然的想到如下函数:


15.png

但是由于该函数在定义域内不连续,而我们需要一个单调可微的函数来供我们使用,于是便找到了Sigmoid函数:

16.png

17.png

由于Sigmoid函数的取值范围为[ 0 , 1 ],我们就可以将其视为类1的后验概率估计P ( y = 1 ∣ x ) 。说白了,就是如果有了一个测试点x ,那么就可以用Sigmoid 函数算出来的结果来当做该点x属于类别1的概率大小。


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


18.png


逻辑回归的损失函数


逻辑回归模型的损失函数(误差平方和)定义如下:19.png

其中:

z^{(i)} = w^Tx^{(i)} + bi表示第i个样本点;

y^i表示第i 个样本的真实值;

ϕ ( z ( i ) 表示第i个样本的预测值。

这时,如果我们将ϕ ( z ) = 1 /1 + e − z带入的话,会发现这是一个非凸函数,这就意味着代价函数(代价即预测值和实际值之间的差距)有着许多的局部最小值,这非常不利于我们求解。


左:非凸函数;右:凸函数



20.png

因此我们需要换一个思路去解决问题,我们注意到,在逻辑回归的分类任务中,分类结果非0即1,所以我们有:

000.png

其中

00.png

0.png表示给定w ww,那么x xx点y = 1 y=1y=1的概率大小。

于是上式可以整合为:


1.png

逻辑回归模型参数估计


求解1.png中的参数w可以用极大似然估计(最大可能性估计)的方法:


2.png

等式两边做对数变换可得

3.png

我们现在就得到了代价函数l ( w ) l(w)l(w),为了方便使用梯度下降法求解代价函数,我们取代价函数的相反数,然后将代价函数定义为原代价函数的相反数:



4.png

逻辑回归的模型求解


由于Sigmoid函数的自身性质,其对参数求偏导后:

5.png

偏导数推导过程:

6.png

接下来使用梯度下降法求解回归模型:

7.png


其中


8.png

w j表示第j个特征的权重;

η为学习率,用来控制步长。

梯度推导过程:


9.png

所以使用梯度下降法更新权重时,根据下列式子即可:

10.png

当样本量极大时,更新权重会非常耗时,我们可以采用随机梯度下降的方法,把每次迭代时需要的样本打乱:

11.png

也就是去掉了求和,而是对每个样本点都进行更新。


多项逻辑回归模型


将逻辑回归应用推广为多项式逻辑回归,用于解决多分类问题,这时公式定义为:

12.png





相关文章
|
8月前
|
算法
logistic算法
logistic算法
75 0
|
机器学习/深度学习 数据挖掘 PyTorch
Logistic Regression 逻辑斯蒂回归
Logistic Regression 逻辑斯蒂回归
173 0
|
7月前
|
机器学习/深度学习 算法 索引
Logistic算法
Logistic算法
60 2
|
7月前
|
存储 算法 Serverless
Regression算法
Regression算法
113 2
|
8月前
Ridge,Lasso,Elasticnet回归
这篇文章探讨了多元线性回归与正则化的结合,包括Ridge、Lasso和Elasticnet回归。Ridge回归通过添加L2惩罚项提高模型鲁棒性,但可能牺牲一些准确性。Lasso回归引入L1范数,对异常值更敏感,能进行特征选择。Elasticnet结合L1和L2范数,允许在正则化中平衡两者。通过调整α和l1_ratio参数,可以控制整体正则化强度和正则化类型的比例。
83 0
|
8月前
|
机器学习/深度学习 算法
逻辑回归(Logistic Regression)详解
逻辑回归(Logistic Regression)详解
40 0
|
8月前
|
机器学习/深度学习 数据可视化 Python
在R语言中实现Logistic逻辑回归
在R语言中实现Logistic逻辑回归
|
机器学习/深度学习 数据采集
2D Logistic Regression
2D Logistic Regression 是一种用于解决二分类问题的机器学习模型,它是 Logistic Regression 在多维空间中的扩展。在 2D Logistic Regression 中,我们使用一个二维平面(或多维空间中的超平面)来将不同类别的数据分开。
88 1
|
机器学习/深度学习 算法 API
逻辑回归(Logistic Regression)
逻辑回归(Logistic Regression)是一种用于解决分类问题的统计学习方法。它是一种广义线性模型,用于估计二分类问题中的概率。
155 2
|
机器学习/深度学习 数据采集
Logistic Regression
机器学习中的逻辑回归(Logistic Regression)是一种用于解决分类问题的线性模型。它通过拟合一条直线(或平面),将输入变量与输出变量(通常为二值变量,如 0 或 1)之间的关系表示出来。
65 0