【吴恩达机器学习笔记】逻辑回归

目录

前言

一、逻辑回归算法介绍

背景介绍:

逻辑回归算法:

二、算法假说表示

三、决策边界

四、逻辑回归算法的代价函数

四、简化、推导代价函数

五、逻辑回归与多类别分类

前言

在本节,我们开始讨论分类问题。


一、逻辑回归算法介绍

背景介绍:

在分类问题中,我们要预测的变量 𝑦 是离散的。在分类问题中,我们尝试预测的是结果是否属于某一个类(例如正确或错误)。分类问题的例子有:判断一封电子邮件是否是垃圾邮件;判断一次金融交易是否是欺诈;之前我们也谈到了肿瘤分类问题的例子,区别一个肿瘤是恶性的还是良性的。
因此,如下图所示,我们将因变量y(dependent variable)可能属于的两个类分别称为负向类( negative class)和正向类( positive class),则因变量 y\epsilon 0,1 ,其中 0 表示负向类, 1 表示正向类。(0与1的含义没有固定,0常表示没有某个东西)

通过判断假设函数与阈值的关系,来预测分类。

如果我们还是按照往常使用线性回归问题来解决的话,假设函数的输出值可能远大于1/小于0,但y的标签取值是0和1,这样就不是很适合。因此我们引入逻辑回归算法, 这个算法的性质是:它的输出值永远在 0 到 1 之间。

逻辑回归算法:

逻辑回归算法是分类算法,我们将它作为分类算法使用。它适用于标签 𝑦 取值离散的情况,如: 1 0 0 1。

二、算法假说表示

逻辑回归模型的假设是: h_{\theta }(𝑥) = 𝑔(θ^{T}\theta ^{T}𝑋)

其中: 𝑋 代表特征向量 ,𝑔 代表逻辑函数,是一个S形图像(它可以叫做logistics function,也可以称为Sigmoid function),公式如下:

g(z) = \frac{1}{1+e^{-z}}

函数图像如下:

概率论的角度,h_{\theta }(𝑥)可以表示为:h_{\theta }(𝑥)= 𝑃(𝑦 = 1|𝑥; 𝜃),它的含义是对于给定的𝑥,通过已经确定的参数\theta计算出y为1的概率。显而易见,y为正向类与y为负向类的概率相加必然为1。

三、决策边界

根据函数图像,我们可以得到以下转换:

𝑧 = 0 时 𝑔(𝑧) = 0.5
𝑧 > 0 时 𝑔(𝑧) > 0.5
𝑧 < 0 时 𝑔(𝑧) < 0.5
又 𝑧 = \theta ^{T}𝑥 ,即:
\theta ^{T}𝑥 >= 0 时,预测 𝑦 = 1
\theta ^{T}𝑥 < 0 时,预测 𝑦 = 0

因此,假设我们已知θ的值,那么便可以画出h_{\theta }(𝑥)的函数图像。假设我们有一个模型,举例如下:

并且参数𝜃 是向量[-3 1 1]。 则当-3 + 𝑥1 + 𝑥2 ≥ 0,即𝑥1 + 𝑥2 ≥ 3时,模型将预测 𝑦 =1。 我们可以绘制直线𝑥1 + 𝑥2 = 3,这条线便是我们模型的分界线,将预测为 1 的区域和预测为 0 的区域分隔开,称作决策边界

通过给定θ的值,我们可以用非常复杂的模型来适应非常复杂形状的决策边界。

四、逻辑回归算法的代价函数

回想一下线性回归模型,我们定义的代价函数是所有模型误差的平方和,它长这样:

理论上来说,我们也可以对逻辑回归模型沿用这个定义。但当我们将h_{\theta }(𝑥) =\frac{1}{1+e^{-\theta ^{T}X}}带入时,我们得到的代价函数将是一个非凸函数,它可能会长这样:

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

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

其中,

h_{\theta }(𝑥)与cos函数的图像大致如下(回想以下log函数的图像即可理解)

这样构建的𝐶𝑜𝑠𝑡(h_{\theta }(𝑥), 𝑦)函数的特点是:

  • 当实际的 𝑦 = 1 且h_{\theta }(𝑥)也为 1 时误差为 0,当 𝑦 = 1 但h_{\theta }(𝑥)不为 1 时误差随着h_{\theta }(𝑥)变小而变大;
  • 当实际的 𝑦 = 0 且h_{\theta }(𝑥)也为 0 时代价为 0,当𝑦 = 0 但h_{\theta }(𝑥)不为 0 时误差随着h_{\theta }(𝑥)的变大而变大。

四、简化、推导代价函数

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

推导过程比较简单,主要运用了log的计算公式和推导公式即可,注意是复合函数推导哦~具体可以去网上搜一下看看,我的推导过程写在笔记上了。

向量化后的表达形式(方便程序实现,这里*代表的是数乘)

PS:除了梯度下降算法以外,还有一些常被用来令代价函数最小的算法,这些算法更加复杂和优越,而且通常不需要人工选择学习率,通常比梯度下降算法要更加快速。这些算法有: 共轭梯度( Conjugate Gradient), 局部优化法(Broyden fletcher goldfarb shann,BFGS)和有限内存局部优化法(LBFGS)

五、逻辑回归与多类别分类

这里,我们介绍一下如何使用逻辑回归 (logistic regression)来解决多类别分类问题。

什么叫多类别分类呢?这里举个例子:

如果一个病人因为鼻塞来到你的诊所,他可能并没有生病,用 𝑦 = 1 这个类别来代表;或者患了感冒,用 𝑦 = 2 来代表;或者得了流感用𝑦 = 3来代表。这里的分类就有1、2、3三种。

对于一个多类分类问题,我们的数据集或许看起来像这样:

我们现在已经知道如何进行二元分类,可以使用逻辑回归,对于直线或许你也知道,可以将数据集一分为二为正类和负类。用一对多的分类思想,我们可以将其用在多类分类问题上。

现在我们有一个训练集,好比上图表示的有 3 个类别,我们用三角形表示 𝑦 = 1,方框表示𝑦 = 2,叉叉表示 𝑦 = 3。我们下面要做的就是使用一个训练集,将其分成 3 个二元分类问题。

我们先从用三角形代表的类别 1 开始,实际上我们可以创建一个,新的“伪"训练集,类型 2 和类型 3 定为负类,类型 1 设定为正类,我们创建一个新的训练集,如下图所示的那样,我们要拟合出一个合适的分类器。

由此可知,我们可以将多个类中的一个类标记为正向类( 𝑦 = 1),然后将其他所有类都标记为负向类,这个模型记作h_{\theta }^{(1)}(𝑥),以此类推,可以得到h_{\theta }^{(2)}(𝑥)、h_{\theta }^{(3)}(𝑥)...

最后我们得到一系列的模型简记为:h_{\theta }^{(i)}(𝑥) = 𝑝(𝑦 = 𝑖|𝑥; 𝜃)其中: 𝑖 = (1,2,3. . . . 𝑘)

最后,为了做出预测,我们给出输入一个新的 𝑥 值,用这个做预测。我们要做的就是在我们三个分类器里面输入 𝑥,然后我们选择一个让 h_{\theta }^{(i)}(𝑥)最大的𝑖,即maxh_{\theta }^{(i)}(𝑥)。

 

 

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值