逻辑回归(Logistic Regression)

本文深入探讨逻辑回归在分类任务中的应用,解释如何通过Logistic函数将回归思想融入分类,实现从实值预测到分类标签的转变。同时,文章对比了Logistic函数与单位阶跃函数在分类任务中的优劣,阐述了其在概率预测和数学特性上的优势。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

基础不牢,地动山摇。

文中加粗的字母(如\boldsymbol{w}\boldsymbol{x}等)默认为列向量。

用机器学习算法做分类任务的小伙伴一定使用过“逻辑回归分类器”这个东西,顾名思义,既然是个分类器,那逻辑回归肯定是用在分类任务中的。我在上一篇博客中介绍过回归任务与分类任务的区别:回归任务用来预测一个数值,分类任务用来预测一个标签。逻辑回归既然是用在分类任务中的,那它的名字里为什么要有“回归”两个字呢?

我们可以来大胆地假设一下,逻辑回归是不是在用回归的思想做分类

1. 如何用回归的思想做分类

让我们以最简单的二分类任务为例,假设样本的真实分类标签y只能是0或者1。而线性回归模型产生的预测值z=\boldsymbol{w}^{T}\boldsymbol{x}+b是实值,它的取值范围可以是一切实数。于是,我们想办法将回归模型产生的实值z转换为分类任务所需的0或者1,这样也就实现了回归任务和分类任务的相互转化。

最简单的方法是将实值z输入单位阶跃函数:

h(z)=\left\{\begin{matrix} 0, & z<0;\\ 0.5, & z=0;\\ 1,& z>0;\end{matrix}\right.

若预测值h(z)大于零就判标签为1,小于零就判标签为0,预测值为临界值可以任意判别,示意图如下:

2. Logistic函数

自此,我们已经用一个单位阶跃函数将回归模型的思想与分类任务结合起来了。但是,单位阶跃函数并不连续,这会给我们带来一些不便,于是我们希望找到能在一定程度上近似单位阶跃函数的“替代函数”,Logistic函数正是这样一个常用的替代函数:

h(z)=\frac{1}{1+e^{-z}}

它的函数图像如下:

从图中可以看出,Logistic函数是一种“Sigmoid函数”。它能将回归模型输出的z值转化成一个01之间的h(z)值,与单位阶跃函数不同,这个h(z)值不再是最终的预测结果,而是可以理解为:样本标签为1的概率。得到所有样本的h(z)值之后,我们可以使用一个阈值将其分成两部分,小于阈值的判断为0标签,大于阈值的判断为1标签,这样就达到了分类的效果。

李航《统计学习方法》上的描述为:h(z)表示样本标签为1的概率,则1-h(z)表示样本标签为0的概率,将h(z)1-h(z)比大小,将样本分到概率值较大的那一类,这种思想其实就类似于将阈值设为0.5。

使用Logistic函数来代替单位阶跃函数有以下几个好处:

① Logistic函数连续、充分光滑、单调递增,能最大程度地保留z自身的特点;
② Logistic函数不是直接预测出类别,而是可以得到近似的概率预测,这对许多需要利用概率辅助决策的任务很有用;
③ Logistic函数是任意阶可导的凸函数,有很好的数学性质。

3. 二分类的逻辑回归

经过上面的描述,大家应该已经清楚了如何用回归的思想来做分类任务。下面我们来定义一下逻辑回归的目标

为线性模型z=\boldsymbol{w}^{T}\boldsymbol{x}+b找到一组最合适的\boldsymbol{w}b,使得h(z)=\frac{1}{1+e^{-z}}在全部样本上预测正确的概率最大。

如何才能找到这样的参数呢,请接着往下看。

将线性模型产生的预测值:z=\boldsymbol{w}^{T}\boldsymbol{x}+b,代入到Logistic函数:h(z)=\frac{1}{1+e^{-z}}

可以得到:

h(\boldsymbol{x};\boldsymbol{w},b)=\frac{1}{1+e^{-(\boldsymbol{w}^{T}\boldsymbol{x}+b)}}

把这个式子稍微转化一下,可以得到:

\ln \frac{h(\boldsymbol{x};\boldsymbol{w},b)}{1-h(\boldsymbol{x};\boldsymbol{w},b)}=\boldsymbol{w}^{T}\boldsymbol{x}+b

上面说过,我们可以把h(z),也就是h(\boldsymbol{x};\boldsymbol{w},b)看成样本标签为1的概率,则1-h(\boldsymbol{x};\boldsymbol{w},b)可以看成样本标签为0的概率,则我们可以把上式用概率的形式改写一下:

\ln \frac{P(y=1\mid \boldsymbol{x})}{P(y=0\mid \boldsymbol{x})}=\boldsymbol{w}^{T}\boldsymbol{x}+b

其中,P(y=1\mid \boldsymbol{x})读作:在给定输入\boldsymbol{x}下,样本标签为1的概率;P(y=0\mid \boldsymbol{x})读作:在给定输入\boldsymbol{x}下,样本标签为0的概率。

将上式拆开写,可以得到二分类逻辑回归的模型

P(y=1\mid \boldsymbol{x})=\frac{e^{\boldsymbol{w}^{T}\boldsymbol{x}+b}}{1+e^{\boldsymbol{w}^{T}\boldsymbol{x}+b}}

P(y=0\mid \boldsymbol{x})=\frac{1}{1+e^{\boldsymbol{w}^{T}\boldsymbol{x}+b}}

从上面的描述可以看出,P(y\mid \boldsymbol{x})服从伯努利分布,伯努利分布的一些介绍如下图:

为了便于表达,记P(y=1\mid \boldsymbol{x})=\pi(\boldsymbol{x})P(y=0\mid \boldsymbol{x})=1-\pi(\boldsymbol{x}),则单个样本的概率质量函数可以记为:

\left [ \pi(\boldsymbol{x}) \right ]^{y}\left [ 1-\pi(\boldsymbol{x}) \right ]^{1-y}

假设现在给定训练集(\boldsymbol{x_{1}};y_{1}),(\boldsymbol{x_{2}};y_{2}),\cdots (\boldsymbol{x_{m}};y_{m}),则全部样本上预测正确的概率,即似然函数为:

\prod_{i=1}^{m}\left [ \pi(\boldsymbol{x_{i}}) \right ]^{y_{i}}\left [ 1-\pi(\boldsymbol{x_{i}}) \right ]^{1-y_{i}}

我们用极大似然估计法来估计\boldsymbol{w}b,根据上式写出对数似然函数:

L(\boldsymbol{w},b)=\sum_{i=1}^{m}\left [ y_{i}\ln \pi(\boldsymbol{x_{i}})+(1-y_{i})\ln(1-\pi(\boldsymbol{x_{i}})) \right ]=\sum_{i=1}^{m}\left [ y_{i}\ln\frac{\pi(\boldsymbol{x_{i}})}{1-\pi(\boldsymbol{x_{i}})} +\ln(1-\pi(\boldsymbol{x_{i}}))\right ]=\sum_{i=1}^{m}\left [ y_{i}(\boldsymbol{w}^{T}\boldsymbol{x_{i}}+b)-\ln(1+e^{\boldsymbol{w}^{T}\boldsymbol{x_{i}}+b}) \right ]

为了便于讨论,令:

\boldsymbol{\beta }=\begin{pmatrix} \boldsymbol{w}\\ b\end{pmatrix}\boldsymbol{\hat{x_{i}}}=\begin{pmatrix} \boldsymbol{x_{i}}\\ 1\end{pmatrix}

\boldsymbol{w}^{T}\boldsymbol{x}+b可以简写为:\boldsymbol{\beta }^{T}\boldsymbol{\hat{x}}

上面的对数似然函数可以简写为:

L(\boldsymbol{\beta })=\sum_{i=1}^{m}\left [ y_{i}\boldsymbol{\beta }^{T}\boldsymbol{\hat{x_{i}}}-\ln(1+e^{\boldsymbol{\beta }^{T}\boldsymbol{\hat{x_{i}}}}) \right ]

所以二分类的逻辑回归的目标就是:找出能使这个对数似然函数取最大值的参数\boldsymbol{\beta }

由于我们习惯于让一个函数越小越好,所以我们把最大化L(\boldsymbol{\beta })转化为最小化-L(\boldsymbol{\beta })。此外,使用一个正的常数系数来缩放对数似然函数,并不会改变参数估计的结果,所以我们把最大化L(\boldsymbol{\beta })转化为最小化-\frac{1}{m}L(\boldsymbol{\beta })m式子如下:

-\frac{1}{m}L(\boldsymbol{\beta })=-\frac{1}{m}\sum_{i=1}^{m}\left [ y_{i}\boldsymbol{\beta }^{T}\boldsymbol{\hat{x_{i}}}-\ln(1+e^{\boldsymbol{\beta }^{T}\boldsymbol{\hat{x_{i}}}}) \right ]

其中,m是样本数,在吴恩达的机器学习视频课程中,使用上式作为逻辑回归的损失函数,我们可以用梯度下降法对\boldsymbol{\beta }进行参数估计,用梯度更新参数的步骤如下:

\small \boldsymbol{\beta }_{j}=\boldsymbol{\beta }_{j}-\frac{\alpha }{m} \frac{\partial (-L(\boldsymbol{\beta }))}{\partial \boldsymbol{\beta }}=\boldsymbol{\beta }_{j}+\frac{\alpha }{m} \frac{\partial (L(\boldsymbol{\beta }))}{\partial \boldsymbol{\beta }}=\boldsymbol{\beta }_{j}+\frac{\alpha }{m}\sum_{i=1}^{m}\boldsymbol{\hat{x_{i}}}(y_{i}-\frac{e^{\boldsymbol{\beta }^T\boldsymbol{\hat{x_{i}}}}}{1+e^{\boldsymbol{\beta }^{T}\boldsymbol{\hat{x_{i}}}}})=\boldsymbol{\beta }_{j}+\frac{\alpha }{m}\sum_{i=1}^{m}\boldsymbol{\hat{x_{i}}}(y_{i}-h(\boldsymbol{\beta }^{T}\boldsymbol{\hat{x_{i}}}))=\boldsymbol{\beta }_{j}-\frac{\alpha }{m}\sum_{i=1}^{m}\boldsymbol{\hat{x_{i}}}(h(\boldsymbol{\beta }^{T}\boldsymbol{\hat{x_{i}}})-y_{i})

其中,\alpha为学习率。更新参数是一个耗时耗力的过程,我们可以交给计算机去完成。

假设我们使用极大似然估计得到的参数为:\boldsymbol{\hat{\beta }}=\begin{pmatrix} \boldsymbol{\hat{w}}\\ \hat{b}\end{pmatrix},那么最终学到的二分类的逻辑回归模型为:

P(y=1\mid \boldsymbol{x})=\frac{e^{\boldsymbol{\hat{w}}^{T}\boldsymbol{x}+\hat{b}}}{1+e^{\boldsymbol{\hat{w}}^{T}\boldsymbol{x}+\hat{b}}}

P(y=0\mid \boldsymbol{x})=\frac{1}{1+e^{\boldsymbol{\boldsymbol{\hat{w}}}^{T}\boldsymbol{x}+\hat{b}}}

4. 多分类的逻辑回归

假设样本的真实标签值的取值集合为:\left \{ 1,2,\cdots,K \right \},那么多分类的逻辑回归模型可以表达为:

P(y=k\mid \boldsymbol{x})=\frac{e^{\boldsymbol{w}_{k}^{T}\boldsymbol{x}+b}}{1+\sum_{k=1}^{K-1}e^{\boldsymbol{w}_{k}^{T}\boldsymbol{x}+b}} ,\ k=1,2,\cdots,K-1

P(y=K\mid \boldsymbol{x})=\frac{1}{1+\sum_{k=1}^{K-1}e^{\boldsymbol{w}_{k}^{T}\boldsymbol{x}+b}}

二分类逻辑回归的参数估计方法也可以推广到多分类的情况,这里不再单独说明。 

参考:

李航《统计学习方法》
周志华《机器学习》
逻辑回归(logistics regression)-优快云博客
【机器学习】【逻辑回归】最大似然估计的推导和求解步骤和梯度上升算法求解_推导最大似然损失函数的梯度-优快云博客

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

SongGu1996

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值