1. 引言
机器学习,绕不开预测问题,预测绕不开回归和分类。本篇介绍最常用的二分类算法:逻辑回归(Logistics Regression),当然随着算法的发展,它也可用于多分类问题。每一个算法都是许许多多数学家的努力铸就,理论篇希望自己可以尽量将算法发展过程叙述的平滑一些,可以即保留理论基础,又让读者感觉舒服。下面,就让我们一起来领教一下这处理问题的伟大逻辑。
2. 回归到分类的过渡
逻辑回归,顾名思义,分为两部分:逻辑和回归。
首先让我们回忆一下上一篇线性回归的内容。
我们希望透过样本得到数据背后的本质映射关系 y = f ( x 1 , x 2 , . . . , x m ) y=f(x_{1},x_{2},...,x_{m}) y=f(x1,x2,...,xm) 。为了简洁,我们假设这种关系是线性的 y = β 0 + β 1 x 1 + β 2 x 2 + . . . + β m x m y=\beta_{0}+ \beta_{1}x_{1}+\beta_{2}x_{2}+...+\beta_{m}x_{m} y=β0+β1x1+β2x2+...+βmxm 。然后催生了线性回归算法的配套理论。
但是,考虑这样一个问题,当因变量不是连续变量,而是分类变量,比如大或者小,黑或者白时,线性回归模型又应该如何应用?数学的魅力在于将现象数字化,或者称为模型化。所以处理这个问题的第一步,我们需要用数学来表示大或者小,黑或者白。
考虑类别之间相对的关系,我们可以用概率来表示这个问题,例如大的概率大于小的概率,我们将预测为大。那么我们知道线性回归的因变量的数值位于 ( − ∞ , + ∞ ) (-\infty,+\infty) (−∞,+∞) 之间。如果我们再定义一个映射关系,将 ( − ∞ , + ∞ ) (-\infty,+\infty) (−∞,+∞) 之间的数值映射成概率值,即 [ 0 , 1 ] [0,1] [0,1] 之间,就可以解决线性回归到分类问题的过渡。
3. 什么是逻辑
下面我们介绍几个可以完成上述映射的函数,
3.1 sigmod
S ( x ) = 1 1 + e − x (1) S(x)=\frac{1}{1+e^{-x}}\tag{1} S(x)=1+e−x1(1)
公式(1)称为逻辑函数(或者称为Sigmoid、S型函数),其将 ( − ∞ , + ∞ ) (-\infty,+\infty) (−∞,+∞) 之间的数值映射到 [ 0 , + 1 ] [0,+1] [0,+1] 之间,也是逻辑回归中使用的映射形式,即线性回归接逻辑函数映射得逻辑回归模型;
3.2 arctan
x = t a n ( y ) , y = a r c t a n ( x ) (2) x=tan(y),y=arctan(x)\tag{2} x=tan(y),y=arctan(x)(2)
3.3 tanh
t a n h ( x ) = s i n h ( x ) c o s h ( x ) = e x − e − x e x + e − x (3) tanh(x)=\frac{sinh(x)}{cosh(x)}=\frac{e^{x}-e^{-x}}{e^{x}+e^{-x}}\tag{3} tanh(x)=cosh(x)sinh(x)=ex+