Andrew Ng机器学习--L6:逻辑回归

2023-11-23 11:40

本文主要是介绍Andrew Ng机器学习--L6:逻辑回归,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

Lecture 6_Logistic Regression 逻辑回归

  • 6.1 分类问题 Classification
  • 6.2 假设表示 Hypothesis Representation
  • 6.3 决策边界 Decision Boundary
  • 6.4 代价函数 Cost Function
  • 6.5 简化的代价函数和梯度下降 Simplified Cost Function and Gradient Descent
  • 6.6 高级优化 Advanced Optimization
  • 6.7 多类别分类:一对多 Multiclass Classification_ One-vs-all
    • 相关术语

虽然逻辑回归名字里有一个回归,但它不是回归算法。而是一种非常强大,甚至可能世界上使用最广泛的一种分类算法。

特征缩放也适用于逻辑回归。

6.1 分类问题 Classificatio

6.1 分类问题 Classification

参考视频 p32

二值分类问题 binary classification problem 定义如下:  
在这里插入图片描述

6.2 假设表示 Hypothesis Representation

参考视频 p33

引入一个新的模型:逻辑回归。该输出变量范围始终在 0和1 之间。 逻辑回归模型的假设是:
在这里插入图片描述
𝑋 代表特征向量;
𝑔 代表逻辑函数Logistic Function 也叫 Sigmoid Function,其曲线如下:
在这里插入图片描述
给定输入变量x,根据选择的参数Θ,h(x)给出 y=1 的概率。y=0 的概率是 1 - h(x)
在这里插入图片描述

6.3 决策边界 Decision Boundary

参考视频 p34

决策边界就是模型中预测为1 和预测为0的区域的分界线。The decision boundary is the line that separates the area where y = 0 and where y = 1. It is created by our hypothesis function.
在这里插入图片描述
线性的决策边界:在这里插入图片描述
非线性的决策边界:
在这里插入图片描述

6.4 代价函数 Cost Function

参考视频 p35

如果沿用线性回归里的代价函数,则会导致J(𝜃) 不是凸函数,引发很多局部最优解。
在这里插入图片描述
为了拟合逻辑回归模型的参数 𝜃,代价函数如下:
在这里插入图片描述
根据上面的公式计算代价,当预测和实际一致时代价为0,反之代价为无穷大。
y = 1时,h(x) 和 J(Θ) 对应曲线如下:
在这里插入图片描述
y = 0时, h(x) 和 J(Θ) 对应曲线如下:
在这里插入图片描述
即有以下规律:

  • Cost(hθ(x),y) = 0   if hθ(x)=y
  • Cost(hθ(x),y)→∞   if y=0 and hθ(x)→1
  • Cost(hθ(x),y)→∞   if y=1 and hθ(x)→0

6.5 简化的代价函数和梯度下降 Simplified Cost Function and Gradient Descent

参考视频 p36

将上面两个式子 简化为下面一个式子(当 y 分别等于0或1时,式子只剩下两项中的一项):
在这里插入图片描述
完整的代价函数如下:
在这里插入图片描述
一个向量实现如下:
在这里插入图片描述
梯度下降过程如下:
在这里插入图片描述
使用数学方法推倒上式中 J(Θ) 的导数:
在这里插入图片描述
带入更新算法中,得到下面算法:
在这里插入图片描述
上面这个梯度下降算法 看起来和线性回归一样,但事实上是完全不同的。因为之前 h(x) 是线性函数,而逻辑回归中 h(x) 定义如下:
在这里插入图片描述
一个梯度下降的向量化实现如下
在这里插入图片描述

6.6 高级优化 Advanced Optimization

参考视频 p37

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

这些算法有一个智能的内部循环,称为线性搜索(line search)算法,它可以自动尝试不同的学习速率 。只需要给这些算法提供计算导数项和代价函数的方法,就可以返回结果。适用于大型机器学习问题。
它们太复杂,不应该自己实现,而是调用MATLAB方法。例如一个无约束最小值函数 fminunc 。它会使用众多高级优化算法中的一个,就像加强版的梯度下降法,自动选择学习速率,找到最佳的 Θ 值。
使用时需要提供代价函数和每个参数的求导,我们自己实现 costFunction 函数,传入参数Θ,可以一次性返回以下两个值:
在这里插入图片描述
例子,调用 fminunc() 函数,用@传入costFunction函数的指针,初始化的 theta,还可以增加 options(GradObj = on 指 “打开梯度目标参数”,即我们会给这个函数提供梯度参数):
在这里插入图片描述

6.7 多类别分类:一对多 Multiclass Classification_ One-vs-all

参考视频 p38

多分类问题中,y 有 {0,1…n} 一共 n+1 中可能值。方法:
(1)拆分成 n+1 个二分类问题。
(2)对每个分类,都预测出一个h(x)值。代表 y是这个类型的可能性。
(3)最后结果为可能性最大的那个类型。
在这里插入图片描述
在这里插入图片描述

