文章目录

  • 1. 分类问题
  • 2. 假设表示
  • 3. 决策边界
  • 4. 代价函数
  • 5. 梯度下降
  • 6. 高级优化
  • 7. 多类别分类

Logistic回归是一种广义的线性回归分析模型。它是一种分类方法,可以适用于二分类问题,也可以适用于多分类问题,但是二分类的更为常用,也更加容易解释。实际中最为常用的就是二分类的logistic回归,常用于数据挖掘,疾病自动诊断,经济预测等领域。

用于两分类问题。其基本思想为:
a. 寻找合适的假设函数,即分类函数,用以预测输入数据的判断结果;
b. 构造代价函数,即损失函数,用以表示预测的输出结果与训练数据的实际类别之间的偏差;
c. 最小化代价函数,从而获取最优的模型参数。

1. 分类问题

我们讨论的是要预测的变量y是一个离散情况下的分类问题。
分类问题中,我们尝试预测的是结果是否属于某一个类。分类问题的例子有:判断一封电子邮件是否是垃圾邮件; 判断一次金融交易是否是欺计;判断一个肿瘤是恶性的还是良性的。
我们预测的变量 y ∈ { 0 , 1 } y \in\{0,1\} y∈{0,1},其中 0 表示负类 (Negative class),1表示正类 (Positive class) 。
Logistic回归算法是一种分类算法,它适用于标签取值离散的情况,它的输出值永远在0到1之间。
不推荐将线性回归用于分类问题,线性回归模型的预测值可超越[0,1]范围。

2. 假设表示

对于分类问题, 我们需要输出0或1,我们可以预测:
当 h θ ( x ) ⩾ 0.5 h_{\theta}(x) \geqslant 0.5 hθ​(x)⩾0.5 时, 预测 y = 1 y=1 y=1 。
当 h θ ( x ) ⩽ 0.5 h_{\theta}(x) \leqslant 0.5 hθ​(x)⩽0.5 时, 预测 y = 0 y=0 y=0 。
Logistic回归模型的假设函数是 h θ ( x ) = g ( θ T X ) h_{\theta}(x)=g\left(\theta^{T} X\right) hθ​(x)=g(θTX), 其中 X X X 代表特征向量, g g g 代表Logistic函数。一个常用的Logistic函数为S形函数 (Sigmoid function) , 公式为 g ( z ) = 1 1 + e − z g(z)=\frac{1}{1+e^{-z}} g(z)=1+e−z1​, 函数图象如下图所示。

h θ ( x ) h_{\theta}(x) hθ​(x) 的作用是:对于给定的输入变量 x x x, 根据选择的参数计算输出变量 y = 1 y=1 y=1 的可能性 (estimated probablity), 即 h θ ( x ) = P ( y = 1 ∣ x ; θ ) h_{\theta}(x)=P(y=1 \mid x ; \theta) hθ​(x)=P(y=1∣x;θ), 所以有 P ( y = 0 ∣ x ; θ ) + P ( y = P(y=0 \mid x ; \theta)+P(y= P(y=0∣x;θ)+P(y= 1 ∣ x ; θ ) = 1 1 \mid x ; \theta)=1 1∣x;θ)=1。

3. 决策边界

决策边界分为线性决策边界 (Linear decision boundary) 和非线性决策边界 (Non-linear decision boundary)。下图为线性决策边界的例子,红色代表正类, 蓝色代表负类, 其中参数 θ \theta θ 为向量 [ [ [-3 1 1 ] ] ], 则当 − 3 + x 1 + x 2 ⩾ 0 -3+x_{1}+x_{2} \geqslant 0 −3+x1​+x2​⩾0, 即 x 1 + x 2 ⩾ 3 x_{1}+x_{2} \geqslant 3 x1​+x2​⩾3 时,模型将预测 y = 1 y=1 y=1 。 我们可以绘制直线 x 1 + x 2 = 3 x_{1}+x_{2}=3 x1​+x2​=3, 这条线便是我们模型的决策边界,它能将预测为1的区域和预测为0的区域分隔开。

下图为非线性决策边界的例子,其中参数 0 为向量[-1 0 0 1 1], 则当 − 1 + x 1 2 + x 2 2 ⩾ 0 -1+x_{1}^{2}+x_{2}^{2} \geqslant 0 −1+x12​+x22​⩾0, 即 x 1 2 + x 2 2 ⩾ 1 x_{1}^{2}+x_{2}^{2} \geqslant 1 x12​+x22​⩾1 时, 模型将预测 y = 1 y=1 y=1 。我们可以绘制圆心在原点且半径为1的圆形 x 1 2 + x 2 2 = 1 x_{1}^{2}+x_{2}^{2}=1 x12​+x22​=1, 它 能将预测为1的区域和预测为0的区域分隔开。

