逻辑回归算法

原创 2015年11月19日 20:52:48

分类问题及其表现形式

为什么需要逻辑回归算法

比如要对一个图片进行分类,判断图片里是否包含汽车。包含汽车的预测值为 1 。不包含汽车的预测值为 0 。这种分类问题的值是离散的,如果用 linear regresstion 来作为分类问题的预测函数是不合理的。因为预测出来的数值可能远小于 0 或远大于 1。我们需要找出一个预测函数模型,使其值的输出在 [0, 1] 之间。然后我们选择一个基准值,比如 0.5 ,如果预测值算出来大于 0.5 就认为其预测值为 1,反之则其预测值为 0.

逻辑回归算法的预测函数

我们选择 g(z)=11+ez 来作为我们的预测函数。这个函数称为 Sigmoid Function 。它的图形如下:

contacts_structure

从图中可以看出来,当 z>0 时,g(z)>0.5 。当 z 越来越大时,g(z) 接无限接近于 1。当 z<0 时,g(z)<0.5 。当 z 越来越小时,g(z) 接无限接近于 0。这正是我们想要的针对二元分类算法的预测函数。

结合我们的线性回归函数的预测函数 hθ(x)=θTx,则我们的逻辑回归模型的预测函数如下:

hθ(x)=g(θTx)=11+eθTx

解读逻辑回归预测函数的输出值

hθ(x) 表示针对输入值 x 以及参数 θ 的前提条件下,y=1 的概率。用概率论的公式可以写成:

hθ(x)=P(y=1|x;θ)

上面的概率公式可以读成:在输入 x 及参数 θ 条件下 y=1 的概率。由概率论的知识可以推导出,

P(y=1|x;θ)+P(y=0|x;θ)=1

判定边界 Decision Boundary

从逻辑回归公式说起

逻辑回归预测函数由下面两个公式给出的:

hθ(x)=g(θTx)

g(z)=11+ez

假定 y=1 的判定条件是 hθ(x)0.5y=0 的判定条件是 hθ(x)<0.5,则我们可以推导出 y=1 的判定条件就是 θTx0y=0 的判定条件就是 θTx<0。所以,θTx=0 即是我们的判定边界。

判定边界

假定我们有两个变量 x1,x2,其逻辑回归预测函数是 hθ(x)=g(θ0+θ1x1+θ2x2)。假设我们给定参数

θ=311

那么我们可以得到判定边界 3+x1+x2=0,即 x1+x2=3,如果以 x1 为横坐标,x2 为纵坐标,这个函数画出来就是一个通过 (0, 3) 和 (3, 0) 两个点的斜线。这条线就是我们的判定边界。

contacts_structure

直线左下角为 y=0 ,直线右上解为 y=1 。横坐标为 x1,纵坐标为 x2

非线性判定边界

如果预测函数是多项式 hθ(x)=g(θ0+θ1x1+θ2x2+θ3x21+θ4x22),且给定

θ=10011

则可以得到判定边界函数

x21+x22=1

还是以 x1 为横坐标,x2 为纵坐标,则这是一个半径为 1 的圆。圆内部是 y=0 ,圆外部是 y=1

contacts_structure

这是二阶多项式的情况,更一般的多阶多项式可以表达出更复杂的判定边界。

逻辑回归的成本函数

线性回归的成本函数是 J(θ)=1mmi=112(hθ(x(i))y(i))2,如果我们按照线性回归的成本函数来计算逻辑回归的成本函数,那么我们最终会很可能会得到一个非凸函数 (non-convex function),这样我们就无法通过梯度下降算法算出成本函数的最低值。

为了让成本函数是个凸函数 (convex function),以便容易求出成本函数的最小值,我们定义逻辑回归的成本函数如下:

Cost(hθ(x),y)=log(hθ(x)),log(1hθ(x)),if y = 1if y = 0