相关术语

decision boundary 决策边界
loophole 漏洞
nonlinear 非线性
penalize 使不利

这篇关于Andrew Ng机器学习--L6:逻辑回归的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/417693

相关文章

最新Spring Security实战教程之表单登录定制到处理逻辑的深度改造(最新推荐)

《最新SpringSecurity实战教程之表单登录定制到处理逻辑的深度改造(最新推荐)》本章节介绍了如何通过SpringSecurity实现从配置自定义登录页面、表单登录处理逻辑的配置,并简单模拟... 目录前言改造准备开始登录页改造自定义用户名密码登陆成功失败跳转问题自定义登出前后端分离适配方案结语前言

Java进阶学习之如何开启远程调式

《Java进阶学习之如何开启远程调式》Java开发中的远程调试是一项至关重要的技能,特别是在处理生产环境的问题或者协作开发时,:本文主要介绍Java进阶学习之如何开启远程调式的相关资料,需要的朋友... 目录概述Java远程调试的开启与底层原理开启Java远程调试底层原理JVM参数总结&nbsMbKKXJx

Java逻辑运算符之&&、|| 与&、 |的区别及应用

《Java逻辑运算符之&&、||与&、|的区别及应用》:本文主要介绍Java逻辑运算符之&&、||与&、|的区别及应用的相关资料,分别是&&、||与&、|,并探讨了它们在不同应用场景中... 目录前言一、基本概念与运算符介绍二、短路与与非短路与:&& 与 & 的区别1. &&:短路与(AND)2. &:非短

Java深度学习库DJL实现Python的NumPy方式

《Java深度学习库DJL实现Python的NumPy方式》本文介绍了DJL库的背景和基本功能,包括NDArray的创建、数学运算、数据获取和设置等,同时,还展示了如何使用NDArray进行数据预处理... 目录1 NDArray 的背景介绍1.1 架构2 JavaDJL使用2.1 安装DJL2.2 基本操

HarmonyOS学习(七)——UI(五)常用布局总结

自适应布局 1.1、线性布局(LinearLayout) 通过线性容器Row和Column实现线性布局。Column容器内的子组件按照垂直方向排列,Row组件中的子组件按照水平方向排列。 属性说明space通过space参数设置主轴上子组件的间距,达到各子组件在排列上的等间距效果alignItems设置子组件在交叉轴上的对齐方式,且在各类尺寸屏幕上表现一致,其中交叉轴为垂直时,取值为Vert

Ilya-AI分享的他在OpenAI学习到的15个提示工程技巧

Ilya(不是本人,claude AI)在社交媒体上分享了他在OpenAI学习到的15个Prompt撰写技巧。 以下是详细的内容: 提示精确化:在编写提示时,力求表达清晰准确。清楚地阐述任务需求和概念定义至关重要。例:不用"分析文本",而用"判断这段话的情感倾向:积极、消极还是中性"。 快速迭代:善于快速连续调整提示。熟练的提示工程师能够灵活地进行多轮优化。例:从"总结文章"到"用

【前端学习】AntV G6-08 深入图形与图形分组、自定义节点、节点动画(下)

【课程链接】 AntV G6:深入图形与图形分组、自定义节点、节点动画(下)_哔哩哔哩_bilibili 本章十吾老师讲解了一个复杂的自定义节点中,应该怎样去计算和绘制图形,如何给一个图形制作不间断的动画,以及在鼠标事件之后产生动画。(有点难,需要好好理解) <!DOCTYPE html><html><head><meta charset="UTF-8"><title>06

学习hash总结

2014/1/29/   最近刚开始学hash,名字很陌生,但是hash的思想却很熟悉,以前早就做过此类的题,但是不知道这就是hash思想而已,说白了hash就是一个映射,往往灵活利用数组的下标来实现算法,hash的作用:1、判重;2、统计次数;

零基础学习Redis(10) -- zset类型命令使用

zset是有序集合,内部除了存储元素外,还会存储一个score,存储在zset中的元素会按照score的大小升序排列,不同元素的score可以重复,score相同的元素会按照元素的字典序排列。 1. zset常用命令 1.1 zadd  zadd key [NX | XX] [GT | LT]   [CH] [INCR] score member [score member ...]

【机器学习】高斯过程的基本概念和应用领域以及在python中的实例

引言 高斯过程(Gaussian Process,简称GP)是一种概率模型,用于描述一组随机变量的联合概率分布,其中任何一个有限维度的子集都具有高斯分布 文章目录 引言一、高斯过程1.1 基本定义1.1.1 随机过程1.1.2 高斯分布 1.2 高斯过程的特性1.2.1 联合高斯性1.2.2 均值函数1.2.3 协方差函数(或核函数) 1.3 核函数1.4 高斯过程回归(Gauss