机器学习之逻辑回归,它到底在回归什么?

本文深入探讨了逻辑回归的工作原理,从线性回归出发,介绍了如何通过Logistic分布函数将其转化为分类任务。逻辑回归通过回归对数几率,实现了对离散值预测的能力,尤其适用于二分类问题。文章还阐述了损失函数和模型优化方法,为理解逻辑回归的数学基础和实际应用提供了清晰的解释。
摘要由CSDN通过智能技术生成

导读

逻辑回归,千万不要被它的名字欺骗了,其实它通常被用来执行分类任务。逻辑回归是在线性回归的基础之上加上了Logistic分布函数,便摇身一变,由回归转成了分类。这其中的原理是什么?它在回归什么?让我们一起揭秘!

线性回归

介绍逻辑回归之前,绕不开线性回归,我们在这里就简单说一下线性回归。

给定一个数据集:
f e a t u r e s = ( x 1 1 , x 1 2 ) , ( x 2 1 , x 2 2 ) , . . . , ( x n 1 , x n 2 ) \begin{aligned} features = &{(x_{1}^{1}, x_{1}^{2}), (x_{2}^{1}, x_{2}^{2}), ... , (x_{n}^{1}, x_{n}^{2})}\\ \end{aligned} features=(x11,x12),(x21,x22),...,(xn1,xn2)
l a b e l = y 1 , y 2 , . . . , y n \begin{aligned} label = &{y_1, y_2, ... , y_n} \\ \end{aligned} label=y1,y2,...,yn
线性回归要做的就是要拟合一个函数 y = θ 0 + θ 1 x 1 + θ 2 x 2 y = \theta_0+ \theta_1 x_1+\theta_2 x_2 y=θ0+θ1x1+θ2x2,函数 y y y可以较为完美的经过所有的数据点 x x x,而且除了 f e a t u r e s features features里给定的数据点,同一分布的 f e a t u r e s features features 之外的数据点也能够经过(即函数 y y y 是拟合了 f e a t u r e s features features 的数据分布)。注意,这里线性回归拟合的是连续变量的分布,比如常见的应用场景:房价预测,天气预测…

以上说的是回归连续值,那能不能对线性回归改进一下,让它能够完成离散值预测(分类)的任务呢?答案是可以的,这时候Logistic就该登场了。

Logistic分布函数

咱们来看一下逻辑回归的关键Logistic分布函数是什么。
L o g i s t i c ( x ) = 1 1 + e − ( x − μ ) / γ \begin{aligned} Logistic(x) = & \frac{1}{1+e^{-(x - μ)/γ}} \\ \end{aligned} Logistic(x)=1+e(xμ)/γ1
其中μ是位置参数,γ是形状参数。从logistic的定义式可以看出logistic分布是由其位置和尺度参数定义的连续分布。Logistic 分布的形状与正态分布的形状相似,但是 Logistic 分布的尾部更长,所以我们可以使用 Logistic 分布来建模比正态分布具有更长尾部和更高波峰的数据分布。在深度学习中常用到的 Sigmoid 函数就是μ = 0,γ = 1的特殊形式。 除此之外,Logistic 的分布函数的值域是(0, 1),这正好可以用来表示概率的大小
我们试着在上述线性回归的基础上加上logistic函数,看会发生什么化学反应。
g ( X ) = 1 1 + e − ( θ 0 + θ 1 x 1 + θ 2 x 2 ) \begin{aligned} g(X) = & \frac{1}{1+e^{-(\theta_0+ \theta_1 x_1+\theta_2 x_2)}} \\ \end{aligned} g(X)=1+e(θ0+θ1x1+θ2x2)1

逻辑回归概率建模

既然加上logistic函数之后可以表示概率,那么分类任务就可以进行了。拿二分类举例,函数或者模型预测出一个0-1的值,我们设置一个阈值,高于阈值判定标签为“1”,反之判定标签为“0”。即我们找到了分类概率p(y = 1)与输入特征 x 之间的对应关系 —>>> p ( y = 1 ∣ x ) p(y = 1 | x) p(y=1x),然后通过概率值进行类别判定。

我们说了,上边函数 g ( X ) g(X) g(X) 表示给定 X X X 的条件下,标签预测为 y = 1 y = 1 y=1 的概率,即 p ( y = 1 ∣ x ) p(y = 1 | x) p(y=1x) 。这时候发挥数学功底,我们对 g ( X ) g(X) g(X) 做一下变形,得到:
θ 0 + θ 1 x 1 + θ 2 x 2 = l n g ( X ) 1 − g ( X ) \begin{aligned} \theta_0+ \theta_1 x_1+\theta_2 x_2 = ln\frac{g(X)}{1 - g(X)}\\ \end{aligned} θ0+θ1x1+θ2x2=ln1g(X)g(X)

从这个式子来看就比较明了了,左边是线性回归的方式,右边是什么呢?右边是一个对数形式,指数部分的分子是 p ( y = 1 ∣ x ) p(y = 1 | x) p(y=1x),分母为1减去分子,那表达的意义就是 p ( y = 0 ∣ x ) p(y = 0 | x) p(y=0x)分子与分母的比值叫做几率(odd),取对数就是对数几率。所以现在我们找到了我们想要的答案:

