吴恩达机器学习(三)—— Logisitic回归
文章目录
- 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=1mCost(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(θ)=m1i=1∑mCost(hθ(x(i)),y(i))=−m1i=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−αm1i=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回归相关推荐
- 吴恩达机器学习之逻辑回归(二分类)
吴恩达机器学习之逻辑回归 逻辑回归 二分类逻辑回归 二分类逻辑回归案例 python代码实现(含详细代码注释): 案例中几个问题的解析 不同于线性回归,逻辑回归的hθ(x)还需要用sigmoid函数处 ...
- 吴恩达机器学习之逻辑回归:逻辑回归的假说表示、判定边界、代价函数、简化的成本函数和梯度下降、高级悠哈、多类别分类之一对多(详细笔记,建议收藏,已有专栏)
吴恩达机器学习栏目清单 专栏直达:https://blog.csdn.net/qq_35456045/category_9762715.html 文章目录 6.逻辑回归(Logistic Regres ...
- 吴恩达机器学习ex2:逻辑回归
吴恩达机器学习练习二:逻辑回归 1. 逻辑回归(logistic regression) 构建一个可以基于两次测试评分来评估录取可能性的分类模型. 知识点回顾: 1.1 数据可视化 #coding=u ...
- 吴恩达机器学习 4.逻辑回归(Logistic Regression)
1.分类问题 在分类问题中,你要预测的变量yyy是离散的值,我们将学习一种叫做逻辑回归 (Logistic Regression) 的算法,这是目前最流行使用最广泛的一种学习算法.在分类问题中,我们尝 ...
- 吴恩达机器学习3——逻辑回归、正则化
机器学习第三周 一.逻辑回归 1. 分类问题 1.1 分类的概念 1.2 使用线性回归来解决分类模型 1.3 逻辑回归模型 1.4 分类边界 2. 逻辑回归模型 logistic regression ...
- 吴恩达机器学习:逻辑回归
在 上一周的课程 里,Andrew Ng 为我们介绍了什么是机器学习以及监督学习中的线性回归.对于一个监督学习,我们要确定我们的 预测函数,代价函数,然后利用梯度下降算法找到 代价函数 最小时,预测函 ...
- 吴恩达机器学习之逻辑回归理论部分
一.特征函数 对应分类问题,我们先针对二分类问题进行讨论,对应计算机而言,分类即将数据按其特征值不同分为不同的集合,仅对应二分类问题,我们只需考虑分为:正类和负类,为此我们引入特征函数. y=1 - ...
- 吴恩达——机器学习 局部加权回归(Loess)
先介绍参数学习方法和非参数学习方法: 参数学习方法:有固定数目的参数, 比如线性回归和逻辑回归中的 非参数学习方法:参数的数目会随着训练集的大小呈线性增长,比如局部加权回归 局部加权回归(Locall ...
- 吴恩达机器学习CS229A_EX2_逻辑回归与正则化_Python3
逻辑回归 问题描述:特征集为学生的两门课的成绩,标签集为是否被大学录取. 说明: 这里调用 scipy 库函数执行梯度下降的具体迭代,不用手动设置步长和迭代次数,但 cost 如何计算.梯度如何求取需 ...
- 吴恩达机器学习(五)逻辑回归练习-二分类练习
1.基础内容 (1)公式总结: (2)内容回归: 逻辑回归主要是进行二分类和多分类. 二分类中,分为线性可分和线性不可分. 对于线性回归模型,我们定义的代价函数是所有模型误差的平方和.理论上来说,我们 ...
最新文章
- sql server分布式事务解决方案[新事务不能登记到指定的事务处理器中错误]
- Android多线程断点下载
- oracle 分区表
- exim远程命令执行漏洞分析(cve-2019-10149)
- 添加当前文件夹及其子文件夹到以及别而的文件夹到当前路径
- Python读写json文件中文编码问题
- 【bzoj4870】[Shoi2017]组合数问题 dp+快速幂/矩阵乘法
- 11Linux服务器编程之:VFS虚拟文件系统,dup()函数和dup2()函数
- php curl获取登陆cookie,PHP curl 模拟登陆 获取cookie
- google lab 深度学习_吴恩达、李飞飞等化身超级英雄!深度学习漫画第一卷现已开源...
- php model controller,Laravel 中 Controller访问Model函数/常量
- 【Linux】计划任务管理crontab、at
- rpc:call/4函数解析
- Ubuntu下hadoop2.4搭建集群(单机模式)
- linux根文件系统制作
- vb6判断操作系统版本-从win95到win7
- paranoid用法
- java实现业务编排_手写实现一套流程编排规则引擎
- 最小生成树合集(讲解与例题)
- 数字IC面试总结(大厂面试经验分享)
热门文章
- 2023特种设备(Q1)起重指挥模拟一[安考星]
- GoogleEarth二次开发平台指南(3) ---如何获取点坐标、绘制线路和区域、沿指定线路三维漫游
- Python二级备考
- uniapp之h5公众号分享和授权
- MYSQL数据库-索引
- java保存当前页面为图片大小_java用BufferedImage转换图片大小并保存
- 防守者的角度来看攻击
- OFDM学习笔记(三)(OFDM信号检测技术--解调)
- php 局域网不能访问数据库服务器,phpstudy 局域网不能访问原因
- 【JS函数】JS函数之高阶函数、组合函数、函数柯里化