吴恩达《机器学习》学习笔记五——逻辑回归

  • 一、 分类(classification)
    • 1.定义
    • 2.阈值
  • 二、 逻辑(logistic)回归假设函数
    • 1.假设的表达式
    • 2.假设表达式的意义
    • 3.决策界限
  • 三、 代价函数
    • 1.平方误差函数的问题
    • 2.logistic回归的代价函数
  • 四、梯度下降法求参数
  • 五、多分类问题
    • 1.介绍
    • 2.“一对多”算法解决多分类问题

课程链接:https://www.bilibili.com/video/BV164411b7dx?from=search&seid=5329376196520099118

前四次笔记算是通过线性回归模型来对机器学习进行了一个入门,下面开始学习第二个模型:逻辑回归,虽带有回归字样,但这却是一个分类算法,从最简单的二分类问题开始。逻辑回归的应用场景更多,而且它是神经网络的一部分基础。

一、 分类(classification)

1.定义

下面是一些二分类的例子,即预测的结果只有两种情况,比如垃圾邮件和正常邮件,有肿瘤和没有肿瘤等。二分类的预测结果可以用0/1两个数来表示,一般没有固定的要求,通常0表示没有某样东西,1表示有某样东西。
当然,除了二分类还有多分类问题,即存在多种预测结果,后面将先讨论清楚二分类问题,然后推广到多分类就很容易理解。

2.阈值

用模型去拟合分类问题的数据,很难得到绝对的0/1值,很可能计算后是处于0到1之间的某个值,而结果却只允许有0/1,所以我们需要一个阈值,当预测值大于阈值时,判定为1,当预测值小于阈值时,判定为0。我们用之前线性回归的模型来解决二分类问题,解释一下阈值:

如上图所示,红色的×是各个数据样本,假设用线性回归模型h(x)=θ ^T x来拟合数据,可能得到如上紫红色的直线,假设此时将阈值设置为0.5,左边四个数据样本经过h(x)预测后的值是小于0.5的,将被判定为0,右边四个数据样本经过h(x)预测后的值是大于0.5的,将被判定为1,这样得到的预测结果正好与真实结果相吻合。阈值如果设置成0.1或者是0.9呢?有些样本将会被判定错误。这就是阈值选择的重要性。

但是显然,用线性回归来拟合二分类有很大问题,如下图:在远处多加入一个数据样本,线性回归拟合后的模型可能就会从紫红色直线变成蓝色直线,而此时再用0.5作为阈值,有两个正样本将会被误判为负样本,所以我们需要更适用于分类问题的新模型。

二、 逻辑(logistic)回归假设函数

1.假设的表达式

之前线性回归的预测结果很可能会大于1或小于0,在结果只能是0/1的分类问题中是不合适的,所以希望找到一个模型使得预测结果在0-1之间。逻辑回归的假设函数如下图所示,是一个复合函数h_θ (x)=g(θ ^ T x),其中,g(z)=1 ⁄(1+e ^ (-z) ),得到h_θ (x)=1 ⁄(1+e ^ (-θ ^T x) )。这个函数又称为sigmoid函数或logistic函数,它的形状如下图所示。

2.假设表达式的意义

h_θ (x)=1 ⁄(1+e ^ (-θ ^T x) )的数学含义是输入x时,预测结果y=1的概率。例如肿瘤分类问题中计算得h_θ (x)=0.7,那就意味着有肿瘤的概率是0.7或70%,这是它的内在含义,更数学的写法是h_θ (x)=p(y=1|x;θ)。这里更数学的推导和解释,可以看深度之眼的西瓜书或统计学习方法的课程,非常详细。深度之眼相关课程推荐

3.决策界限

逻辑回归的假设函数以及预测结果的判定如下所示,预测的结果h(x)如果大于等于0.5,则判定为1,反之判定为0。

那么,什么时候h(x)大于0.5,什么时候小于0.5呢?从sigmoid函数的图像可以看出,当θ ^ T x >0时,h(x)将大于0.5,当θ ^ T x <0时,h(x)将小于0.5。也就是说,当θ ^T x >0时,预测结果为1,反之为0

那什么是决策界限呢?看下面这个例子:
○和×是正负数据样本,它的假设函数为
如何求具体参数值下面再说,假设我们已经求出,分别为-3,1和1。根据刚刚说的,当θ ^T x >0时,预测结果为1,所以当-3+x1+x2>0时,预测y=1。而-3+x1+x2这条直线是划分正负结果的决策关键,所以它称为决策界限。

需要注意的是,决策界限是假设函数的一个属性,由假设函数的参数θ决定,与数据集的分布情况没有关系,即使它没能很好的分类,它也是决策界限,没有很好分类只是假设函数本身没有选好。

再看个稍微复杂一些的例子:

假设有这么一个数据集和假设函数,假设函数的参数已经求出来为-1,0,0,1,1。根据上面所说,如果-1+x1^ 2+x2^ 2>0,则预测结果y=1。而-1+x1^ 2+x2^ 2这个曲线就是决策界限。

一般化的话,就是如下这种情况:复杂的高阶多项式可以得到更复杂的决策界限。

三、 代价函数

回顾一下训练集,假设函数等信息:
假设函数的形式也有了,下面就是如何根据训练集求得参数值的问题。与线性回归问题一样,需要一个代价函数来评判预测结果与真实结果之间的拟合程度。

1.平方误差函数的问题

在线性回归问题中的代价函数如下图所示:

平方误差函数的使用很好地衡量了预测值与真实值之间的拟合程度,但是它不适合用在logistic回归问题上。因为表达式的差异,sigmoid假设函数若使用平方误差作为代价函数,会使得代价函数非凸,而以线性表达式作为假设函数的线性回归问题使用平方误差得到的代价函数则是一个凸函数。

非凸函数与凸函数的图像如下图所示:
从图中可见,若代价函数非凸,使用如梯度下降优化算法优化参数的过程中不能保证能优化到全局最优,很可能停留在局部最优就不动了,而凸函数则可以优化到全局最优。所以对于logistic回归,需要重新找一个代价函数,使之是凸函数,这样才能使用梯度下降法求得最优参数。

2.logistic回归的代价函数

以单样本数据为例,找到的代价函数如下图所示:

我们可以分开看,当y=1时,代价函数如下图所示曲线,从这个曲线可以看出,若预测结果h(x)也为1,那么代价为0,若h(x)趋于0,则代价会非常大。

类似的,当y=0时:

若预测结果h(x)也为0,那么代价为0,若h(x)趋于1,则代价会非常大。可以证明,该代价函数是凸函数,证明可以参考深度之眼的相关课程。

但是这种分段形式的假设函数依然不方便,所以就有了下面这种紧凑的形式:

可以分别把y=0/1代入,得到的结果与分段的形式是一致的。

刚刚都是单个样本的讨论,推广到一般数据集,则变成如下形式:

接下来要做的就是去找到合适的参数值,然后当给定新的输入时,可以预测出相应的输出,如下图所示:

四、梯度下降法求参数

从梯度下降的定义去更新参数,对代价函数求导之后更新如下:

我们观察求导后的结果,这个式子与线性回归模型很相似,但是不同之处在于假设函数h(x)的表达式不同,线性回归和逻辑回归的假设函数分别为如下所示:
所以他们的代价函数也是完全不同的表达式。

除了梯度下降优化算法之外,还有一些高级的优化参数的算法,如下所示:

如共轭梯度、BFGS、L-BFGS等,它们的优点是无需手动选择学习率,更加智能,而且速度会比梯度下降更快;相应的缺点就是算法会更复杂。

五、多分类问题

1.介绍

多分类问题举几个例子:

数据集的差异:(以二分类与三分类为例)

2.“一对多”算法解决多分类问题

借用二元分类的思想,以一个三分类问题为例,可以分成三个二分类问题,每个二分类问题选一个类别作为正类,其余两类全部作为负类,如下图所示:

这样可以拟合出三个假设函数,此时如果有新的输入,则分别送入三个分类器分类,计算得它是每个类别的概率,取概率值最大的那个类别作为它的输出,这也是最可信的、效果最好的预测

吴恩达《机器学习》学习笔记五——逻辑回归相关推荐

  1. 吴恩达机器学习学习笔记第七章:逻辑回归

    分类Classification分为正类和负类 (规定谁是正谁是负无所谓) 吴恩达老师举例几个例子:判断邮箱是否是垃圾邮箱 一个在线交易是否是诈骗 一个肿瘤是良性的还是恶性 如果我们用之前学习的lin ...

  2. 逻辑回归python sigmoid(z)_python实现吴恩达机器学习练习2(逻辑回归)-data1

    python实现吴恩达机器学习练习2(逻辑回归)-data1 这篇是第一个数据集:这部分练习中,你将建立一个预测学生是否被大学录取的逻辑回归模型. 假如一所大学会每个报名学生进行两项入学考试,根据两项 ...

  3. 吴恩达机器学习--学习笔记

    1. Introduction 1.1 Welcome 如今机器学习被大规模应用于: 数据挖掘(网站点击,医学记录,生物学,工程) 一些无法通过编程实现的功能(自动驾驶,手写识别,NLP,CV) se ...

  4. 吴恩达机器学习学习笔记第二章:单变量线性回归

    模型描述: 训练集(training set):是监督学习中独有的概念,由我们人喂给电脑的既有既有特征x又有结果y的数据.下图x是房子面积 ,y是房屋对应的价格 符号记法解释: (x^(1),y^(1 ...

  5. 吴恩达“机器学习”——学习笔记六

    最优边界分类器(最大间隔分类器)(续学习笔记五) 在线性分类器中,我们要找到一个边界线,使得几何间隔最大,即: ||w||在几何间隔中是无关紧要的,这里取1,使得几何间距和函数间距一致. 但是这个并不 ...

  6. 吴恩达机器学习(四)逻辑回归(二分类与多分类)

    目录 0. 前言 1. 假设函数(Hypothesis) 2. 决策边界(Decision Boundary) 3. 代价函数(Cost Funciton) 4. 梯度下降(Gradient Desc ...

  7. 吴恩达机器学习学习笔记第九章:神经网络学习

    课时①非线性假设 通过说Linear Regression和logistic Regression的不足来引入神经网络: 安卓告诉我们神经网络并不是什么新玩意儿,老早就有了,但是他经过了一段低迷期直到 ...

  8. 吴恩达机器学习学习笔记第八章:正则化

    1.过拟合问题 如图所示是线性回归的三种情况: 图一是欠拟合 数据点没有全部被(另一种说法这个算法有高偏差) 图二的二次函数来拟合效果很不错 图三用了4次多项式有5个参数 但是曲线歪歪扭扭的 显得非常 ...

  9. 吴恩达机器学习第二次作业——逻辑回归

    逻辑回归 一.逻辑回归 1,数据可视化 2,sigmoid函数,逻辑回归模型 3,代价函数以及梯度 4,评价逻辑回归 二.正规化逻辑回归 1,数据可视化 2,特征映射(Feature Mapping) ...

  10. 吴恩达机器学习作业2:逻辑回归(Python实现)

    逻辑回归 在训练的初始阶段,将要构建一个逻辑回归模型来预测,某个学生是否被大学录取.设想你是大学相关部分的管理者,想通过申请学生两次测试的评分,来决定他们是否被录取.现在你拥有之前申请学生的可以用于训 ...

最新文章

  1. C# 将数据写入DataGridView 中并显示
  2. STL标准容器类简介
  3. 机器学习算法(优化)之一:梯度下降算法、随机梯度下降(应用于线性回归、Logistic回归等等)...
  4. SQL重复记录查询(转载)
  5. python数据标准化1002无标题,Scikit标准化互信息学习给我错误的值
  6. ccf命令行选项只能用c实现_CCF-201403-3-命令行选项
  7. TVP5158的多路复用技术
  8. /usr/bin/ld: 找不到 -lmsc----解决方案
  9. 挖空的煤矿能否储存石油
  10. java二进制文件转xml_简单Java类与XML之间的转换
  11. Jetson开发实战记录(二):Jetson Xavier NX版本区别以及烧录系统
  12. Tbschedule源码通读
  13. jquery实现点击图片放大功能
  14. J2SE-Java帝国的诞生
  15. 5G核心网技术基础自学系列 | EPC的主要功能
  16. 2022盘点工作室常用的API数据接口开发平台
  17. elasticSearch API
  18. 化工集团公司数字化转型有力抓手“数字化示范项目建设
  19. 如何用CSS实现角标
  20. excel求方差和标准差的函数_[Excel]如何用Excel计算标准差(stdev.S和stdev.P)

热门文章

  1. MySQL - 创建存储过程Procedure,Do While实现循环
  2. python生成json_Python 生成json文件
  3. 中文电子病例命名实体识别项目
  4. day-17 包与模块
  5. laravel的重定向
  6. spring整合ehcache2.5.2缓存异常-- net.sf.ehcache.CacheException
  7. LinkedList源码详解
  8. Django ORM 数据库操作
  9. git Please move or remove them before you can merge. 错误解决方案
  10. select,epoll的比较