决策边界是假设函数的一个属性,我们可以用非常复杂的模型来适应非常复杂形状的决策边界。

4. 代价函数

定义Logistic回归的代价函数为:

J ( θ ) = 1 m ∑ i = 1 m Cost ⁡ ( h θ ( x ( i ) ) , y ( i ) ) J(\theta)=\frac{1}{m} \sum_{i=1}^{m} \operatorname{Cost}\left(h_{\theta}\left(x^{(i)}\right), y^{(i)}\right) J(θ)=m1​∑i=1m​Cost(hθ​(x(i)),y(i))

其中
Cost ⁡ ( h θ ( x ) , y ) = { − log ⁡ ( h θ ( x ) ) , if  y = 1 − log ⁡ ( 1 − h θ ( x ) ) , if  y = 0 \operatorname{Cost}\left(h_{\theta}(x), y\right)=\left\{\begin{array}{ll}-\log \left(h_{\theta}(x)\right), & \text { if } y=1 \\ -\log \left(1-h_{\theta}(x)\right), & \text { if } y=0\end{array}\right. Cost(hθ​(x),y)={−log(hθ​(x)),−log(1−hθ​(x)),​ if y=1 if y=0​

h θ ( x ) h_{\theta}(x) hθ​(x) 与 Cost ⁡ ( h θ ( x ) , y ) \operatorname{Cost}\left(h_{\theta}(x), y\right) Cost(hθ​(x),y) 之间的关系如下图所示。

Cost ⁡ ( h θ ( x ) , y ) \operatorname{Cost}\left(h_{\theta}(x), y\right) Cost(hθ​(x),y) 函数的特点是:
如上图 a)所示,当实际的 y = 0 y=0 y=0 且预测的 h θ ( x ) h_{\theta}(x) hθ​(x) 也为0时代价为 0,当 y = 0 y=0 y=0 但 h θ ( x ) h_{\theta}(x) hθ​(x) 不为0时误差随着 h θ ( x ) h_{\theta}(x) hθ​(x) 变大而变大;
如上图 b)所示,当实际的 y = 1 y=1 y=1 且预测的 h θ ( x ) h_{\theta}(x) hθ​(x) 也为1时误差为 0 , 当 y = 1 y=1 y=1 但 h θ ( x ) h_{\theta}(x) hθ​(x) 不为1时误差随着 h θ ( x ) h_{\theta}(x) hθ​(x) 变小而变大。
Cost ⁡ ( h θ ( x ) , y ) \operatorname{Cost}\left(h_{\theta}(x), y\right) Cost(hθ​(x),y) 函数也可以写成如下的式子:
Cost ⁡ ( h θ ( x ) , y ) = − y × log ⁡ ( h θ ( x ) ) − ( 1 − y ) × log ⁡ ( 1 − h θ ( x ) ) \operatorname{Cost}\left(h_{\theta}(x), y\right)=-y \times \log \left(h_{\theta}(x)\right)-(1-y) \times \log \left(1-h_{\theta}(x)\right) Cost(hθ​(x),y)=−y×log(hθ​(x))−(1−y)×log(1−hθ​(x))
那么 Logisitic回归的代价函数为
J ( θ ) = 1 m ∑ i = 1 m Cost ⁡ ( h θ ( x ( i ) ) , y ( i ) ) = − 1 m ∑ i = 1 m [ y ( i ) × log ⁡ ( h θ ( x ( i ) ) ) + ( 1 − y ( i ) ) × log ⁡ ( 1 − h θ ( x ( i ) ) ) ] J(\theta)=\frac{1}{m} \sum_{i=1}^{m} \operatorname{Cost}\left(h_{\theta}\left(x^{(i)}\right), y^{(i)}\right)=-\frac{1}{m} \sum_{i=1}^{m}\left[y^{(i)} \times \log \left(h_{\theta}\left(x^{(i)}\right)\right)+\left(1-y^{(i)}\right) \times \log \left(1-h_{\theta}\left(x^{(i)}\right)\right)\right] J(θ)=m1​i=1∑m​Cost(hθ​(x(i)),y(i))=−m1​i=1∑m​[y(i)×log(hθ​(x(i)))+(1−y(i))×log(1−hθ​(x(i)))]

5. 梯度下降

为了拟合出参数, 我们需要最小化代价函数, 找到尽量让 J ( θ ) J(\theta) J(θ) 取得最小值的参数 θ \theta θ, 所用的方法是梯度下降法
梯度下降法的实现
Repeat  { θ j : = θ j − α 1 m ∑ i = 1 m ( h θ ( x ( i ) ) − y ( i ) ) x j ( i ) } (Simultaneously update all  θ j ) \text { Repeat } \left.\left\{\theta_{j}:=\theta_{j}-\alpha \frac{1}{m} \sum_{i=1}^{m}\left(h_{\theta}\left(x^{(i)}\right)-y^{(i)}\right) x_{j}^{(i)}\right\} \quad \text { (Simultaneously update all } \theta_{j}\right)  Repeat {θj​:=θj​−αm1​i=1∑m​(hθ​(x(i))−y(i))xj(i)​} (Simultaneously update all θj​)

6. 高级优化

一些更高级的优化算法有:共轭梯度法、BFGS 和L-BFGS 等。

优点:一个是通常不需要手动选择学习率,它们有一个智能内循环(线性搜索算法),可以自动尝试不同的学习速率 α \alpha α并自动选择一个好的学习速率,它们甚至可以为每次迭代选择不同的学习速率,那么我们就不需要自己选择。还有一个是它们经常快于梯度下降算法。
缺点:过于复杂

7. 多类别分类

如何使用 Logisitic回归来解决多类别分类的问题。
对于一个多类分类问题,我们的数据集看起来可能会像下图 b)所示,而下图 a)是我们之前讨论的二元分类问题的数据集。

