机器学习笔记之逻辑回归原理

1.从线性回归到逻辑回归

  线性回归的模型是求出输出特征向量Y和输入样本矩阵X之间的线性关系系数\(θ\),满足\(Y=Xθ\)。此时我们的Y是连续的,所以是回归模型。
如果我们想要Y是离散的话, 一个可以想到的办法是,我们对于这个Y再做一次函数转换,变为\(g(Y)\)。如果我们令\(g(Y)\)的值在某个实数区间的时候是类别A,在另一个实数区间的时候是类别B,以此类推,就得到了一个分类模型。

2.二元逻辑回归的模型

   逻辑回归的思想就是 在线性回归上再做一次函数转换,即上一节我们提到对线性回归的结果做一个在函数\(g\)上的转换,可以变化为逻辑回归。这个函数\(g\)在逻辑回归中我们一般取为sigmoid函数,形式如下:
\[g(z)=\frac{1}{1+e^{-z}}\]

  图形如图:




 它有一个非常好的性质,即当z趋于正无穷时, \(g(z)\)趋于1,而当 \(z\)趋于负无穷时, \(g(z)\)趋于0,这非常适合于我们的分类概率模型。另外,它还有一个很好的导数性质:
\[g^{`}(z)=g(z)(1-g(z))\]

如果我们令\(g(z)\)中的\(z\)为:\(z=xθ\),这样就得到了二元逻辑回归模型的一般形式:
\[h_{\theta}(x)=\frac{1}{1+e^{\theta 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两类,那么我们有:
\[P(y=1|x,\theta)=h_{\theta}(x)\]\[P(y=1|x,\theta)=1-h_{\theta}(x)\]把这两个式子写成一个式子,就是:\[P(y|x,\theta)=h_{\theta}(x)^y(1-h_{\theta}(x))^{1-y}\]其中y的取值只能是0或者1
用矩阵法表示,即为:\[P(Y|X,\theta)=h_{\theta}(X)^Y(E-h_{\theta}(x))^{1-Y}\]其中E为单位矩阵。
得到了y的概率分布函数表达式,我们就可以用似然函数最大化来求解我们需要的模型系数\(\theta\).
为了方便求解,这里我们用对数似然函数最大化,对数似然函数取反即为我们的损失函数\(J(\theta)\).
似然函数的代数表达式为:
\[J(\theta)= -lnL(\theta) = -{\sum_{i=1}^m(y^{(i)}log(h_{\theta}(x^{(i)}))+(1-y^{(i)})log(1-h_{\theta}(x^{(i)})))}\]损失函数用矩阵法表达更加简洁:\[J(\theta)=- Y.logh_{\theta}(X)-(E-Y).log(E-h_{\theta}(X))\]这样,问题就转换成目标为最小化损失函数的优化问题,求解参数

4. 参数求解方法

对于求解二元逻辑回归的损失函数极小化,有比较多的方法,最常见的有梯度下降法,坐标轴下降法,等牛顿法等。这里用梯度下降法中θ每次迭代的公式。(用矩阵的写法)
对于\(J(\theta)=-Y.logh_{\theta}(X)-(1-Y).log(E-h_{\theta}(X))\),我们用\(J(\theta)\)对向量\(\theta\)向量求导得:
\[\begin{align}\frac{\partial}{\partial \theta}J(\theta)=&-YX^{T}\frac{1}{h_{\theta}(X)}h_{\theta}(X)(1-h_{\theta}(X))\\\\ &+(E-Y)X^T\frac{1}{1-h_{\theta}(X)}h_{\theta}(X)(1-h_{\theta}(X))\end{align}\]这一步用到了矩阵求导的链式法则,和下面三个矩阵的求导公式:
\(\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 \(的迭代公式如下:\)\(\theta = \theta -\alpha X^T(h_{\theta}(X)-Y)\)\(其中,\) \alpha $为梯度下降法的步长




实践中,我们一般不用操心优化方法,大部分机器学习库都内置了各种逻辑回归的优化方法,不过了解至少一种优化方法还是有必要的。

5. 二元逻辑回归的正则化

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

猜你喜欢

转载自www.cnblogs.com/laiyaling/p/10655713.html