这一节主要介绍的是决策界限(decision boundary)的概念,这个概念可以帮组我们更好地理解逻辑回归的假设函数在计算什么。

首先回忆一下上次写的公式。

现在让我们进一步了解这个假设函数在什么时候会将y预测为1,什么时候会将y预测为0。并且更好地理解假设函数的形状,特别是当我们的数据有多个特征值时。具体地说,这个假设函数输出的是给定x和参数θ时,y=1的估计概率。

所以,如果我们想预测y=1还是等于0。该假设函数输出y=1的概率大于等于0.5,此时预测的为y=1,小于0.5预测的就是y=0。(实际上,当输出概率为0.5时,可以预测为y=1,也可以预测为y=0)

仔细观察sigmoid函数图像,就可以发现只要z ≥ 0,g(z)就大于等于0.5,因此在曲线图的右半边,g的取值都是大于等于0.5的。

由于逻辑回归的假设函数hθ(x)=g(θTx),所以只要θTx ≥ 0,那么hθ(x)就会大于等于0.5,此时假设函数将会预测为y=1。同样,我们考虑假设函数预测为y=0的情况。当hθ(x) < 0.5的时候,就会预测y=0。而只要θTx < 0,那么g(θTx)就会小于0.5,即hθ(x)就会小于0.5。

对上述做个小结:

1.我们预测y=0还是y=1取决于输出的概率值。(概率大于等于0.5预测y=1,小于0.5预测y=0)

2.想要预测结果为 y=1,就要保证θTx ≥ 于0;想要预测结果为 y=0,就要保证θTx < 0。

接下来,假设我们有一个训练集。我们的假设函数是hθ(x)=g(θ01x12x2),我们将在下一节讨论如何拟合此模型中的参数,此时假设我们已经拟合好了参数。在这里,我们选这里θ0=-3,θ1=1,θ2=1。这意味着此时的参数向量θ=[-3,1,1]T。接下来,尝试找出该假设函数何时将预测y=1,何时将预测y=0。

根据之前小结的,y=1的概率大于等于0.5时,就预测y=1,小于0.5时就预测y=0。换句话说就是:想要预测结果为y=1,就要保证θTx ≥ 0;想要预测结果为y=0,就要保证θTx < 0。而在这个例子中θTx就是-3+x1+x2。所以,在这个例子中,只要 -3+x1+x≥ 0,那么预测的就会是y=1,-3+x1+x2 < 0,那么预测的就会是y=0。当然也可以将 -3+x1+x≥ 0 改写为 x1+x≥ 3。

接下来我们可以在图像上观察这个式子。

图上洋红色的直线为x1+x2 = 3 。该线上方的区域为预测y=1的区域,下方区域为预测y=0的区域。这条线被称为决策边界。具体地说,x1+x= 3这条直线对应的一系列的点对应的是hθ(x)=0.5的点。决策边界将整个平面分成了两个部分。一部分区域预测y=1,另一部分预测y=0。

决策边界是假设函数的一个属性,它包括参数θ0、θ1和θ2。在上图中,是画了训练的数据集的。需要明确的是:即使没有画出数据集,只要参数给定,这条决策边界以及两部分区域都是确定的。它们都是假设函数的属性,取决于参数,而不是取决于数据集。

接下来,我们看一个更复杂的例子。在图中x表示的是正样本,圆圈表示的是负样本。

现在的问题是:当给定一个这样的数据集之后,我们要如何使用逻辑回归来拟合这些数据。

之前,当我们讲解多项式回归或线性回归时,我们谈到了可以在特征中添加额外的高阶多项式项。同样的,我们也可以对逻辑回归使用同样的方法。具体地说,假设现在的假设函数是hθ(x)=g(θ01x12x23x124x22)。现在添加了两个额外的特征x1222,所以现在有五个参数,从θ0一直到θ4。现在假设θ0=-1,θ1=0,θ2=0,θ3=1,θ4=1。这意味着此时的参数向量θ=[-1,0,0,1,1]T。根据之前的讨论,这意味着当-1+x12+2≥ 0时,将预测y=1,当-1+x12+22  < 0时,将预测y=0。同样的,-1+x12+2≥ 0 可以写成 x12+2≥ 1。此时的决策边界就为x12+2= 1。

决策边界如图所示。此时圈外的区域为预测y=1的区域,圈内的区域为预测y=0的区域。

通过在特征中增加这些复杂的多项式,可以得到更复杂的决策边界。

再次强调:

决策边界不是训练集的属性,是假设本身和其参数的属性。只要给定了参数向量θ,决策边界就可以确定。我们不是用训练集来确定决策边界,而是用训练集来拟合参数。

当我们有更高阶多项式,我们得到的决策边界也是更复杂的。逻辑回归可以用于寻找决策边界。

