LR算法作为一种比较经典的分类算法,在实际应用和面试中经常受到青睐,虽然在理论方面不是特别复杂,但LR所牵涉的知识点还是比较多的,同时与概率生成模型、神经网络都有着一定的联系,本节就针对这一算法及其所涉及的知识进行详细的回顾。
LogisticRegression 0.前言LR是一种经典的成熟算法,在理论方面比较简单,很多资料也有详细的解释和推导,但回过头再看LR算法会有很多全新的认识,本节就从LR的引入到原理推导以及其与神经网络的有何联系串联起来,可以加深对这方面知识的理解。本节首先从概率生成模型引入LR,然后基于二分类推导LR的算法过程,再介绍LR在多分类中的应用,最后介绍LR与神经网络的联系,并通过一些实例对LR进行实现。
1.LR简介LR回归是将样本进行线性叠加之后,再通过sigmoid函数,来对样本进行分类的过程,sigmoid函数如下:
其图形如下:
可以看到当z>0时,通过sigmoid函数后,σ(z)>0.5,z<0时,σ(z)<0.5;
那么LR的具体做法就是:
(1)找到一组参数w、b,求得样本的线性叠加z=wx+b;
(2)然后将z通过sigmoid函数,如果>0.5,则属于类别1,否则属于类别2;
然后其训练过程就是寻找参数w、b的过程,后面再说如何进行训练。
2.从概率模型到LogisticRegression前面有一节有关概率模型专题,详见https://www.cnblogs.com/501731wyb/p/15149456.html,通过假设样本分布,利用最大似然估计来估计样本分布参数,从而求解给定一个样本属于C1和C2的概率,来进行分类的过程,记给定一个未知样本X,属于C1的概率为P(C1|X),那么,根据贝叶斯公式:
对上面的公式变形,上下同除以分子,得到:
则有:
这里注意z的“分子”和“分母”与原式中正好相反,因为有“-”号。
通过上面LR的简介或者熟悉LR的形式,就可以看出这里的所得到的概率形式与LR及其相似,不同的是,概率形式中的z与原LR的形式wx+b不太一样。
仅仅上面的变形就说二者有关系稍微有点肤浅,那么究竟一样不一样呢?我们继续往下看:
根据概率模型那一章节,假设样本C1、C2均服从高斯分布,均值分别为μ1、μ2,方差分别为Σ1和Σ2,根据高斯分布的概率密度函数,那么带入上面z中的P(X|C1)和P(X|C2),则有:
将上面的式子进行化简并展开:
在概率模型中训练过程中,我们假设两个类别样本分布的方差Σ1和Σ2共用一个Σ,那么上面的式子可以进一步化简:
最终得到的z就是上面的式子,由于参数μ1、μ2、Σ是根据样本估计出来的参数,可以看做已知的,那么最终得到的z的形式如下:
那么合并掉常数项,我们可以看到,z就变成了wx+b的形式,也就是说: