6.1  分类问题

6.2  假说表示

6.3  判定边界

6.4  代价函数

6.5  简化的成本函数和梯度下降

6.6  高级优化

6.7  多类分类:一个对所有


6.1  分类问题

在分类问题中,我们尝试预测的结果是否属于某一个类(例如正确或错误)。分类问题的例子有:判断一封电子邮件是否是垃圾邮件;判断一次金融交易是否是欺诈等等。

我们从二元的分类问题开始讨论。

      我们将因变量(dependant variable)可能属于的两个类分别称为负向类(negative class)和 正向类(positive class),

      则因变量

其中0表示负向类,1表示正向类。


6.2  假说表示

回顾在一开始提到的乳腺癌分类问题,可以用线性回归的方法求出适合数据的一条直线:

(原点到0.5的直线)

根据线性回归模型只能预测连续的值,对于这样的分类问题,需要输出0或1, 可以这样预测:

hθ = θTx

当 hθ 大于等于 0.5 时,预测 y=1

当 hθ 小于 0.5 时,     预测 y=0

对于上图所示的数据,这样的一个线性模型似乎能很好地完成分类任务。
 
假使又观测到一个非常大尺寸的恶性肿瘤,将其作为实例加入到训练集中来,这将获得一条新的直线。

这时,再使用 0.5 作为阀值来预测肿瘤是良性还是恶性便不合适了。可以看出,线性回归模型,因为其预测的值可以超越[0,1]的范围,并不适合解决这样的问题。

所以引入一个新的模型,逻辑回归,该模型的输出变量范围始终在 0 和 1 之间。 逻辑回归模型的假设是:

其中:

X  代表特征向量

g  代表逻辑函数(logistic function)是一个常用的逻辑函数为 S 形函数(Sigmoid function),

公式为:

该函数的图像为:

合起来,得到逻辑回归模型的假设: 对模型的理解:

hθ(x)的作用是,对于给定的输入变量,根据选择的参数计算输出变量=1 的可能性

(estimated probablity)即 

EXP,如果对于给定的 x,通过已经确定的参数计算得出 hθ(x)=0.7,则表示有 70%的几 率 y 为正向类,相应地 y 为负向类的几率为 1-0.7=0.3。


6.3  判定边界

在逻辑回归中,我们预测:

当 hθ 大于等于0.5时,预测 y=1

当 hθ 小于 0.5时,预测 y=0

根据上面绘制出的 S 形函数图像,我们知道当

z=0 时 g(z)=0.5

z>0 时 g(z)>0.5

z<0 时 g(z)<0.5

即:

     

现在假设有一个模型: 并且参数 θ 是向量[-3 1 1]。 则当-3+x1+x2(x0 = 1)>= 0,即 x1+x2 >= 3  时,模型将预测 y=1。

可以绘制直线 x1+x2=3,这条线便是我们模型的分界线,将预测为 1 的区域和预测 为 0 的区域分隔开。

假使我们的数据呈现这样的分布情况,怎样的模型才能适合呢?

因为需要用曲线才能分隔 y=0  的区域和 y=1  的区域,我们需要二次方特征:(三次方特征是先上升再衰弱) 假设= -1)

则得到的判定边界恰好是圆点在原点且半径为 1 的圆形。

注:假设本身及其参数θ确定了决策边界,而不是训练集。只要我们给定了参数向量θ,决策边界就确定了。我们不是用训练集来定义的决策边界,而是我们用训练集来拟合参数θ,一旦你有参数θ它就确定了决策边界。


6.4  代价函数

对于线性回归模型,我们定义的代价函数是所有模型误差的平方和。理论上来说,也可以对逻辑回归模型沿用这个定义,但是问题在于,当我们将

这意味着这样的代价函数有许多局部最小值,这将影响梯度下降算法寻找全局最小值。

因此我们重新定义逻辑回归的代价函数为:

其中

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

这样构建的 Cost(hθ(x),y)函数的特点是:

当实际的 y=1  且 hθ 也为 1  时误差为 0,当 y=1 但 hθ 不为 1 时误差随着 hθ 的变小而变大;

当实际的 y=0  且 hθ 也为 0  时代价为 0,当 y=0 但 hθ 不为 0 时误差随着 hθ 的变大而变大。

将构建的 Cost(hθ(x),y)简化如下:

带入代价函数得到:

在得到这样一个代价函数以后,便可以用梯度下降算法来求得能使代价函数最小的 参数了。算法为:

求导后得到:

注:

  1. 虽然得到的梯度下降算法表面上看上去与线性回归的梯度下降算法一样,但是这里的
  2. 另外,在运行梯度下降算法前,进行特征缩放依旧是非常必要的。
  3. 一些梯度下降算法之外的选择: 除了梯度下降算法以外,还有一些常被用来令代价函 数最小的算法,这些算法更加复杂和优越,而且通常不需要人工选择学习率,通常比梯度下降算法要更加快速。这些算法有:共轭梯度(Conjugate Gradient),局部优化法(Broyden fletcher goldfarb shann,BFGS)和有限内存局部优化法(LBFGS) 。fminunc 是 matlab 和 octave 中都带的一个最小值优化函数,使用时我们需要提供代价函数和每个参数的求导。

6.5  简化的成本函数和梯度下降

多类分类问题中,训练集中有多个类(>2),我们无法仅仅用一个二元变量(0 或 1) 来做判断依据。例如要预测天气情况分四种类型:晴天、多云、下雨或下雪。

下面是一个多类分类问题可能的情况:

一种解决这类问题的途径是采用一对多(One-vs-All)方法。在一对多方法中,将多类分类问题转化成二元分类问题。

为了能实现这样的转变,将多个类中的一个类标记为正向类(y=1),然后将其他所有类都标记为负向类,这个模型记作

