逻辑回归是用来做分类算法的,常被用于估计一个事物属于某个类别的概率。通常的线性回归 逻辑回归 - 图1 的取值范围是 逻辑回归 - 图2 ,但把 逻辑回归 - 图3 的结果带入一个非线性变换的Sigmoid函数中,即可得到 逻辑回归 - 图4 之间的数,可以将这个数看作一个概率值,如大于0.5我们将其看作正样本,小于0.5将其看作负样本。

1. Sigmoid function

Sigmoid函数式如下:
逻辑回归 - 图5
求导为:
逻辑回归 - 图6
用Sigmoid函数将值域为 逻辑回归 - 图7 的线性回归模型的输出映射到 逻辑回归 - 图8 ,即:
逻辑回归 - 图9

2. 极大似然估计求参

因为逻辑回归的值域为 逻辑回归 - 图10 ,可将其输出看作样本点属于正样本的概率,则样本点为正样本(y=1)和负样本(y=0)的概率分别为:
逻辑回归 - 图11
合并成一项即为逻辑回归模型:
逻辑回归 - 图12
用极大似然估计(MLE)来估计参数 逻辑回归 - 图13 :
逻辑回归 - 图14
不妨设 逻辑回归 - 图15逻辑回归 - 图16 ,带入上式得:
逻辑回归 - 图17

3. 损失函数

根据极大似然估计,设损失函数为:
逻辑回归 - 图18

4. 梯度下降法求解

逻辑回归 - 图19 为例求梯度:
逻辑回归 - 图20
梯度下降算法的迭代公式为:
逻辑回归 - 图21

Q&A:

1. 为什么不能直接用线性回归进行分类?

如果用线性回归,因变量的值域为逻辑回归 - 图22,就算取阈值为0,y小于0为类别0,y大于0为类别1,以此对输出进行替换,但因为这个替换过程是跳跃的,无法进行梯度计算,也就不能进一步对模型进行训练,所以不能直接用线性回归取阈值进行分类。、
线性回归做分类因为考虑了所有样本点到分类决策面的距离,所以在两类数据分布不均匀的时候将导致误差非常大。LR和SVM克服了这个缺点,其中LR将所有数据采用Sigmoid函数进行了非线性映射,使得远离分类决策面的数据作用减弱;SVM直接去掉了远离分类决策面的数据,只考虑支持向量的影响。


补充:
线性回归也可以进行分类(如1、2、3、4、5对应1,6、7、8、9、10对应0,拟合一条斜率为负的直线,输出值大于0.5为label 1,小于0.5为label 0),但该模型对样本分布极为敏感:若上例再增加一个点(10000, 0),因为线性回归损失函数为均方差误差,则为使得所有点平均误差最小,拟合得到的直线会大幅度向下平移,从而得到以上所有点对应的输出均小于0.5,出现较大误差。(LR和SVM则规避了这一问题)
线性回归也不能用交叉熵损失函数,因为输出值域若小于0则无意义,大于1则会出现负损失。

2. 损失函数为什么用交叉熵损失而不用均方误差(最小二乘法)损失?

第一种解释:
交叉熵损失+sigmoid的模型的目标函数是凸函数,一定可得全局最优点;而平方损失+sigmoid的模型的目标函数不能保证是凸函数。

第二种解释:
分类问题中,令逻辑回归 - 图23
若使用MSE:
逻辑回归 - 图24
逻辑回归 - 图25
发现梯度值与sigmoid函数的导数有关,若z很大或很小时,会导致梯度消失,故不能使用均方误差损失函数。
使用Cross-Entropy:
逻辑回归 - 图26
逻辑回归 - 图27
根据sigmoid函数与导数的关系:
逻辑回归 - 图28
带入求导公式有:
逻辑回归 - 图29
由上面求导公式可见,梯度值与sigmoid函数的导数无关,避免了对sigmoid函数求导造成的梯度消失问题。

3. 逻辑回归优缺点?

优点:

  1. 1. (模型)模型简单,参数少 -> 计算量小 -> 速度快
  2. 1. (参数)每个参数代表对应特征对输出的重要程度,可解释性强
  3. 1. (输出)输出值域为[0, 1]的概率值,能反映可信度

缺点:

  1. 1. (特征相关时)因本质还是个线性模型,处理不好特征间相关的情况
  2. 1. (特征空间大)当特征空间太大(输入维度太高),性能不好
  3. 1. (精度)因为只有一个sigmoid函数,拟合能力较差,容易欠拟合,精度不高

4. 逻辑回归的参数?

  • random_state:None(default)、任意整数,每次训练数据一致
  • penalty:’l2’(default)、’l1’,正则项。
  • solver:’liblinear’(default,当l1时只能用这个,适用于小数据集,只能处理而分类)、’lbfgs’、’newton_cg’、’sag’(随机均值梯度,适合大数据集)
  • dual:False(default)、True,是否转换为对偶问题,更易优化
  • tol:1e-4(default),误差小于tol时提前停止训练
  • C:1(default),正则项权重的倒数
  • fit_intercept:True(default)、False,是否引入偏差b
  • class_weight:None(default)、‘balanced’(根据训练集确定权重)、{0:0.1, 1:0.9}(0权重0.1,1权重0.9)
  • max_iter:最大迭代次数
  • verbose:0(default)、1,是否print训练过程
  • warm_start:False(default)、True,是否热启动,用上次训练的结果对参数进行初始化
  • n_jobs:1(default),-1使用电脑所有内核

    5. LR处理多分类问题

    OVR:

    1. - 优点:效率高,有多少类训练多少个分类器
    2. - 缺点:易造成训练集样本不平衡

OVO:

  1. - 优点:一定程度规避OVR不平衡问题,性能相对稳定
  2. - 缺点:需要训练![](https://cdn.nlark.com/yuque/__latex/29bddacb40c90e334700868b889400aa.svg#card=math&code=C_n%5E2&height=20&width=20)个分类器,速度变慢;且每个分类器能使用的数据集会很少

SoftMax:
总结:处理的样本可能从属多个类别的分类问题:OVR、OVO效果更好
处理一个样本属于一个类别的分类问题,SoftMax效果较好