机器学习笔记(六) 逻辑回归

1.分类

   分类问题很多,比如说是否为垃圾邮件,在线交易是否欺诈等(二分类问题)。

   使用线性回归模型h(θ),会得到连续的预测值,但是我们需要的输出是0和1。所以这里要确定一个阈值。

   h(θ)>0.5,预测y=1; h(θ)<0.5,预测y=0。这种情况下,我们可以很好的完成分类的任务。但是,增加一个特征点到训练集中,会使得回归直线偏移,原本的阈值0.5不再合适,预测值产生偏差(原本预测的恶性肿瘤会变成良性肿瘤)。

机器学习笔记(六) 逻辑回归

   而且线性回归的预测值超过[0,1]的这个区间,并不适合这种类型的问题。所以我们引入逻辑回归预测, 使得0<h(θ)<1。


2.假设表示

   引入函数g,令逻辑函数的假设表示为:机器学习笔记(六) 逻辑回归

   函数g称为Sigmoid function或者Logistic function。具体表达式为:机器学习笔记(六) 逻辑回归。图像如下图所示:

机器学习笔记(六) 逻辑回归

   综合上面两个式子,可以得出逻辑回归模型的数学表达式:机器学习笔记(六) 逻辑回归

   与线性回归不同,hθ(x)的值不是y的预测值,而是概率值。在参数θ下,对于给定的输入变量x,y为1的概率[ P(y=1 l x;θ)]。因此 hθ(x)的区间在0和1之间。

    举个例子,对于给定的x,计算出hθ(x)为0.6,表示有60%的几率,y为正向类,有40%的几率是负向类。


3.决策边界

   在之前的逻辑回归中, h(θ)>0.5时,y=1;相反, h(θ)<0.5时,y=0。

   根据函数g的图像可知,z<0时,g(z)<0.5;z>0时,g(z)>0.5。

   因为z=θTx,所以θT>0时,y=1;θT<0时,y=0。

   我们可以认为θTx=0是一个决策边界,当它大于0或者小于0时,逻辑回归模型分别预测不同的分类结果。

   现在假设有个模型,机器学习笔记(六) 逻辑回归,且θ=[ -3 ; 1 ; 1 ]。

   代入,可得:当 -3+x1+x2>0时,可以预测y=1,相反y=0。绘制图线x1+x2=3,这个就是分界线,将预测为0和为1的区域分开。

    机器学习笔记(六) 逻辑回归

   上面的决策边界是一个线性边界,但是并非所有的数据通过模型可以得到线性边界,当hθ(x)更复杂的时候,我们可以得到非线性的决策边界。

   hθ(x)和θ的值如下图:  

 机器学习笔记(六) 逻辑回归

   当x1*x1+x2*x2>1时,y=1,决策边界是一个圆形。

  机器学习笔记(六) 逻辑回归


4.代价函数

   线性回归中,我们得到的代价函数:机器学习笔记(六) 逻辑回归

   在逻辑回归模型中,我们沿用这个定义。假设机器学习笔记(六) 逻辑回归,但是这样我们得到的代价函数是非凸函数,关于非凸和凸函数,图像如下所示:

机器学习笔记(六) 逻辑回归

   这就意味着代价函数有很多的局部最小值,会影响梯度下降算法。因此我们重新定义逻辑回归的代价函数。

   机器学习笔记(六) 逻辑回归其中,  机器学习笔记(六) 逻辑回归。 

   h θ (x) 与Cost(h θ (x),y) 的关系如下图:

机器学习笔记(六) 逻辑回归

   当实际值y=1时,预测值h(θ)=1,cost=0,预测完全相等。h(θ)趋于0时,cost趋于无穷大,预测结果完全相反。误差随着h(θ)的减小而增大。

   当实际值y=0时,预测值h(θ)=0,cost=0,预测完全相等。h(θ)趋于1时,cost趋于无穷大,预测结果完全相反。误差随着h(θ)的增大而增大。


5.简化代价函数

   y的值一直是0或者1,因此我们简化cost函数:

    机器学习笔记(六) 逻辑回归

   得到代价函数如下:

     机器学习笔记(六) 逻辑回归

   我们把y=0和y=1分别代入进去,可以发现与分段函数保持一致。


6.梯度下降

   得到简化后的代价函数,我们可以使用梯度下降算法求得能使代价函数最小的参数。

   算法如下所示:

   机器学习笔记(六) 逻辑回归

   代入求导:

   机器学习笔记(六) 逻辑回归

   这里逻辑回归的下降算法和线性回归的算法看起来表面是一致的,但是它们两个的hθ(x)是不一样的。当然在进行梯度下降算法之前,要记得特征缩放。

   线性回归:机器学习笔记(六) 逻辑回归

   逻辑回归:机器学习笔记(六) 逻辑回归


7.高级优化方法

   已经介绍的让代价函数最小的算法:梯度下降算法,正规方程方法。除此之外,还有些高级优化算法,例如Conjugate gradient(共轭梯度)、BFGS(局部优化法)、L-BFGS(有限局部优化法)等。它们的优点是特征非常多时,运算高效,不需要提供学习率α。算法中的学习率α,是由算法自动完成的。

  

8.多类分类

   多分类:y的值不只0和1,可能等于1,2,3,4,......比如说下图:

   机器学习笔记(六) 逻辑回归

   解决这个问题的方法是使用one-versus-all(一对多)算法。在这个算法中,我们可以把多分类问题转为二分类问题。为了实现这种转化,我们需要将多类中的某一个类记为正(即y=1),其它所有类标记为负。然后选择另一个类标记为正,其它为负,依次类推。如图所示:

   机器学习笔记(六) 逻辑回归


   因此对k个类的分类问题,我们可以得到k个分类器。一系列的模型我们记为:

   机器学习笔记(六) 逻辑回归

   在预测时,对输入变量x,我们将所有的分类器都运行一遍,然后选择一个类别i,使得max i h (i) θ (x) max i h (i) θ (x)max i h (i) θ (x)即输出最大可能性的分类器所代表的类别。