线性回归vs逻辑回归(一)——模型结构比较

        线性回归和逻辑回归在统计上都属于Conditional models(没找到标准中文译名),并且在sklearn中线性回归类LinearRegression 和逻辑回归类LogisticRegression 都在Linear_model包里面,可见二者存在密切关系。因此这个本篇文章将从模型结构、损失函数、参数求解等进行比较,加深对二者的理解(注:线性回归和逻辑回归的前提假设这里不进行讨论)。

1.0 线性回归

        线性回归(linear regression),是指以线性相加的形式来描述特征(x_1, x_2, x_3, ... x_n)和输出结果y之间的关联关系(x_i也称自变量 indepent variables、[数学]回归量 regressor;y也称因变量dependent variable,[数学]回归变数 regressand)。线性回归的模型结果为标量scalars,即连续型数值变量,如房价、空气指数、薪酬等。

        线性回归的一般形式如下:

y=w_1x_1+w_2x_2 +...+w_nx_n+b+\varepsilon =\sum_{i=1}^nw_ix_i+b+\varepsilon

        其中(w_1, w_2 ... w_n)称为回归系数(regression coefficients),b为常数项(constant,或截距项intercept),\varepsilon为误差项(unobservable error)。\varepsilon其实存在于所有模型中,反映了未能在x_i中观测到的y的变化以及随机观测误差;\varepsilon 常见用于残差分析,即检验模型对特征与输出结果的关系的描述是否充分;在理想拟合的情况下,\varepsilon 应服从正态分布。

        上面线性模型仅是针对一组特征和数据而言,当存在m组特征和标签,即(x^{(i)}_1, x^{(i)}_2, x^{(i)}_3, ... x^{(i)}_n;y^{(i)})i=1,2...m,此时线性回归的一般形式为:

y^{(i)}=w_1x^{(i)}_1+w_2x^{(i)}_2 +...+w^{(i)}_nx_n+b+\varepsilon^{(i)}=\sum_{j=1}^nw_jx^{(i)}_j+b+\varepsilon^{(i)}j=1,2...n

        写成向量形式为:Y=X·W+b+\varepsilon ,其中

特征矩阵
系数向量
残差向量

        模型中的每一组x^{(i)}都会加上固定的常数项b,可看是存在一个特征x_0^{(i)}=1,而b是该特征的系数,即x_0^{(i)}*b=b,这样线性模型的形式又可以变为:Y=X·W+\varepsilon

        此时的XW和分别为:

特征矩阵
系数向量
误差向量

2.0 逻辑回归

        逻辑回归(logistic regression)虽然名叫“回归”,但本质是一个二分类模型(binary classification model),该模型是在线性模型的输出结果的基础上,通过逻辑函数(logistic function)转换为概率,并通过阈值判断实现二分类。逻辑回归与线性回归具有相同的输入变量,输出变量则为离散变量,即类别标签。

        假设存在样本数据(x^{(i)}_1, x^{(i)}_2, x^{(i)}_3, ... x^{(i)}_n;y^{(i)})i=1,2,...my^{(i)}作为二分类的结果标签设其取值为\left\{ 0,1 \right\} 。因此,当y^{(i)}=1时,以(x^{(i)}_1, x^{(i)}_2, x^{(i)}_3, ... x^{(i)}_n)为输入的结果概率为:

P(y^{(i)}=1|x^{(i)})=\frac{1}{1+e^{-(w^Tx^{(i)}+b)}}

        其中S(z)=\frac{1}{1+e^{-z}} 为逻辑函数,t=w^Tx^{(i)}+b为线性模型的结果输入。显然,\lim_{z\to+oo} S(z)=1\lim_{z\to-oo} S(z)=0P(y^{(i)}=1|x^{(i)})\in (0,1),这刚好是概率的完整取值范围。相对应的有P(y^{(i)}=0|x^{(i)})=1-P(y^{(i)}=1|x^{(i)})

        将常数项考虑为一个定值特征,逻辑回归的矩阵形式为:P(Y)=\frac{1}{1+e^{-(X·W)}} XW形式同线性回归。

3.0 从线性回归到逻辑回归

3.1 正态分布和probit回归

        对于线性回归t^{(i)}=w^Tx^{(i)}+b+\varepsilon ^{(i)}来说,其输出结果t^{(i)}的取值范围应为(-oo, +oo),并且是关于t=0轴对称分布的,此时可以t=0为分界点,设置:

        于是:

P(y^{(i)}=1|x^{(i)})=P(t^{(i)}\geq 0|x^{(i)})=P(w^Tx^{(i)}+b+\varepsilon ^{(i)}\geq 0|x^{(i)})

                                =P(\varepsilon ^{(i)}\geq -w^Tx^{(i)}-b|x^{(i)})

        由于误差项\varepsilon ^{(i)}都服从正态分布,则根据正态分布的概率密度性质,上式变为:

P(y^{(i)}=1|x^{(i)})=P(\varepsilon ^{(i)}\leq w^Tx^{(i)}+b|x^{(i)})=F_\varepsilon (w^Tx^{(i)}+b)

        其中F_\varepsilon ()\varepsilon^{(i)}的概率累积(cumulative distribution function,cdf)函数,由于\varepsilon^{(i)}均服从正态分布,则:

F_\varepsilon(w^Tx^{(i)}+b)=\frac{1}{\sigma\sqrt{2\pi}}\int_{-oo}^{t} e^{-\frac{[(w^Tx^{(i)}+b)-\mu]^2}{2\sigma ^2} }dx

        于是得到如下二分类模型,该模型称为probit回归:

3.2 logit分布和逻辑回归

        上一节指出,通过probit回归可以将线性回归的输出结果转化为概率,并根据概率值实现分类。但是,probit回归是基于\varepsilon^{(i)}服从正态分布,而正态分布的概率累积函数在使用时存在诸多问题,如形式复杂、无解析解、运算复杂、正态分布的均值和方差难以准确确定等,于是数学家们尝试寻找一种函数来替代正态分布的概率累积函数,这就是logit分布的概率累积函数,也就是大名鼎鼎的sigmoid函数,即:Sigmoid(z)=\frac{1}{1+e^{-z}}

        下图为正态分布和logit分布的概率累积函数和概率密度函数的形状比较,可以看出正态分布和logit分布在两种函数上都非常接近,且具有相似的数学性质。尤其在概率累积函数方面,sigmoid函数在形式上比正态分布简单得多,且微积分运算时非常便捷,因此将其作为正态分布概率累积函数的替代。

        因此,用\varepsilon ^{(i)}服从logit分布替代原本的正态分布,此时概率累积函数F_\varepsilon ()变为:F_\varepsilon(w^Tx^{(i)}+b)=Sigmoid(w^Tx^{(i)}+b)=\frac{1}{1+e^{-(w^Tx^{(i)}+b)}}

        令z^{(i)}=w^Tx^{(i)}+b,就得到逻辑回归:

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。