之前我对逻辑回归的认识只是停留在他预测出来的是概率,再根据概率对预测对象进行分类,但他的损失函数和正则化等概念都是一知半解,所以想通过这个小总结巩固这方面的知识。
- 回顾第一个概念:Sigmoid函数/逻辑函数:
我们要预测的就是g(z),g(z)也是决定我们预测对象去哪个类的概率值,当g(z)大于等于0.5时,该预测对象会归为1类,若小于0.5,则归为0类。
需要注意的是,sigmoid函数是将任何实数映射到(0,1)区间,这些值只会无限接近于0和1,而不是真的会出现0和1.
2. 那为什么叫逻辑回归呢?
在回归问题时,尤其是在多元回归,是需要得到一个形式:y(x)=θx,而θ就是我们系数向量。
我们现在令y(x)为我们的sigmoid函数,再令y(x)除以1-y(x)得到形似几率(odds),在此基础上取对数,得到以下公式
最后的结果是不是很像刚刚所说的θx。所以g(z)的形似几率取对数的本质其实 就是我们的线性回归z,所以我们是在对线性回归模型的预测结果取对数几率来让其结果无限逼近0和1,所以他才拥有了逻辑回归这个名字,他用了回归做分类的事情,他本质还是一个分类器
3. 那怎么得到这个θ呢?
首先引入损失函数,这个就是我们衡量哪个θ更好的指标,损失函数越小,分类效果越好。
公式如下(由最大似然法推导出来的):
但是这个指标只针对这组参数在训练集上的分类效果,所以就会导致另一个问题就是过拟合,从而导致在测试集的分类效果不好。因为在训练过程中,我们都尽量让这个损失函数越小越好,所以导致这个模型越来越为训练集“量身定制”,导致泛化能力下降,对测试集的分类效果并不好。我们通过正则化解决这个问题。
4. 正则化又是什么?
简单来说,就是弱化训练集数据在模型心中的“重要性”。常用的正则化项有L1和L2.,分别通过在损失函数中加入关于θ的L1范式和L2范式的倍数来实现。
他们长什么样呢?
所以我们知道L1范数表现为每个参数的绝对值之和,L2范数表现为参数向量中的每个参数的平方和的开方值。
4.1 L1和L2有什么不同呢?
随着正则化强度的增大,θ的取值会逐渐变小,L1正则化会将参数压缩到0,L2正则化只会让参数尽量小,不会取到0. 所以在L1正则化在逐渐加强的过程中,相对不重要的特征的参数会比相对重要的特征的参数更快地变成0. 所以L1正则化本质是一个特征选择的过程。选出少量但重要的特征,以防止过拟合问题。而L2正则化在加强的过程中,会尽量让每个特征对模型都有一些贡献,相对不重要的特征的参数会非常接近0.
4.2 那怎么选择L1和L2呢?
通常大多数情况下,我们会选择L2。如果选了L2之后,模型仍有过拟合问题,就考虑使用L1.
4.3 如何选择正则化项的系数C呢?
通过学习曲线,观察曲线变化,选择一个表现最好的。
references:
[1]
Logistic Regressionml-cheatsheet.readthedocs.io