【机器学习】逻辑回归(Logistic Regression)

逻辑回归

逻辑回归

逻辑回归线性回归 都是线性模型 ,其中线性回归使用线性式来预测数值逻辑回归使用线性式来进行分类任务
逻辑回归 就是使用1条线(在特征向量为1维或2维的情况)1个超平面(特征数量超过2维的情况) 来对数据进行划分,根据特征向量落在线或超平面的2侧 来对其进行划分,因此,逻辑回归是用来处理二分类问题的

逻辑回归 可以通过组合多个逻辑回归来进行多分类任务

逻辑回归的流程

逻辑回归使用线性式Sigmoid的函数 来得到结果。逻辑回归的输入为 N N N维特征向量 ,将 N N N维特征向量带入线性式,得到输出公式如下,将结果带入Sigmoid函数。
f ( x ) = w 0 + w 1 ∗ x 1 + . . . + w n ∗ x n ∑ 1 1 = ∑ i = 0 n w i ∗ x i ∑ 1 1 = w T x ∑ 1 1 p = s i g m o i d ( f ( x ) ) ∑ 1 1 \begin{align} f(x)&=w_0+w_1*x_1+...+w_n*x_n\vphantom{\sum_1^1}\\ &=\sum_{i=0}^{n}w_i*x_i\vphantom{\sum_1^1}\\ &=\mathbf{w}^T\mathbf{x}\vphantom{\sum_1^1}\\ p&=sigmoid(f(x))\vphantom{\sum_1^1}\\ \end{align} f(x)p=w0+w1∗x1+...+wn∗xn1∑1=i=0∑nwi∗xi1∑1=wTx1∑1=sigmoid(f(x))1∑1
( 3 ) (3) (3)式是使用线性代数的方法表示 ( 1 ) (1) (1)以及 ( 2 ) (2) (2)式。

Sigmoid函数

Sigmoid函数在机器学习和深度学习中通常被简写为 σ \sigma σ,Sigmoid函数接接收 ( − ∞ , ∞ ) (-\infin,\infin) (−∞,∞)的数值,并将其映射到 ( 0 , 1 ) (0,1) (0,1)范围之内,因此可以具有概率的意义。

Sigmoid函数的公式及图像

Sigmoid函数的公式如下:
σ ( x ) = 1 1 + e x p ( − x ) \sigma(x)=\frac{1}{1+exp(-x)} σ(x)=1+exp(−x)1

其中 e x p ( x ) exp(x) exp(x)函数为自然对数的 x x x次幂。

Sigmoid函数的图像如下:

Sigmoid函数单调递增 ,在自变量 x = 0 x=0 x=0附近斜率变化较大,函数值增长较快,而在远离 x = 0 x=0 x=0处,函数值变化较慢。在 x = 0 x=0 x=0处,Sigmoid函数值为 1 1 + e x p ( 0 ) = 0.5 \frac{1}{1+exp(0)}=0.5 1+exp(0)1=0.5。

在进行预测 时,Sigmoid函数计算之后,函数大于 0.5 0.5 0.5 ,则特征向量属于目标类别 ,否则特征向量不属于目标类别
{ y ^ = 1 i f p > = 0.5 y ^ = 0 i f p < 0.5 \begin{equation} \begin{cases} \hat{y}=1\space\space if\space p>=0.5\\ \hat{y}=0\space\space if \space p<0.5 \end{cases} \end{equation} {y^=1 if p>=0.5y^=0 if p<0.5

逻辑回归的损失函数与最优化求解

回归问题 中,我们通常使用MSE,RMSE以及MAE损失,这些损失函数使用不同的方式计算计算预测值与真实值的距离,如明氏距离曼哈顿距离 以及欧式距离 ,不同损失函数使用不同的加权方式从而得到损失值

分类问题 中,样本的真实值是离散的标签(如A类,B类等),线性式的结果经过Sigmoid函数变换之后,再经过MSE求损失并无更大的意义 ,因为MES衡量的是欧式空间中的距离 ,而逻辑回归经过Sigmoid处理后的数据可以理解为概率,两者并不对应。

在分类问题中,通常使用交叉熵损失,因为交叉熵模型的本质决定其可以用来衡量概率模型的差别。

逻辑回归 适用于二分类问题 。对于二分类问题,可以使用二元交叉熵损失(Binary Cross Entropy Loss) 。逻辑回归问题模型求解,即求解使得对样本集合的总体损失最小的模型参数 ,使用公式表述如下:
arg min ⁡ w 0 . . . w n 1 m ∑ i = 1 m B C E L o s s ( y i , y i ^ ) \argmin_{w_0...w_n}\frac{1}{m}{\sum_{i=1}^mBCELoss(y_i,\hat{y_i})} w0...wnargminm1i=1∑mBCELoss(yi,yi^)

其中二元交叉熵损失的公式如下:
B C E L o s s ( y , y ^ ) = − ( y ∗ log ⁡ y ^ + ( 1 − y ) ∗ log ⁡ ( 1 − y ^ ) ) BCELoss(y,\hat{y})=-(y*\log{\hat{y}}+(1-y)*\log{(1-\hat{y})}) BCELoss(y,y^)=−(y∗logy^+(1−y)∗log(1−y^))

将二元交叉熵公式代入,即得:
arg min ⁡ w 0 . . . w n 1 m ∑ i = 1 m − ( y i ∗ log ⁡ y i ^ + ( 1 − y i ) ∗ log ⁡ ( 1 − y i ^ ) ) \argmin_{w_0...w_n}\frac{1}{m}\sum_{i=1}^m-(y_i*\log{\hat{y_i}}+(1-y_i)*\log{(1-\hat{y_i})}) w0...wnargminm1i=1∑m−(yi∗logyi^+(1−yi)∗log(1−yi^))

其中 m m m是样本数量, y i y_i yi是第 i i i个样本的真实值(真或假), y i ^ \hat{y_i} yi^是第 i i i个样本的预测值,为经过Sigmoid函数求解后获得的 ( 0 , 1 ) (0,1) (0,1)之间的数值,意为概率。

逻辑回归使用梯度下降法求解

由于逻辑回归模型使用了非线性的Sigmoid函数 ,因此逻辑回归模型并没有解析解,需要使用梯度下降法求解。

相关推荐
小青龙emmm1 分钟前
机器学习(五)
人工智能·机器学习
正在走向自律9 分钟前
DeepSeek:开启AI联动与模型微调的无限可能
人工智能
天一生水water28 分钟前
Deepseek:物理神经网络PINN入门教程
人工智能·深度学习·神经网络
shelly聊AI32 分钟前
【硬核拆解】DeepSeek开源周五连击:中国AI底层技术的“破壁之战”
人工智能·深度学习·开源·deepseek
油泼辣子多加34 分钟前
【计算机视觉】手势识别
人工智能·opencv·计算机视觉
张琪杭36 分钟前
PyTorch大白话解释算子二
人工智能·pytorch·python
匹马夕阳1 小时前
ollama本地部署DeepSeek-R1大模型使用前端JS调用的详细流程
人工智能·ai·js
修昔底德1 小时前
费曼学习法12 - 告别 Excel!用 Python Pandas 开启数据分析高效之路 (Pandas 入门篇)
人工智能·python·学习·excel·pandas
歌刎1 小时前
从 Transformer 到 DeepSeek-R1:大型语言模型的变革之路与前沿突破
人工智能·深度学习·语言模型·aigc·transformer·deepseek
西猫雷婶1 小时前
神经网络|(十二)|常见激活函数
人工智能·深度学习·神经网络