逻辑回归是用来做分类算法的,常被用于估计一个事物属于某个类别的概率。通常的线性回归 的取值范围是
,但把
的结果带入一个非线性变换的Sigmoid函数中,即可得到
之间的数,可以将这个数看作一个概率值,如大于0.5我们将其看作正样本,小于0.5将其看作负样本。
1. Sigmoid function
Sigmoid函数式如下:
求导为:
用Sigmoid函数将值域为 的线性回归模型的输出映射到
,即:
2. 极大似然估计求参
因为逻辑回归的值域为 ,可将其输出看作样本点属于正样本的概率,则样本点为正样本(y=1)和负样本(y=0)的概率分别为:
合并成一项即为逻辑回归模型:
用极大似然估计(MLE)来估计参数 :
不妨设 ,
,带入上式得:
3. 损失函数
4. 梯度下降法求解
Q&A:
1. 为什么不能直接用线性回归进行分类?
如果用线性回归,因变量的值域为,就算取阈值为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的模型的目标函数不能保证是凸函数。
第二种解释:
分类问题中,令,
若使用MSE:
发现梯度值与sigmoid函数的导数有关,若z很大或很小时,会导致梯度消失,故不能使用均方误差损失函数。
使用Cross-Entropy:
根据sigmoid函数与导数的关系:
带入求导公式有:
由上面求导公式可见,梯度值与sigmoid函数的导数无关,避免了对sigmoid函数求导造成的梯度消失问题。
3. 逻辑回归优缺点?
优点:
1. (模型)模型简单,参数少 -> 计算量小 -> 速度快
1. (参数)每个参数代表对应特征对输出的重要程度,可解释性强
1. (输出)输出值域为[0, 1]的概率值,能反映可信度
缺点:
1. (特征相关时)因本质还是个线性模型,处理不好特征间相关的情况
1. (特征空间大)当特征空间太大(输入维度太高),性能不好
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,是否热启动,用上次训练的结果对参数进行初始化
-
5. LR处理多分类问题
OVR:
- 优点:效率高,有多少类训练多少个分类器
- 缺点:易造成训练集样本不平衡
OVO:
- 优点:一定程度规避OVR不平衡问题,性能相对稳定
- 缺点:需要训练个分类器,速度变慢;且每个分类器能使用的数据集会很少
SoftMax:
总结:处理的样本可能从属多个类别的分类问题:OVR、OVO效果更好
处理一个样本属于一个类别的分类问题,SoftMax效果较好