逻辑回归
逻辑回归
逻辑回归 与线性回归 都是线性模型 ,其中线性回归使用线性式来预测数值 ,逻辑回归使用线性式来进行分类任务 。
逻辑回归 就是使用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函数 ,因此逻辑回归模型并没有解析解,需要使用梯度下降法求解。