logistic回归
定义
logistic回归主要用于分类问题,尤其是二分类问题。方法为根据现有的样本数据建立一个回归方程,并以该回归方程输出的值为依据进行分类。如下图中,有红绿两类,我们需要对它们进行分类,首先对其进行拟合,拟合后得到了一条紫色直线,设紫线方程为\(y=0.1x+0.4\),将各样本的x值(即特征值)代入到该回归方程中,我们判定:当输出\(y\ge0.5\)时,将该样本判断为红色类,当\(y<0.5\)时,将该样本判断为绿色类,即我们应以\(x=1\)为决策边界,对于红色类的样本,其\(x\)值均大于\(1\),因此会被机器准确地判为红色类,同理绿色类也是如此。

界线的回归方程
对于上图中的回归方程,其容易受到一些极端样本的影响,导致拟合效果较差,如对图上的数据再添加一些样本后方程变成了\(y=0.05x+0.3\),即下图中的橙色直线,根据这条橙色直线,被圈住的两个红色类样本的\(x\)值代入到橙色直线的方程中,\(y<0.5\),会被机器判断为绿色类,显然这是错误的。因此对于决策边界的回归方程,不能使用一元和多元中的回归方程\(h_{\theta}(x)=\theta_{0}+\theta_{1}x_{1}+\theta_{2}x_{2}+...+\theta_{n}x_{n}\)来进行拟合。另外,对于二分类而言,机器的输出应该只有\(2\)种,假设为\(0,1\),如果使用线性回归,则方程的输出值可能会有很多种,比如\(y>1\),\(y<0\)等,这是不合理的,因此考虑使用\(Sigmoid\)函数,\(Sigmoid\)函数公式为:
当\(z>0\)时,\(\sigma(z)>0.5\),反之\(\sigma(z)<0.5\),同时\(\sigma(z)\)的值域为(0,1),因此,我们可以将该函数与线性回归方程结合起来,令\(h_{\theta}(x)=\sigma(\theta^T x)=\frac{1}{1+e^{-\theta^{T}x}}\),若函数输出值\(y\ge=0.5\),则将该样本分入\(1\)类,反之分入\(0\)类

为何加入\(\sigma(z)\)函数后会改变极端样本对线性回归方程的影响
首先,考虑一下我们是如何更新方程中的参数的 —— 是根据损失函数对各参数的偏导来更新参数的,而偏导中都会有这么一项:
其中\(y^{(i)}=0\quad or \quad y^{(i)}=1\),当极端样本为\(1\)类时,即\(y^{(i)}=1\),由于极端样本的特征值\((x值)\)远离决策边界,根据\(h_{\theta}(x)=\sigma(z)\)的图像可知,\(h_{\theta}(x)\)输出的值会离\(0.5\)较远,离\(1\)较近,因此\(h_{\theta}(x^{(i)})-y^{(i)}\)的值会较小;而离决策边界较近的样本,即\(h_{\theta}(x)\)输出接近\(0.5\),显然此时\(h_{\theta}(x^{(i)})-y^{(i)}\)的值会大很多,因此它们对决策边界的影响会更大。因此\(\sigma(z)\)可以消除特征明显的样本对决策边界的影响。
损失(代价)函数
由于回归方程为:
其中\(\theta^{T}x=\theta_{0}x_{0}+\theta_{1}x_{1}+...+\theta_{n}x_{n}\)且\(x_{0}=1\)
设有\(m\)个样本,则损失函数为:
由于\(h_{\theta}(x)=\frac{1}{1+e^{-\theta^{T}x}}\)为非凸函数(可用黑塞矩阵证明),因此我们无法使用梯度下降法来求出其参数,因此需要考虑使用其他损失函数。
考虑函数\(h_{\theta}(x)=t\)的含义为:在样本特征值及分类(即\(y\)值)已知的情况下,将样本特征值输入到机器中后,机器认为样本类别为\(1\)的概率为\(t\),则机器认为样本类别为\(0\)的概率为\(1-t\)。令
则
将上述两个公式合并,可得
其含义为:找到了一组参数\(\theta\),使得输入特征值为\(x\)且类别为\(y=1(0)\)时,机器认为\(y=1(0)\)的概率为\(P(y|x;\theta)\),显然,我们希望\(P(y|x;\theta)\)越大越好,这样机器的评估效果是最好的。对\(P(y|x;\theta)\)两边取自然对数,有:
当\(\ln_{}{P(y|x;\theta)}\)最大时,则\(-\ln_{}{P(y|x;\theta)}\)最小,因此最大化\(\ln_{}{P(y|x;\theta)}\)等价于最小化\(-\ln_{}{P(y|x;\theta)}\),因此可令损失函数为\(J(\theta)=-\ln_{}{P(y|x;\theta)}\),若有\(m\)个样本,则
两边取对数并添一个负号,则
梯度下降
首先需要对\(J(\theta)\)求偏导,偏导分为三部分,第一部分为\(ln\),第二部分为\(h_{\theta}(x)\),即\(\sigma(z)=\frac{1}{1+e^{-z}}\),第三部分为\(\theta x\)。
第一部分为
第二部分为
第三部分为
先来看只有一个样本时的情况,
因此,当有\(m\)个样本时,
其中\(h_{\theta}(x^{(i)})=\sigma(\theta^Tx^{(i)})\),因此,迭代公式为

浙公网安备 33010602011771号