逻辑回归算法

原创 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实践之(七)逻辑回归(Logistic Regression)

机器学习算法与Python实践之(七)逻辑回归(Logistic Regression)zouxy09@qq.comhttp://blog.csdn.net/zouxy09        机器学习算法...
  • zouxy09
  • zouxy09
  • 2014年03月02日 23:49
  • 191752

机器学习算法--逻辑回归原理介绍

本博文针对逻辑回归的原理进行了介绍:逻辑回归就是这样的一个过程:面对一个回归或者分类问题,建立代价函数,然后通过优化方法迭代求解出最优的模型参数,然后测试验证我们这个求解的模型的好坏。Logistic...

逻辑回归

什么是逻辑回归? Logistic回归与多重线性回归实际上有很多相同之处,最大的区别就在于它们的因变量不同,其他的基本都差不多。正是因为如此,这两种回归可以归于同一个家族,即广义线性模型(gener...
  • pakko
  • pakko
  • 2014年07月16日 15:42
  • 206964

机器学习十大算法系列(一)——逻辑回归

逻辑回归 梯度下降 梯度上升

Logistic Regression--逻辑回归算法汇总

Logistic Regression--逻辑回归算法汇总** 转自别处 有很多与此类似的文章  也不知道谁是原创 因原文由少于错误 所以下文对此有修改并且做了适当的重点标记(横线见的内容没大明白 ...

Delphi7高级应用开发随书源码

  • 2003年04月30日 00:00
  • 676KB
  • 下载

机器学习十大算法之逻辑回归

逻辑回归其实是一个分类算法而不是回归算法。通常是利用已知的自变量来预测一个离散型因变量的值(像二进制值0/1,是/否,真/假)。简单来说,它就是通过拟合一个逻辑函数(logit fuction)来预测...

逻辑回归算法-CSDN

Logistic Regression算法分析及Java代码只是从以下几个方面学习,现在还只是学习阶段,转载分析别人的文章 Cost 函数原理,及似然函数相关推导 Sigmoid 函数的原理(为什么用...

机器学习算法总结--线性回归和逻辑回归

1. 线性回归简述在统计学中,线性回归(Linear Regression)是利用称为线性回归方程的最小平方函数对一个或多个自变量和因变量之间关系进行建模的一种回归分析。这种函数是一个或多个称为回归系...
  • lc013
  • lc013
  • 2017年02月12日 19:02
  • 1508

Logistic Regression--逻辑回归算法汇总

初步接触 谓LR分类器(Logistic Regression Classifier),并没有什么神秘的。在分类的情形下,经过学习之后的LR分类器其实就是一组权值w0,w1,...,wm.  ...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:逻辑回归算法
举报原因:
原因补充:

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