[斯坦福大学2014机器学习教程笔记]第六章-决策界限(decision boundary)的更多相关文章

  1. [斯坦福大学2014机器学习教程笔记]第六章-代价函数(Cost function)

    在这节中主要讲的是如何更好地拟合逻辑回归模型的参数θ.具体来说,要定义用来拟合参数的优化目标或者叫代价函数,这便是监督学习问题中的逻辑回归模型的拟合问题. 我们有一个训练集,训练集中有m个训练样本:{ ...

  2. [斯坦福大学2014机器学习教程笔记]第五章-控制语句:for,while,if语句

    在本节中,我们将学习如何为Octave程序写控制语句. 首先,我们先学习如何使用for循环.我们将v设为一个10行1列的零向量. 接着,我们写一个for循环,让i等于1到10.写出来就是for i = ...

  3. IOS学习之斯坦福大学IOS开发课程笔记(第六课)

    转载请注明出处 http://blog.csdn.net/pony_maggie/article/details/28398697 作者:小马 这节课主要讲述多个MVC是怎样协同工作的.到眼下为止.全 ...

  4. Deep Learning 8_深度学习UFLDL教程:Stacked Autocoders and Implement deep networks for digit classification_Exercise(斯坦福大学深度学习教程)

    前言 1.理论知识:UFLDL教程.Deep learning:十六(deep networks) 2.实验环境:win7, matlab2015b,16G内存,2T硬盘 3.实验内容:Exercis ...

  5. Deep Learning 19_深度学习UFLDL教程:Convolutional Neural Network_Exercise(斯坦福大学深度学习教程)

    理论知识:Optimization: Stochastic Gradient Descent和Convolutional Neural Network CNN卷积神经网络推导和实现.Deep lear ...

  6. Deep Learning 12_深度学习UFLDL教程:Sparse Coding_exercise(斯坦福大学深度学习教程)

    前言 理论知识:UFLDL教程.Deep learning:二十六(Sparse coding简单理解).Deep learning:二十七(Sparse coding中关于矩阵的范数求导).Deep ...

  7. Deep Learning 13_深度学习UFLDL教程:Independent Component Analysis_Exercise(斯坦福大学深度学习教程)

    前言 理论知识:UFLDL教程.Deep learning:三十三(ICA模型).Deep learning:三十九(ICA模型练习) 实验环境:win7, matlab2015b,16G内存,2T机 ...

  8. Deep Learning 11_深度学习UFLDL教程:数据预处理(斯坦福大学深度学习教程)

    理论知识:UFLDL数据预处理和http://www.cnblogs.com/tornadomeet/archive/2013/04/20/3033149.html 数据预处理是深度学习中非常重要的一 ...

  9. Deep Learning 10_深度学习UFLDL教程:Convolution and Pooling_exercise(斯坦福大学深度学习教程)

    前言 理论知识:UFLDL教程和http://www.cnblogs.com/tornadomeet/archive/2013/04/09/3009830.html 实验环境:win7, matlab ...

随机推荐

  1. 使用python,pytorch求海森Hessian矩阵

    考虑一个函数$y=f(\textbf{x}) (R^n\rightarrow R)$,y的Hessian矩阵定义如下: 考虑一个函数:$$f(x)=b^Tx+\frac{1}{2}x^{T}Ax\\其 ...

  2. 使用Vim写LaTeX代码(Vim+Vimtex+Skim)

    最近在写博客的时候发现对数学公式的支持并不好,于是就想寻找一个解决方案.我本身是一个爱折腾的人,有时尽管有现成的解决方案我有事也不愿意去用.于是多方查找资料,想寻求一个自定义的解决方案,最终把自己的目 ...

  3. view中显示部分区域

    在android中有时候要求只显示view的部分区域,这个时候就需要对当前的view进行剪裁的操作.在android中剪裁当前的view的有两种方法:一种是直接截取view,第二种是通过Outline ...

  4. C# 加密、解密PDF文档(基于Spire.Cloud.SDK for .NET)

    Spire.Cloud.SDK for .NET提供了接口PdfSecurityApi可用于加密.解密PDF文档.本文将通过C#代码演示具体加密及解密方法. 使用工具: Spire.Cloud.SDK ...

  5. ORA-12514:监听程序无法识别

    使用plsql远程登录oracle数据库时,出现无法识别监听程序的错误.很大机率是配置文件出错. 配置文件如下: listener.ora是服务器端用的,oracle监听程序,就是读的这个文件,里面有 ...

  6. Jmeter各种组件

    断言 用于检查测试中得到的响应数据等是否符合预期,用以保证性能测试过程中的数据交互与预期一致 参数化关联 参数化:指对每次发起的请求,参数名称相同,参数值进行替换,如登录三次系统,每次用不同的用户名和 ...

  7. SpringBoot — HelloWorld开发部署

    springboot官方推荐使用jdk1.8 一.配置pom.xml 二.Application.java 三.HelloController.java 四.项目运行: Application.jav ...

  8. Flask-install-python2.6

    命令: # 安装virtualenv $ sudo yum install python-setuptools $ sudo easy_install virtualenv OR sudo pip i ...

  9. Centos7上设置zookeeper自启动

    版权声明:本文为博主原创文章,遵循 CC 4.0 by-sa 版权协议,转载请附上原文出处链接和本声明. 本文链接:https://blog.csdn.net/zhouzhiwengang/artic ...

  10. 关于SQL SERVER 的日期格式化

    --日期格式化Select CONVERT(varchar(100), GETDATE(), 0): 05 16 2006 10:57AM Select CONVERT(varchar(100), G ...