逻辑回归,其实回归的是给定数据和真实标签的对数几率

我们把上边公式转换一下,将 g ( X ) g(X) g(X)视作给定 X X X 预测为 y = 1 y = 1 y=1 的条件概率,得到:

θ 0 + θ 1 x 1 + θ 2 x 2 = l n p ( y = 1 ∣ X ) 1 − p ( y = 1 ∣ X ) \begin{aligned} \theta_0+ \theta_1 x_1+\theta_2 x_2 = ln\frac{p(y = 1 | X)}{1 - p(y = 1 | X)}\\ \end{aligned} θ0+θ1x1+θ2x2=ln1p(y=1X)p(y=1X)

虽然知道了逻辑回归的原理,但是至于为什么这么做呢?这么做有什么优点?

  • 直接对分类的概率建模,无需实现假设数据分布,从而避免了假设分布不准确带来的问题(区别于生成式模型),这是机器学习的通用问题,总是先假设,但通常没那么理想;
  • 不仅可预测出类别,还能得到该预测的概率,这对一些利用概率辅助决策的任务很有用;
  • 对数几率函数是任意阶可导的凸函数,有许多数值优化算法都可以求出最优解。

损失函数

上边我们对逻辑回归进行推导,建立了数学模型。模型确定之后,便是要估计模型中的参数,使得模型最贴合我们给定的数据集分布。通常在数学中,参数估计还是极大似然估计法,yyds。即找到一组参数,使得在这组参数下,基于我们的数据,得到的似然度最大。

前边推导的时候提到:

p ( y = 1 ∣ X ) = p ( X ) p ( y = 0 ∣ X ) = 1 − p ( X ) \begin{aligned} p(y = 1 | X) = p(X)\\ p(y = 0 | X) = 1 - p(X)\\ \end{aligned} p(y=1X)=p(X)p(y=0X)=1p(X)

那么基于给定的数据,我们的似然函数可以写为:
L ( θ ) = ∏ i = 1 n p ( x i ) y i ∗ ( 1 − p ( x i ) ) 1 − y i ) \begin{aligned} L(\theta) = \prod_{i = 1}^{n}p(x_i)^{y_i} *(1 - p(x_i))^{1 - y_i}) \end{aligned} L(θ)=i=1np(xi)yi(1p(xi))1yi)
注意一下,这里的 p ( x i ) = 1 1 + e − ( θ 0 + θ 1 x 1 + θ 2 x 2 ) p(x_i) = \frac{1}{1+e^{-(\theta_0+ \theta_1 x_1+\theta_2 x_2)}} p(xi)=1+e(θ0+θ1x1+θ2x2)1 y i y_i yi = {0, 1} .

人和计算机不一样,计算的时候还是觉得加减运算比较简单,所以我们对上边的 L ( θ ) L(\theta) L(θ) 取个对数,得到:
l n L ( θ ) = 1 n ∗ ∑ i = 1 n ( y i p ( x i ) + ( 1 − y i ) ( 1 − p ( x i ) ) ) \begin{aligned} ln L(\theta) =\frac{1}{n} * \sum_{i = 1}^{n} (y_{i} p(x_i) + (1 - y_i)(1 - p(x_i))) \end{aligned} lnL(θ)=n1i=1n(yip(xi)+(1yi)(1p(xi)))
按照正常人的思维,我们是希望损失函数降到最低的时候,模型的性能越好。但由于在此处我们使用的是最大似然估计法,我们要使得上述式子取最大值,所以干脆在它前边加个负号,这样就可以心安理得的把它当作损失函数了。
l n L ( θ ) = − 1 n ∗ ∑ i = 1 n ( y i p ( x i ) + ( 1 − y i ) ( 1 − p ( x i ) ) ) \begin{aligned} ln L(\theta) =-\frac{1}{n} * \sum_{i = 1}^{n} (y_{i} p(x_i) + (1 - y_i)(1 - p(x_i))) \end{aligned} lnL(θ)=n1i=1n(yip(xi)+(1yi)(1p(xi)))
如果你害怕模型过拟合的话,可以在后边加上L1正则化和L2正则化,以前的文章有介绍过这两种方法,可参考:你的模型又过拟合了?不如试试L1、L2正则化

模型优化就使用常规的随机梯度下降(SGD)就好了,也可以尝试其他的优化方法:梯度优化方法大全

总结

这篇文章从模型推理、损失函数等方面对逻辑回归(LR)进行了深度剖析,清楚了逻辑回归的建模过程以及其背后的数学原理和物理意义。希望大家看过之后都能变得更通透一些。逻辑回归虽然是机器学习的入门级算法,但是它其中的细枝末节真的很多,需要值得深挖。所以希望大家能够评论区讨论交流,碰撞火花,共同进步。喜欢的话留个赞再走叭~ 也可以收藏慢慢看哦~

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值