逻辑回归简介
Sigmoid函数
做过机器学习或是深度学习的小伙伴们都知道,sigmoid函数一般都是接在卷积神经网络层或是其正则化层之后,作为激活函数,相当于人类神经系统的突触传递。其数学表达式如下:
逻辑回归分布
逻辑分布是一种连续型的概率分布,其分布函数和密度函数分别为:
分布是由其位置和尺度参数定义的连续分布。逻辑分布的形状与正态分布的形状相似,但是逻辑分布的尾部更长,所以我们可以使用逻辑分布来建模比正态分布具有更长尾部和更高波峰的数据分布。在深度学习中常用到的 Sigmoid 函数就是逻辑的分布函数在的特殊形式。。
损失函数
逻辑回归的损失函数是 log loss,也就是对数似然函数,函数公式如下:
公式中的 y=1 表示的是真实值为1时用第一个公式,真实值为 0 时用第二个公式计算损失。当y=1,但h=0概率,那么log0=∞,所以对模型有最大的惩罚力度;当h=1时,那么log1=0,相当于没有惩罚,也就是没有损失,达到最优结果。
在逻辑回归模型中,我们最大化似然函数和最小化损失函数实际上是等价的。
多分类逻辑回归
多分类逻辑回归思路步骤如下:
- 1.将类型class1看作正样本,其他类型全部看作负样本,然后我们就可以得到样本标记类型为该类型的概率p1。
- 2.再将另外类型class2看作正样本,其他类型全部看作负样本,同理得到p2。
- 3.以此循环,我们可以得到该待预测样本的标记类型分别为类型class i时的概率pi,最后我们取pi中最大的那个概率对应的样本标记类型作为我们的待预测样本类型。
总之还是以二分类来依次划分,并求出最大概率结果。
逻辑回归优点
- LR能以概率的形式输出结果,而非只是0,1判定。
- LR的可解释性强,可控度高。
- 训练快,feature engineering之后效果赞。
- 因为结果是概率,可以做ranking model。
逻辑回归常用的优化方法
一阶方法
梯度下降、随机梯度下降、mini 随机梯度下降法。随机梯度下降不但速度上比原始梯度下降要快,局部最优化问题时可以一定程度上抑制局部最优解的发生。
逻辑回归的损失函数如下:
二阶方法:牛顿法
牛顿法其实就是通过切线与x轴的交点不断更新切线的位置,直到达到曲线与x轴的交点得到方程解。在实际应用中我们因为常常要求解凸优化问题,也就是要求解函数一阶导数为0的位置,而牛顿法恰好可以给这种问题提供解决方法。
牛顿法首先选择一个点作为起始点,并进行一次二阶泰勒展开得到导数为0的点进行一个更新,直到达到要求,这时牛顿法也就成了二阶求解问题,比一阶方法更快。我们常常看到的x通常为一个多维向量,这也就引出了Hessian矩阵的概念(就是x的二阶导数矩阵)。
缺点:牛顿法是定长迭代,没有步长因子,所以不能保证函数值稳定的下降,严重时甚至会失败。还有就是牛顿法要求函数一定是二阶可导的。而且计算Hessian矩阵的逆复杂度很大。
逻辑回归对特征进行离散化
- 逻辑回归属于广义线性模型,表达能力受限;单变量离散化为N个后,每个变量有单独的权重,相当于为模型引入了非线性,能够提升模型表达能力,加大拟合;
- 鲁棒性。离散化后的特征对异常数据有很强的鲁棒性:比如一个特征是年龄>30是1,否则0。如果特征没有离散化,一个异常数据“年龄300岁”会给模型造成很大的干扰;
- 方便交叉与特征组合:离散化后可以进行特征交叉,由M+N个变量变为M*N个变量,进一步引入非线性,提升表达能力;
- 简化模型:特征离散化以后,起到了简化了逻辑回归模型的作用,降低了模型过拟合的风险。
代码实现
https://github.com/Jack-Cherish/Machine-Learning