我们用3种不同的符号来代表3个类别,可以使用"一对多"方法来进行分类。
现在我们有一个下图所示的训练集,共有3个类别,我们用三角形表示 y y y=1,方框表示 y y y= 2,叉表示 y y y = 3。我们下面要做的就是使用一个训练集,将其分成3个二元分类问题。
我们先从用三角形代表的类别1开始,实际上我们可以创建一个新的"伪"训练集,类型2和类型3定为负类,类型1设定为正类,我们创建一个新的训练集,如图7所示,我们要拟合出一个合适的分类器。

为了能实现这样的转变, 我们将多个类别中的一个类标记为正类 ( y = 1 ) (y=1) (y=1), 然后将其他所有类都标记为负类, 这个模型记作 h θ ( 1 ) ( x ) h_{\theta}^{(1)}(x) hθ(1)​(x) ;
接着, 类似地第我们选择另一个类标记为正类 ( y = 2 ) (y=2) (y=2), 再将其它类都标记为负类, 将这个模型记作 h θ ( 2 ) ( x ) h_{\theta}^{(2)}(x) hθ(2)​(x);
依此类推,最后我们得到一系列的模型简记为: h θ ( i ) ( x ) = p ( y = i ∣ x ; θ ) h_{\theta}^{(i)}(x)=p(y=i \mid x ; \theta) hθ(i)​(x)=p(y=i∣x;θ), 其中 i = 1 , 2 , … , k i=1,2, \ldots, k i=1,2,…,k

最后,在我们需要做预测时,我们将所有的分类机都运行一遍, 然后对每一个输入变量,都选择可能性最高的输出变量。 在分类时,我们要做的就是训练这个逻辑回归分类器 h θ ( i ) ( x ) h_{\theta}^{(i)}(x) hθ(i)​(x), 其中对应每一个可能的 y = i y=i y=i 。为了做出预测,我们给出输入一 个新的 x x x 值, 用这个值做预测。我们要做的就是在我们三个分类器里面输入 x x x, 然后我们选择一个让 h θ ( i ) ( x ) h_{\theta}^{(i)}(x) hθ(i)​(x) 最大的 i i i, 即 max ⁡ h θ ( i ) ( x ) \max h_{\theta}^{(i)}(x) maxhθ(i)​(x)。

