机器学习笔记之逻辑回归原理
1.从线性回归到逻辑回归
线性回归的模型是求出输出特征向量Y和输入样本矩阵X之间的线性关系系数\(θ\),满足\(Y=Xθ\)。此时我们的Y是连续的,所以是回归模型。
如果我们想要Y是离散的话, 一个可以想到的办法是,我们对于这个Y再做一次函数转换,变为\(g(Y)\)。如果我们令\(g(Y)\)的值在某个实数区间的时候是类别A,在另一个实数区间的时候是类别B,以此类推,就得到了一个分类模型。
2.二元逻辑回归的模型
逻辑回归的思想就是 在线性回归上再做一次函数转换,即上一节我们提到对线性回归的结果做一个在函数\(g\)上的转换,可以变化为逻辑回归。这个函数\(g\)在逻辑回归中我们一般取为sigmoid
函数,形式如下:
图形如图:

如果我们令\(g(z)\)中的\(z\)为:\(z=xθ\),这样就得到了二元逻辑回归模型的一般形式:
其中\(x\)为样本输入,\(hθ(x)\)为模型输出,可以理解为某一分类的概率大小。而\(θ\)为分类模型的要求出的模型参数。
我们假设,如果\(hθ(x)>0.5\) ,即\(xθ>0\), 则\(y\)为1。如果\(hθ(x)<0.5\),即\(xθ<0\), 则\(y\)为0。 \(y=0.5\)是临界情况,此时\(xθ=0\)为, 从逻辑回归模型本身无法确定分类。
——\(hθ(x)\)的值越小,而分类为0的的概率越高,反之,值越大的话分类为1的的概率越高。如果靠近临界点,则分类准确率会下降。
3.参数估计
模型的数学形式确定后,剩下就是如何去求解模型中的参数。
由于在线性回归模型中,输出\(y\)值是连续的,因此可以用差值的平方等表示损失函数。但是在逻辑回归中,输出\(y\)值是离散的,所以损失函数用极大似然法估计。
- 最大化似然函数 == 最小化损失函数
- 损失函数是似然函数求对数再取反
我们知道,按照二元逻辑回归的定义,假设我们的样本输出是0或1两类,那么我们有:
把这两个式子写成一个式子,就是:
其中y的取值只能是0或者1 ,用矩阵法表示,即为:
其中E为单位矩阵。
得到了y的概率分布函数表达式,我们就可以用似然函数最大化来求解我们需要的模型系数\(\theta\).
为了方便求解,这里我们用对数似然函数最大化,对数似然函数取反即为我们的损失函数\(J(\theta)\).
似然函数的代数表达式为:
损失函数用矩阵法表达更加简洁:
这样,问题就转换成目标为最小化损失函数的优化问题,求解参数
4. 参数求解方法
对于求解二元逻辑回归的损失函数极小化,有比较多的方法,最常见的有梯度下降法,坐标轴下降法,等牛顿法等。这里用梯度下降法中θ每次迭代的公式。(用矩阵的写法)
对于\(J(\theta)=-Y.logh_{\theta}(X)-(1-Y).log(E-h_{\theta}(X))\),我们用\(J(\theta)\)对向量\(\theta\)向量求导得:
这一步用到了矩阵求导的链式法则,和下面三个矩阵的求导公式:
\(\frac{\partial}{\partial X}logX=\frac{1}{X}\)
\(\frac{\partial}{\partial z}g(z)=g(z)(1-g(z))\) (\(g(z)\)为sigmoid函数)
\(\frac{\partial}{\partial \theta}X \theta= X^T(h_{\theta}(X)-Y)\)
从而在梯度下降法中每一步向量 \(\theta\) 的迭代公式如下:
其中, \(\alpha\) 为梯度下降法的步长

5. 二元逻辑回归的正则化
逻辑回归也会面临过拟合问题,所以我们也要考虑正则化。常见的有L1正则化和L2正则化 。
二元逻辑回归的L1正则化损失函数表达式如下:
其中\(\parallel{\theta}\parallel_1\) 为L1范数
其中\(\parallel{\theta}\parallel_2^2\) 为L2范数
两种正则化的特点
L1正则化的模型建叫做Lasso回归,L1会趋向于产生少量的特征,而其他的特征都是0。Lasso在特征选择时候非常有用.
L2正则化的模型叫做Ridge回归(岭回归),L2会选择更多的特征,这些特征都会接近于0。这就只是一种规则化,防止过拟合。