成本函数的解读
如果 y=1,hθ(x)=1,那么成本为 Cost=0;如果 y=1,hθ(x)0,那么成本将是无穷大 Cost
如果 y=0,hθ(x)=0,那么成本为 Cost=0;如果 y=0,hθ(x)1,那么成本将是无穷大 Cost

逻辑回归成本函数定义

由于 y[0,1] 的离散值,可以把两个成本函数合并起来:

J(θ)=1m[i=1mlog(hθ(x(i)))+(1y(i))log(1hθ(x(i)))]

y=0,y=1 两种情况代入上式,很容易可以验证成本函数合并的等价性。使用梯度下降算法进行参数迭代的公式如下:

θj=θjαθjJ(θ)=θjα1mi=1m(hθ(x(i))y(i))x(i)j

这个公式的形式和线性回归算法的参数迭代公式是一样的。当然,由于这里 hθ(x)=11+eθTx,而线性回归算法里 hθ(x)=θTx。所以,两者的形式一样,但数值计算完全不同。

算法优化

梯度下降算法的效率是比较低,优化的梯度下降算法有 Conjugate Gradient, BFGS, L-BFGS 等。这些算法比较复杂,实现这些算法是数值计算专家的工作,一般工程人员只需要大概知道这些算法是怎么优化的以及怎么使用这些算法即可。

octave 里提供了 fminunc 函数,可以查阅文档来学习函数用法,从而学会使用优化过的梯度下降算法,以提高计算效率。

多元分类算法

除了二元分类算法外,还有多元分类问题,比如需要给邮件打标签,则可能有多个标签需要考虑。这个时候需要使用 one-vs-all (one-vs-rest) 的方法。即把要分类的一种类别和其他所有类别区分开来的,这样就把多元分类问题转化为二元分类问题,这样就可以使用上文总结的所有二元分类问题的算法。

针对 y=i,求解针对 i 的预测函数 h(i)θ(x)。如果有 n 个类别,则需要求解 n 个预测函数。

版权声明:本文为博主原创文章,未经博主允许不得转载。

相关文章推荐

机器学习算法与Python实践之(一)k近邻(KNN)

机器学习算法与Python实践之(一)k近邻(KNN)zouxy09@qq.comhttp://blog.csdn.net/zouxy09        机器学习算法与Python实践这个系列主要是参...

机器学习算法与Python实践之(六)二分k均值聚类

机器学习算法与Python实践之(六)二分k均值聚类zouxy09@qq.comhttp://blog.csdn.net/zouxy09        机器学习算法与Python实践这个系列主要是参考...

从最大似然到EM算法浅解

从最大似然到EM算法浅解 zouxy09@qq.com http://blog.csdn.net/zouxy09          机器学习十大算法之一:EM算法。能评得上十大之一,让人听起来觉得挺N...

xgboost入门与实战(原理篇)

xgboost入门与实战(原理篇)前言: xgboost是大规模并行boosted tree的工具,它是目前最快最好的开源boosted tree工具包,比常见的工具包快10倍以上。在数据科学方面...

机器学习系列(1)_逻辑回归初步

1、总述 逻辑回归是应用非常广泛的一个分类机器学习算法,它将数据拟合到一个logit函数(或者叫做logistic函数)中,从而能够完成对事件发生的概率进行预测。 2、由来     要说逻辑回归,我们...

烦琐的一天

今天没有课,上午全是自习.无聊啊.看了看MSDN上的视频,是特约讲师苏鹏.讲的很不错只是我实践时,用WebPartManager时却出错了!!!在建立与服务器的连接时出错。在连接到 SQL Serve...

逻辑回归

什么是逻辑回归? Logistic回归与多重线性回归实际上有很多相同之处,最大的区别就在于它们的因变量不同,其他的基本都差不多。正是因为如此,这两种回归可以归于同一个家族,即广义线性模型(gener...
  • pakko
  • pakko
  • 2014-07-16 15:42
  • 194928
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:深度学习:神经网络中的前向传播和反向传播算法推导
举报原因:
原因补充:

(最多只允许输入30个字)