以前整理过一篇关于逻辑回归的帖子,可是只是简单介绍了一下了LR的基本思想,面试的时候基本用不上,那么这篇帖子就深刻理解一下LR的一些知识,但愿可以对面试有必定的帮助。git
介绍逻辑斯谛回归模型以前,首先看一个并不常见的几率分布,即逻辑斯谛分布。设X是连续随机变量,X服从逻辑斯谛分布是指X具备以下的累积分布函数和几率密度函数:github
式中,μ为位置参数,γ>0为形状参数。逻辑斯谛的分布的密度函数f(x)和分布函数F(x)的图形以下图所示。其中分布函数属于逻辑斯谛函数,其图形为一条S形曲线。该曲线以点(μ,1/2)
为中心对称,即知足:面试
曲线在中心附近增加较快,在两端增加较慢,形状参数γ的值越小,曲线在中心附近增加得越快。算法
线性回归的应用场合大可能是回归分析,通常不用在分类问题上,缘由能够归纳为如下两个:
1)回归模型是连续型模型,即预测出的值都是连续值(实数值),非离散值;
2)预测结果受样本噪声的影响比较大。机器学习
LR模型的表达式为参数化的逻辑斯谛函数,即:函数
一个事件发生的概率(odds)是指该事件发生的几率与该事件不发生的几率的比值。若是事件发生的几率是p,那么该事件的概率为p/(1-p) ,该事件的对数概率(log odds)或logit函数是:学习
对LR而言,根据模型表达式能够获得:3d
即在LR模型中,输出y=1的对数概率是输入x的线性函数,或者说y=1的对数概率是由输入x的线性函数表示的模型,即LR模型。orm
除了从对数概率的角度理解LR以外,从函数映射也能够理解LR模型。
考虑对输入实例x进行分类的线性表达式θT,其值域为实数域,经过LR模型的表达式能够将线性函数θTx的结果映射到(0,1)区间,取值表示为结果为1的几率(在二分类场景中).
线性函数的值越接近于正无穷大,几率值就越近1;反之,其值越接近于负无穷,几率值就越接近于0,这样的模型就是LR模型。
LR本质上仍是线性回归,只是特征到结果的映射过程当中加了一层函数映射,即sigmoid函数,即先把特征线性求和,而后使用sigmoid函数将线性和约束至(0,1)之间,结果值用语二分或回归预测。blog
LR模型多用于解决二分类问题,如广告是否被点击(是/否),商品是否被购买(是/否)等互联网领域中常见的应用场景。但在实际场景中,咱们又不把它处理成绝对的分类,而是用其预测值做为事件发生的几率。
这里从事件,变量以及结果的角度给予解释。
咱们所能拿到的训练数据统称为观测样本。问题,样本是如何生成的?
一个样本能够理解为发生的一次事件,样本生成的过程即事件发生的过程,对于0/1分类问题来说,产生的结果有两种可能,符合伯努利试验的几率假设。所以,咱们能够说样本的生成过程即为伯努利试验过程,产生的结果(0/1)服从伯努利分布,那么对于第i个样本,几率公式表示以下:
将上面两个公式合并在一块儿,能够获得第i个样本正确预测的几率:
上式是对一个样本进行建模的数据表达。为何能够这么作呢,由于y=1时后面一项为1,y=0时前面一项为1。那么对于全部的样本,假设每条样本生成过程独立,在整个样本空间中(N个样本)的几率分布(即似然函数)为:
接下来咱们就能够经过极大似然估计方法求几率参数。
上图所示即为sigmoid函数,它的输入范围为−∞→+∞,而值域恰好为(0,1),正好知足几率分布为(0,1)的要求。用几率去描述分类器,天然要比阈值要来的方便。并且它是一个单调上升的函数,具备良好的连续性,不存在不连续点。
此外很是重要的,sigmoid函数求导后为:
上一节的公式不只能够理解为在已观测的样本空间中的几率分布表达式。若是从统计学的角度能够理解为参数θ
θ
似然性的函数表达式(即似然函数表达式)。就是利用已知的样本分布,找到最有可能(即最大几率)致使这种分布的参数值;或者说什么样的参数才能使咱们观测到目前这组数据的几率最大。参数在整个样本空间的似然函数可表示为:
为了方便参数求解,对这个公式取对数,可得对数似然函数:
而后,咱们使用随机梯度降低的方法,对参数进行更新:
最后,经过扫描样本,迭代下述公式可救的参数:
式中,a表示学习率。
以上的推导,就是LR模型的核心部分,在机器学习相关的面试中,LR模型公式推导多是考察频次最高的一个点,要将其熟练掌握。
1、预测结果是界于0和1之间的几率;
2、能够适用于连续性和类别性自变量;
3、容易使用和解释;
1、对模型中自变量多重共线性较为敏感,例如两个高度相关自变量同时放入模型,可能致使较弱的一个自变量回归符号不符合预期,符号被扭转。须要利用因子分析或者变量聚类分析等手段来选择表明性的自变量,以减小候选变量之间的相关性;
2、预测结果呈“S”型,所以从log(odds)向几率转化的过程是非线性的,在两端随着log(odds)值的变化,几率变化很小,边际值过小,slope过小,而中间几率的变化很大,很敏感。 致使不少区间的变量变化对目标几率的影响没有区分度,没法肯定阀值。
一、LR采用log损失,SVM采用合页损失。
二、LR对异常值敏感,SVM对异常值不敏感。
三、在训练集较小时,SVM较适用,而LR须要较多的样本。
四、LR模型找到的那个超平面,是尽可能让全部点都远离他,而SVM寻找的那个超平面,是只让最靠近中间分割线的那些点尽可能远离,即只用到那些支持向量的样本。
五、对非线性问题的处理方式不一样,LR主要靠特征构造,必须组合交叉特征,特征离散化。SVM也能够这样,还能够经过kernel。
六、svm 更多的属于非参数模型,而logistic regression 是参数模型,本质不一样。其区别就能够参考参数模型和非参模型的区别
那怎么根据特征数量和样本量来选择SVM和LR模型呢?Andrew NG的课程中给出了如下建议:
若是Feature的数量很大,跟样本数量差很少,这时候选用LR或者是Linear Kernel的SVM
若是Feature的数量比较小,样本数量通常,不算大也不算小,选用SVM+Gaussian Kernel
若是Feature的数量比较小,而样本数量不少,须要手工添加一些feature变成第一种状况。(LR和不带核函数的SVM比较相似。)
参考文献:https://plushunter.github.io/2017/01/12/机器学习算法系列(3):逻辑斯谛回归/