@hanxiaoyang
2017-12-14T12:27:14.000000Z
字数 5129
阅读 2009
个人博客
作者:龙心尘 && 寒小阳
时间:2015年10月。
出处:http://blog.csdn.net/longxinchen_ml/article/details/49284391,
http://blog.csdn.net/han_xiaoyang/article/details/49332321。
声明:版权所有,转载请注明出处,谢谢。
前一篇文章《机器学习系列(1)_逻辑回归初步》中主要介绍了逻辑回归的由来,作用和简单的应用,这里追加这篇《机器学习系列(2)用初等数学视角解读逻辑回归》来看看从直观的数学视角,可以怎么去理解逻辑回归的思想思路。
为了降低理解难度,本文试图用最基础的初等数学来解读逻辑回归,少用公式,多用图形来直观解释推导公式的现实意义,希望使读者能够对逻辑回归有更直观的理解。
逻辑回归处理的是分类问题。我们可以用通俗的几何语言重新表述它:
空间中有两群点,一群是圆点“〇”,一群是叉点“X”。我们希望从空间中选出一个分离边界,将这两群点分开。
注:分离边界的维数与空间的维数相关。如果是二维平面,分离边界就是一条线(一维)。如果是三维空间,分离边界就是一个空间中的面(二维)。如果是一维直线,分离边界就是直线上的某一点。不同维数的空间的理解下文将有专门的论述。
为了简化处理和方便表述,我们做以下4个约定:
- 我们先考虑在二维平面下的情况。
- 而且,我们假设这两类是线性可分的:即可以找到一条最佳的直线,将两类点分开。
- 用离散变量y表示点的类别,y只有两个可能的取值。y=1表示是叉点“X”,y=0表示是是圆点“〇”。
- 点的横纵坐标用表示。
于是,现在的问题就变成了:怎么依靠现有这些点的坐标和标签(y),找出分界线的方程。
由以上步骤,我们由点x的坐标得到了一个新的特征z,那么:
z的现实意义是什么呢?
首先,我们知道,z可正可负可为零。而且,z的变化范围可以一直到正负无穷大。
z如果大于0,则点x属于y=1的类别。而且z的值越大,说明它距离分界线的距离越大,更可能属于y=1类。
那可否把z理解成点x属于y=1类的概率P(y=1|x) (下文简写成P)呢?显然不够理想,因为概率的范围是0到1的。
但是我们可以将概率P稍稍改造一下:令Q=P/(1-P),期望用Q作为z的现实意义。我们发现,当P的在区间[0,1]变化时,Q在[0,+∞)区间单调递增。函数图像如下(以下图像可以直接在度娘中搜“x/(1-x)”,超快):
但是Q的变化率在[0,+∞)还不够,我们是希望能在(-∞,+∞)区间变化的。而且在P=1/2的时候刚好是0。这样才有足够的解释力。
注:因为P=1/2说明该点属于两个类别的可能性相当,也就是说这个点恰好在分界面上,那它在法向量的投影自然就是0了。
而在P=1/2时,Q=1,距离Q=0还有一段距离。那怎么通过一个函数变换然它等于0呢?有一个天然的函数log,刚好满足这个要求。
于是我们做变换R=log(Q)=log(P/(1-P)),期望用R作为z的现实意义。画出它的函数图像如图:
这个函数在区间[0,1]中可正可负可为零,单调地在(-∞,+∞)变化,而且1/2刚好就是唯一的0值!基本完美满足我们的要求。
回到我们本章最初的问题,
“我们由点x的坐标得到了一个新的特征z,那么z的具体意义是什么呢?”
由此,我们就可以将z理解成x属于y=1类的概率P经过某种变换后对应的值。也就是说,z= log(P/(1-P))。反过来就是P=。图像如下:
这两个函数log(P/(1-P)) 、看起来熟不熟悉?
这就是传说中的logit函数和sigmoid函数!
小小补充一下:
于是,我们不光得到了z的现实意义,还得到了z映射到概率P的拟合方程:
有了概率P,我们顺便就可以拿拟合方程P=来判断点x所属的分类:
当P>=1/2的时候,就判断点x属于y=1的类别;当P<1/2,就判断点x属于y=0的类别。
到目前为止我们就有两个判断某点所属分类的办法,一个是判断z是否大于0,一个是判断g(z)是否大于1/2。
然而这并没有什么X用,
以上的分析都是基于“假设我们已经找到了这条线”的前提得到的,但是最关键的三个参数仍未找到有效的办法求出来。
还有没有其他的性质可供我们利用来求出参数的值?
由此可见,设计一个好的代价函数,将是我们处理好分类问题的关键。而且不同的代价函数,可能会有不同的结果。因此更需要我们将代价函数设计得解释性强,有现实针对性。
为了衡量“预估结果和实际结果的差距”,我们首先要确定“预估结果”和“实际结果”是什么。
接下来是衡量两个结果的“差距”。
代价函数确定了,接下来的问题就是机械计算的工作了。常见的方法是用梯度下降法。于是,我们的平面线形可分的问题就可以说是解决了。
回顾我们的推理过程,我们其实是在不断地将点进行几何坐标变换的过程。
其实,做数据挖掘的过程,也可以理解成做特征处理的过程。我们典型的数据挖掘算法,也就是将一些成熟的特征处理过程给固定化的结果。
对于逻辑回归所处理的分类问题,我们已有的特征是这些点的坐标,我们的目标就是判断这些点所属的分类y=0还是y=1。那么最理想的想法就是希望对坐标进行某种函数运算,得到一个(或者一些)新的特征z,基于这个特征z是否大于0来判断该样本所属的分类。
对我们上一节非线性可分问题的推理过程进行进一步抽象,我们的思路其实是:
由以上分析可知。比较关键的是第一步,如何设计转换函数。我们现在开始考虑分离边界是一个极端不规则的曲线的情况。
我们仍用逆推法的思路:
以上考虑的问题都是基于在二维平面内进行分类的情况。其实,对于高维度情况的分类也类似。
高维空间的样本,其区别也只是特征坐标更多,比如四维空间的点x的坐标为。但直接运用上文特征处理的视角来分析,不过是对坐标进行参数更多的函数运算得到新的特征。并假设z是某种程度的逻辑发生比,通过其是否大于0来判断样本所属分类。
而且,如果是高维线性可分的情况,则可以有更近直观的理解。
以上考虑的问题都是二分类的问题,基本就是做判断题。但是对于多分类的问题,也就是做选择题,怎么用逻辑回归处理呢?
其基本思路也是二分类,做判断题。
比如你要做一个三选一的问题,有ABC三个选项。首先找到A与BUC(”U”是并集符号)的分离边界。然后再找B与AUC的分离边界,C与AUB的分离边界。
这样就能分别得到属于A、B、C三类的概率,综合比较,就能得出概率最大的那一类了。
为了把本文的关系梳理清楚,我们画了以下这张图表。