机器学习----逻辑回归

来源:互联网 发布:java 爬虫开源 编辑:程序博客网 时间:2024/04/30 08:26

上一篇讲的是线性回归,这一篇讲逻辑回归。这两者有什么区别呢?简单的说一个是预测连续值,一个是预测离散值。线性回归由于最后得到的是一个预测函数,因此可以预测连续值,逻辑回归是一个分类器,最后输出的是类别。

        逻辑回归主要针对的是二分类问题,即分类结果只有{0,1}两类。所以我们很自然的想到如果我们的预测函数的输出范围在0-1之间,然后在0-1之间选定一个阈值,预测值小于阈值的认为是0类,大于阈值的认为是1类,这样就可以实现分类。这里我们看到了逻辑回归和线性回归预测函数的差别,在线性回归中预测函数是一条直线,它的值域是正负无穷,因此我们无法找到一个阈值,将其分成两部分。因此我们必须找一个值域范围在0-1之间的函数,或者-1到1之间的函数。那是否有这样的函数,很幸运sigmoid函数就是这样一个我们所需的函数。

       1.1 sigmoid 函数

       

Sigmoid 函数在有个很漂亮的“S”形,如下图所示(引自维基百科):

 

1.2  边界线

有了sigmoid函数后,我们怎么来预测呢?这里借助吴恩达教授的讲义给大家讲解。

下面左图是一个线性的决策边界,右图是非线性的决策边界。



对于线性边界的情况,边界线的数学形式如下,其实就是一个直线函数:

上图中的边界线是一条分类线,位于分界线两边的为不同的类别。逻辑回归就是找到这样一条分类线,从公式中我们可以看到边界线有参数θ确定,因此最后又转化成了求θ的问题。

1.3 构造预测函数

利用sigmoid函数构造的预测函数为:

                                                         

注意:或许有人会问为什么我们不把数据x直接带入sigmoid函数中得到预测值,而必须有参数theta呢?因为,如果特征只有一个你可以那样做,但是我们处理的数据特征都是多个,而sigmoid是个一元函数,因此我们必须要有theta参数。其实我们也可以将上面的边界线函数,理解成特征的加权和形式,我们要得到的就是每个特征的权值。

函数的值有特殊的含义,它表示结果取1的概率(注意这只是一种假设,把它看成代表取0的概率也可以),因此对于输入x分类结果为类别1和类别0的概率分别为:


注意:有了上面两个概率公式后我们就可以得到一个将二者合并表达的公式,这个公式十分重要!


                                                             (2)

为什么说这是公式1中两个式子的合并呢?如果y=1,1-y=0,任何数的0次幂为1,这样就只剩下乘积的右半部分,和公式1中的第一个式子相同。如果y=0,情况类似。

1.4  损失函数

在将损失函数前必须要先了解极大似然原理和极大似然估计。

1.4.1 极大似然原理



注释:一个概率分布中有一个参数theta,参数不同概率分布就不同,因此即使是同一事件,不同theta,它发生的概率也不同。如果一次抽样事件A发生了,我们就认为此时的参数theta,可以是事件A发生的概率最大。如果进行了n次抽样,得到x1,x2,...xn,那我们就认为此时的参数theta使事件x1,x2,...xn同时发生的概率最大。因此使联合概率密度去最大值的theta就是我们要的参数theta。

1.4.2  极大似然估计法

离散型



连续性


具体的讲解就不再多说了大家可以看:http://wenku.baidu.com/link?url=OJ6MF51qtu568-YAdEi9T496v6ypsopByCxCLkPXDyIOlbHqZGQkFgt_EfxyWXBYSs73ElejivKF3rJJjusaT0atJEPTsdhOjfhqvj7-qw3

1.4.3 逻辑回归的损失函数

大家对极大似然有了一个较清晰的了解,我们回到我们的逻辑回归的损失函数上来。逻辑回归的损失函数和线性回归的损失函数的思路不同。我们再次回到损失函数的含义是什么?损失函数是度量我们找的参数的好坏的函数,线性回归中我们用预测值和真实值之间的差值去衡量,但是在逻辑回归中我们并不这样做。我们用概率去衡量,比如我们有n个数据,那么这n个数据同时发生概率最大,损失函数越小。这就回到了我们的极大似然估计。

取似然函数为:


对数似然函数为:


最大似然估计就是求使取最大值时的θ,其实这里可以使用梯度上升法求解,求得的θ就是要求的最佳参数。但是,在Andrew Ng的课程中将取为下式,即:


因为乘了一个负的系数-1/m,所以取最小值时的θ为要求的最佳参数。


梯度下降法求的最小值

θ更新过程:

 


θ更新过程可以写成:

 




0 0
原创粉丝点击