最后得到一系列的模型简记为:

最后,在我们需要做预测时,我们将所有的分类机都运行一遍,然后对每一个输入变量, 都选择最高可能性的输出变量,如下图:


6.6  高级优化

6.7  多类分类:一个对所有

Ng第六课:逻辑回归(Logistic Regression)的更多相关文章

  1. Coursera公开课笔记: 斯坦福大学机器学习第六课“逻辑回归(Logistic Regression)” 清晰讲解logistic-good!!!!!!

    原文:http://52opencourse.com/125/coursera%E5%85%AC%E5%BC%80%E8%AF%BE%E7%AC%94%E8%AE%B0-%E6%96%AF%E5%9D ...

  2. 机器学习 (三) 逻辑回归 Logistic Regression

    文章内容均来自斯坦福大学的Andrew Ng教授讲解的Machine Learning课程,本文是针对该课程的个人学习笔记,如有疏漏,请以原课程所讲述内容为准.感谢博主Rachel Zhang 的个人 ...

  3. 机器学习总结之逻辑回归Logistic Regression

    机器学习总结之逻辑回归Logistic Regression 逻辑回归logistic regression,虽然名字是回归,但是实际上它是处理分类问题的算法.简单的说回归问题和分类问题如下: 回归问 ...

  4. 机器学习(四)--------逻辑回归(Logistic Regression)

    逻辑回归(Logistic Regression) 线性回归用来预测,逻辑回归用来分类. 线性回归是拟合函数,逻辑回归是预测函数 逻辑回归就是分类. 分类问题用线性方程是不行的   线性方程拟合的是连 ...

  5. 机器学习入门11 - 逻辑回归 (Logistic Regression)

    原文链接:https://developers.google.com/machine-learning/crash-course/logistic-regression/ 逻辑回归会生成一个介于 0 ...

  6. 机器学习方法(五):逻辑回归Logistic Regression,Softmax Regression

    欢迎转载,转载请注明:本文出自Bin的专栏blog.csdn.net/xbinworld. 技术交流QQ群:433250724,欢迎对算法.技术.应用感兴趣的同学加入. 前面介绍过线性回归的基本知识, ...

  7. ML 逻辑回归 Logistic Regression

    逻辑回归 Logistic Regression 1 分类 Classification 首先我们来看看使用线性回归来解决分类会出现的问题.下图中,我们加入了一个训练集,产生的新的假设函数使得我们进行 ...

  8. 逻辑回归(Logistic Regression)详解,公式推导及代码实现

    逻辑回归(Logistic Regression) 什么是逻辑回归: 逻辑回归(Logistic Regression)是一种基于概率的模式识别算法,虽然名字中带"回归",但实际上 ...

  9. 斯坦福第六课:逻辑回归(Logistic Regression)

    6.1  分类问题 6.2  假说表示 6.3  判定边界 6.4  代价函数 6.5  简化的成本函数和梯度下降 6.6  高级优化 6.7  多类分类:一个对所有 6.1  分类问题 在分类问题中 ...

随机推荐

  1. VS2015中C#版本6.0的新特性

    [z]http://www.cnblogs.com/xszjk/articles/6417173.html [z]https://www.cnblogs.com/qixu/p/6047229.html ...

  2. [转]C#中HttpClient使用注意:预热与长连接

    最近在测试一个第三方API,准备集成在我们的网站应用中.API的调用使用的是.NET中的HttpClient,由于这个API会在关键业务中用到,对调用API的整体响应速度有严格要求,所以对HttpCl ...

  3. 正则表达式 re sys os random time 模块

    今天学习内容如下: 1.正则表达式 百度正则表达式在线测试,可以练习 正则表达式本身也和python没有什么关系,就是匹配字符串内容的一种规则.官方定义:正则表达式是对字符串操作的一种逻辑公式,就是用 ...

  4. c# mac地址 和http://xx.xx.xx/ 正则表达式匹配

    Mac  :^([0-9a-fA-F]{2})(([/\s:][0-9a-fA-F]{2}){5})$ C# 书写方式 一下是允许mac中间间隔符是“:”或者“-”两种输入方式 并且我把上边的正则表达 ...

  5. 自定义标签tld的使用

    在JSP中使用标签是很平常的事情,在制作自定义标签时,通常都需要写tld文件来定义标签的各种属性,对应的Java类,前缀等等.标签与tld文件紧紧相连,那么,到底应该怎么放置tld文件?在web.xm ...

  6. Liunx cp

    功能: 复制文件或目录 使用权限:所有使用者说明: cp指令用于复制文件或目录,如同时指定两个以上的文件或目录,且最后的目的地是一个已经存在的目录,则它会把前面指定的所有文件或目录复制到此目录中.若同 ...

  7. kvm介绍 转载

    KVM 介绍(1):简介及安装 学习 KVM 的系列文章: (1)介绍和安装 (2)CPU 和 内存虚拟化 (3)I/O QEMU 全虚拟化和准虚拟化(Para-virtulizaiton) (4)I ...

  8. GM Tech 2 works with Hummer Yes or No

    This is about GM Tech 2 scan tool for Hummer troubleshooting and programming. Can I have a cheap Tec ...

  9. Hotspot参数分析

    -XX:+HeapDumpOnOutOfMemoryError 让虚拟机在出现内存溢出异常时Dump出当前的内存堆转储快照以便事后进行分析 -Xmx与-Xms 虚拟机堆参数 -Xoss 设置本地方法栈 ...

  10. socket 长连接

    实现: 长连接的维持,是要客户端程序,定时向服务端程序,发送一个维持连接包的. 如果,长时间未发送维持连接包,服务端程序将断开连接. 服务端: 由于客户端会定时(keepAliveDelay毫秒)发送 ...