吴恩达机器学习(三)—— Logisitic回归相关推荐

  1. 吴恩达机器学习之逻辑回归(二分类)

    吴恩达机器学习之逻辑回归 逻辑回归 二分类逻辑回归 二分类逻辑回归案例 python代码实现(含详细代码注释): 案例中几个问题的解析 不同于线性回归,逻辑回归的hθ(x)还需要用sigmoid函数处 ...

  2. 吴恩达机器学习之逻辑回归:逻辑回归的假说表示、判定边界、代价函数、简化的成本函数和梯度下降、高级悠哈、多类别分类之一对多(详细笔记,建议收藏,已有专栏)

    吴恩达机器学习栏目清单 专栏直达:https://blog.csdn.net/qq_35456045/category_9762715.html 文章目录 6.逻辑回归(Logistic Regres ...

  3. 吴恩达机器学习ex2:逻辑回归

    吴恩达机器学习练习二:逻辑回归 1. 逻辑回归(logistic regression) 构建一个可以基于两次测试评分来评估录取可能性的分类模型. 知识点回顾: 1.1 数据可视化 #coding=u ...

  4. 吴恩达机器学习 4.逻辑回归(Logistic Regression)

    1.分类问题 在分类问题中,你要预测的变量yyy是离散的值,我们将学习一种叫做逻辑回归 (Logistic Regression) 的算法,这是目前最流行使用最广泛的一种学习算法.在分类问题中,我们尝 ...

  5. 吴恩达机器学习3——逻辑回归、正则化

    机器学习第三周 一.逻辑回归 1. 分类问题 1.1 分类的概念 1.2 使用线性回归来解决分类模型 1.3 逻辑回归模型 1.4 分类边界 2. 逻辑回归模型 logistic regression ...

  6. 吴恩达机器学习:逻辑回归

    在 上一周的课程 里,Andrew Ng 为我们介绍了什么是机器学习以及监督学习中的线性回归.对于一个监督学习,我们要确定我们的 预测函数,代价函数,然后利用梯度下降算法找到 代价函数 最小时,预测函 ...

  7. 吴恩达机器学习之逻辑回归理论部分

    一.特征函数 对应分类问题,我们先针对二分类问题进行讨论,对应计算机而言,分类即将数据按其特征值不同分为不同的集合,仅对应二分类问题,我们只需考虑分为:正类和负类,为此我们引入特征函数. y=1 - ...

  8. 吴恩达——机器学习 局部加权回归(Loess)

    先介绍参数学习方法和非参数学习方法: 参数学习方法:有固定数目的参数, 比如线性回归和逻辑回归中的 非参数学习方法:参数的数目会随着训练集的大小呈线性增长,比如局部加权回归 局部加权回归(Locall ...

  9. 吴恩达机器学习CS229A_EX2_逻辑回归与正则化_Python3

    逻辑回归 问题描述:特征集为学生的两门课的成绩,标签集为是否被大学录取. 说明: 这里调用 scipy 库函数执行梯度下降的具体迭代,不用手动设置步长和迭代次数,但 cost 如何计算.梯度如何求取需 ...

  10. 吴恩达机器学习(五)逻辑回归练习-二分类练习

    1.基础内容 (1)公式总结: (2)内容回归: 逻辑回归主要是进行二分类和多分类. 二分类中,分为线性可分和线性不可分. 对于线性回归模型,我们定义的代价函数是所有模型误差的平方和.理论上来说,我们 ...

最新文章

  1. sql server分布式事务解决方案[新事务不能登记到指定的事务处理器中错误]
  2. Android多线程断点下载
  3. oracle 分区表
  4. exim远程命令执行漏洞分析(cve-2019-10149)
  5. 添加当前文件夹及其子文件夹到以及别而的文件夹到当前路径
  6. Python读写json文件中文编码问题
  7. 【bzoj4870】[Shoi2017]组合数问题 dp+快速幂/矩阵乘法
  8. 11Linux服务器编程之:VFS虚拟文件系统,dup()函数和dup2()函数
  9. php curl获取登陆cookie,PHP curl 模拟登陆 获取cookie
  10. google lab 深度学习_吴恩达、李飞飞等化身超级英雄!深度学习漫画第一卷现已开源...
  11. php model controller,Laravel 中 Controller访问Model函数/常量
  12. 【Linux】计划任务管理crontab、at
  13. rpc:call/4函数解析
  14. Ubuntu下hadoop2.4搭建集群(单机模式)
  15. linux根文件系统制作
  16. vb6判断操作系统版本-从win95到win7
  17. paranoid用法
  18. java实现业务编排_手写实现一套流程编排规则引擎
  19. 最小生成树合集(讲解与例题)
  20. 数字IC面试总结(大厂面试经验分享)

热门文章

  1. 2023特种设备(Q1)起重指挥模拟一[安考星]
  2. GoogleEarth二次开发平台指南(3) ---如何获取点坐标、绘制线路和区域、沿指定线路三维漫游
  3. Python二级备考
  4. uniapp之h5公众号分享和授权
  5. MYSQL数据库-索引
  6. java保存当前页面为图片大小_java用BufferedImage转换图片大小并保存
  7. 防守者的角度来看攻击
  8. OFDM学习笔记(三)(OFDM信号检测技术--解调)
  9. php 局域网不能访问数据库服务器,phpstudy 局域网不能访问原因
  10. 【JS函数】JS函数之高阶函数、组合函数、函数柯里化