逻辑回归的损失函数为什么要使用极大似然函数作为损失函数?
- 损失函数一般有四种,平方损失函数,对数损失函数,HingeLoss0-1损失函数,绝对值损失函数。将极大似然函数取对数以后等同于对数损失函数。在逻辑回归这个模型下,对数损失函数的训练求解参数的速度是比较快的。至于原因大家可以求出这个式子的梯度更新
- 这个式子的更新速度只和,相关。和sigmod函数本身的梯度是无关的。这样更新的速度是可以自始至终都比较的稳定。
- 为什么不选平方损失函数的呢?其一是因为如果你使用平方损失函数,你会发现梯度更新的速度和sigmod函数本身的梯度是很相关的。sigmod函数在它在定义域内的梯度都不大于0.25。这样训练会非常的慢。
共线特征对于LR模型的影响
LR模型中特征的共线性不会影响模型的最优解,但是会影响系数的稳定性。比如现在两个特征x1,x2,分别表示1kg和1g,这两个单位高度共线性。
1.5kg=1∗x1+500∗x2,也可以表示为2∗x1−500∗x2
x2的系数发生的质的翻转,但是表达能力没有变。
所以LR模型中特征的共线性不会影响模型的最优解,但是会使得系数不稳定,从而解释性变差。
如果是出现重复特征,比如某个特征重复了100次,那么相当于把原来唯一的特征分成了一百份,这一百个特征效果和原来 单个特征的效果相同。
因此可以总结如下:
(1)难以区分每个解释变量对结果的影响
(2)回归模型缺乏稳定性
稳定性指从同一个总体中抽取不同的样本估计模型,得到的估计值不会完全相同,但也不会有很大的差别
当模型存在多重共线性时,样本数据有了微小的数据变换,都可能导致系数估计值发生显著变化,甚至出现符号错误。
为什么要删除共线性特征
- 提高模型的可解释性
- 提高模型的训练速度
不一定,首先特征可能没有归一化,系数收到量级的影响,(1米=1cm * 100)
其次,特征间可能存在共线性,导致特征系数不稳定,可解释性差。
为什么特征离散化
下面答案有些不是LR进行离散化特有的原因,而是离散化本身比较general的原因
(1)离散特征可以one-hot, 而稀疏向量内积运算速度快,结果易存储
(2)离散后数据鲁棒性强,不会因为数据发生一点小的变动而表现出完全不同的性质,使模型更稳定;比如一个特征是年龄>25是1,否则0。如果特征没有离散化,一个异常数据“年龄300岁”会给模型造成很大的干扰;
(3)离散后可以进行特征交叉,引入非线性特征
(4)增强模型的表达能力,离散化后,特征下的每个值都会获得一定的权重,加大了模型的拟合能力
(5)特征离散后相当于简化了特征,一定程度上减轻了过拟合
LR是否一定要进行数据归一化
LR不强制要求归一化,但是实际中往往通过迭代求解模型参数,如果目标函数太扁(想象一下很扁的高斯模型)迭代算法会发生不收敛的情况,所以最好进行数据归一化。
参考文献: