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

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

  • 一、 分类(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.“一对多”算法解决多分类问题

借用二元分类的思想,以一个三分类问题为例,可以分成三个二分类问题,每个二分类问题选一个类别作为正类,其余两类全部作为负类,如下图所示:
在这里插入图片描述
这样可以拟合出三个假设函数,此时如果有新的输入,则分别送入三个分类器分类,计算得它是每个类别的概率,取概率值最大的那个类别作为它的输出,这也是最可信的、效果最好的预测
在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/491766.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

协方差与相关系数

定义&#xff1a; 协方差用于衡量两个变量的总体误差。而方差是协方差的一种特殊情况&#xff0c;即当两个变量是相同的情况。 期望值分别为E[X]与E[Y]的两个实随机变量X与Y之间的协方差Cov(X,Y)定义为&#xff1a; 如果两个变量的变化趋势一致&#xff0c;也就是说如果其中一…

吴恩达《机器学习》学习笔记六——过拟合与正则化

吴恩达《机器学习》学习笔记六——过拟合与正则化一、 过拟合问题1.线性回归过拟合问题2.逻辑回归过拟合问题3.过拟合的解决二、 正则化后的代价函数1.正则化思想2.实际使用的正则化三、 正则化的线性回归1.梯度下降的情况2.正规方程的情况四、 正则化的逻辑回归1.梯度下降的情…

Swift - 数组排序方法(附样例)

下面通过一个样例演示如何对数组元素进行排序。数组内为自定义用户对象&#xff0c;最终要实现按用户名排序&#xff0c;数据如下&#xff1a; 1234var userList [UserInfo]()userList.append(UserInfo(name: "张三", phone: "4234"))userList.append(Use…

5G时代,智能工厂迎来4大改变!

来源&#xff1a;亿欧网作为新一代移动通信技术&#xff0c;5G技术切合了传统制造企业智能制造转型对无线网络的应用需求&#xff0c;能满足工业环境下设备互联和远程交互应用需求。在物联网、工业自动化控制、物流追踪、工业AR、云化机器人等工业应用领域&#xff0c;5G技术起…

主成分分析PCA以及特征值和特征向量的意义

定义&#xff1a; 主成分分析&#xff08;Principal Component Analysis&#xff0c;PCA&#xff09;&#xff0c; 是一种统计方法。通过正交变换将一组可能存在相关性的变量转换为一组线性不相关的变量&#xff0c;转换后的这组变量叫主成分。PCA的思想是将n维特征映射到k维上…

吴恩达《机器学习》学习笔记七——逻辑回归(二分类)代码

吴恩达《机器学习》学习笔记七——逻辑回归&#xff08;二分类&#xff09;代码一、无正则项的逻辑回归1.问题描述2.导入模块3.准备数据4.假设函数5.代价函数6.梯度下降7.拟合参数8.用训练集预测和验证9.寻找决策边界二、正则化逻辑回归1.准备数据2.特征映射3.正则化代价函数4.…

需要自己调研的框架,以及需要学习的内容

_webView 图文解析需要学习 Core Text 来解决图文混合的xml文件 项目中用到哪些数据持久化&#xff0c;什么场景下使用&#xff1f; http://www.cocoachina.com/ios/20150720/12610.html 解决问题的网站 CSDN.NETCocoaChina51CTO技术论坛特酷吧国外it技术论坛stack overflow 需…

Python获得一篇文档的不重复词列表并创建词向量

获得一篇文档的不重复词列表&#xff1a; def loadDataSet():postingList [[my, dog, has, flea, problems, help, please],[maybe, not, take, him, to, dog, park, stupid],[my, dalmation, is, so, cute, I, love, him],[stop, posting, stupid, worthless, garbage],[mr,…

从认知学到进化论,详述强化学习两大最新突破

来源&#xff1a;大数据文摘深层强化学习&#xff08;deep RL&#xff09;近年来在人工智能方面取得了令人瞩目的进步&#xff0c;在Atari游戏、围棋及无限制扑克等领域战胜了人类。通过将表征学习与奖励驱动行为相结合&#xff0c;深层强化学习又引发了心理学和神经科学领域的…

Python实现一个数组除以一个数

如果直接用python的一个list除以一个数&#xff0c;会报错&#xff1a; a [1.0, 1.0, 1.0] c a/3 print(c) TypeError: unsupported operand type(s) for /: list and int 使用Numpy可以轻松做到&#xff1a; import numpy as npa np.array([1,1,1]) c a/3 print(c)

吴恩达《机器学习》学习笔记九——神经网络相关(1)

吴恩达《机器学习》学习笔记九——神经网络相关&#xff08;1&#xff09;一、 非线性假设的问题二、 神经网络相关知识1.神经网络的大致历史2.神经网络的表示3.前向传播&#xff1a;向量化表示三、 例子与直觉理解1.问题描述&#xff1a;异或XOR、同或XNOR2.单个神经元如何计算…

刚刚,科学家发现了一大堆解释人类进化的基因...

图片来源&#xff1a;《Nature Genetics》来源&#xff1a;中国生物技术网 5月27日发表在《Nature Genetics》上的一项新研究发现&#xff0c; 以前被认为在不同生物体中具有相似作用的数十种基因&#xff0c;实际上是人类独有的&#xff0c; 这或许有助于解释我们这个物种是如…

Android数据存储——SQLite数据库(模板)

本篇整合Android使用数据库&#xff0c;要保存一个实体类的样本。 首先看一下数据库语句&#xff1a; ORM:关系对象映射 添加数据&#xff1a; ContentValues values new ContentValues();values.put("name", "小丽");values.put("phone", &qu…

Python切分文本(将文本文档切分为词列表)

对于一个句子&#xff0c;一种简单的方法是使用split() a This is an apple. Do you like apple? b a.split() print(b) # [This, is, an, apple., Do, you, like, apple?] 可以看到切分结果不错&#xff0c;但标点符号也当成了词的一部分&#xff0c;可以使用正则表达式…

吴恩达《机器学习》学习笔记八——逻辑回归(多分类)代码

吴恩达《机器学习》笔记八——逻辑回归&#xff08;多分类&#xff09;代码导入模块及加载数据sigmoid函数与假设函数代价函数梯度下降一对多分类预测验证课程链接&#xff1a;https://www.bilibili.com/video/BV164411b7dx?fromsearch&seid5329376196520099118 之前笔记…

DeepMind 综述深度强化学习:智能体和人类相似度竟然如此高!

来源&#xff1a;AI科技评论近年来&#xff0c;深度强化学习&#xff08;Deep reinforcement learning&#xff09;方法在人工智能方面取得了瞩目的成就&#xff0c;从 Atari 游戏、到围棋、再到无限制扑克等领域&#xff0c;AI 的表现都大大超越了专业选手&#xff0c;这一进展…

Python随机选择一部分训练样本作为测试样本

假设训练样本有30个&#xff0c;从训练样本中随机获得10个作为测试样本&#xff0c;剩下20个继续作为训练样本 import numpy as nptrainingSet list(range(30)) # 训练样本下标 testSet [] for i in range(10):randIndex int(np.random.uniform(0, len(training…

吴恩达《机器学习》学习笔记十——神经网络相关(2)

吴恩达《机器学习》学习笔记十——神经网络相关&#xff08;2&#xff09;一、 代价函数二、 反向传播算法三、 理解反向传播算法四、 梯度检测五、 随机初始化1.全部初始化为0的问题2.随机初始化的思想六、 神经网络算法整体流程1.选择网络具体架构2.训练神经网络课程链接&…

Ajax跨域请求解决方案——jsonp

转自&#xff1a;http://www.cnblogs.com/dowinning/archive/2012/04/19/json-jsonp-jquery.html 1、一个众所周知的问题&#xff0c;Ajax直接请求普通文件存在跨域无权限访问的问题&#xff0c;甭管你是静态页面、动态网页、web服务、WCF&#xff0c;只要是跨域请求&#xff0…

MATLAB的Kmeans函数实现聚类

转自https://blog.csdn.net/a493823882/article/details/79282425 使用方法&#xff1a; Idxkmeans(X,K) [Idx,C]kmeans(X,K) [Idx,C,sumD]kmeans(X,K) [Idx,C,sumD,D]kmeans(X,K) […]Kmeans(…,’Param1’,Val1,’Param2’,Val2,…)各输入…