简述:
1. LR 本质上是对正例负例的对数概率作线性回归,由于对数概率叫作logit,作的操做是线性回归,因此该模型叫作Logistic Regression。
2. LR 的输出能够看作是一种可能性,输出越大则为正例的可能性越大,可是这个几率不是正例的几率,是正例负例的对数概率。
3. LR的label并不必定要是0和1,也能够是-1和1,或者其余,只是一个标识,标识负例和正例。
4. Linear Regression和Logistic Regression的区别: 这主要是因为线性回归在整个实数域内敏感度一致,而分类范围,须要在[0,1]以内。而逻辑回归就是一种减少预测范围,将预测值限定为[0,1]间的一种回归模型,其回归方程与回归曲线以下图所示。逻辑曲线在z=0时,十分敏感,在z>>0或z<<0处,都不敏感,将预测值限定为(0,1)。
5. 模型很是简单。应用到线上时,prediction的计算很是容易作。在O(1)的时间复杂度以内就可以给出模型的预测值,这对于线上数据暴风雨般袭来的时候很是有用。
6. 模型可解释性强。对于LR模型,每一个特征xi的参数wi就是该特征的权重,wi越大,则特征权重越大;越小,则特征权重越小。所以LR的模型每每很是直观,并且容易debug,并且也容易手动修改。
7. 模型的输出平滑。因为Logistic function的做用,LR的输出值是(0,1)之间的连续值,更重要的是,这个值能从某种角度上表示样本x是正例的可能性, 输出值越接近1,则样本是正例的可能性就越大,输出值越接近0,样本是负例的可能性就越大。
详细理解Logistic Regression:
1. 从最大似然估计 (MLE)来理解:(以正负label为1,0来举例)
直觉上,一个线性模型的输出值 y 越大,这个事件 P(Y=1|x) 发生的几率就越大。 另外一方面,咱们能够用事件的概率(odds)来表示事件发生与不发生的比值,假设发生的几率是 p ,那么发生的概率(odds)是 p/(1-p) , odds 的值域是 0 到正无穷,概率越大,发生的可能性越大。将咱们的直觉与概率联系起来的就是下面这个(log odds)或者是 logit 函数:
进而能够求出几率 p 关于 w 点乘 x 的表示:
这就是传说中的 sigmoid function 了,以 w 点乘 x 为自变量,函数图像以下:
Logsitic regression 输出的是分到每一类的几率,参数估计的方法天然就是最大似然估计 (MLE) 咯。对于训练样原本说,假设每一个样本是独立的,输出(标签)为 y = {0, 1},样本的似然函数就是将全部训练样本 label 对应的输出节点上的几率相乘, 令 p = P(Y=1|x) ,若是 y = 1, 几率就是 p, 若是 y = 0, 几率就是 1 - p , 将这两种状况合二为一,获得似然函数:
下面就是求极值,逻辑回归学习中一般采用的方法是梯度降低法 和 牛顿法。
2. 从最小化损失函数来理解:(以正负label为1,-1来举例)
LR 的基本假设是数据类别间是由一个线性的 decision boundary 隔开的,换句话说

再结合git

能够解得:算法

在 training data 上进行 maximum log-likelihood 参数估计是函数

这个 binary 的状况所具备的特殊形式还能够从另外一个角度来解释:先抛开 LR,直接考虑 Empirical Risk Minimization (ERM) 的训练规则,也就是最小化分类器在训练数据上的 error:学习

可是这是个离散的目标函数优化很是困难,因此咱们寻求函数
的一个 upper bound
,而后去最小化优化

当取
(该函数一般称做 log loss)时 spa

此时目标函数是 strongly convex 的。接下来咱们考虑用 gradient descent 来对目标函数进行优化。首先其 Gradient 是debug

PS:下图中是各个损失函数,有最原始的0-1损失函数,以及用来在实际状况中做为其upper bound的替代损失函数,如 log loss,hinge loss,exp loss。