机器学习第八次课

前言

开课了,今天会讲点什么呢,先看看

首先是机器学习的三步走,第一步是确定函数,第二步是损失函数,第三步就是训练,对应到线性回归,就是确定函数,然后就是MSE,第三步是梯度下降法,先问了个问题.

然后问了一个梯度下降的问题,梯度下降是一个用于优化目标函数的算法,常用于机器学习和人工智能中的模型训练。梯度在这里可被理解为导数或者偏导数,它指向了函数值下降最快的方向。在机器学习中,我们经常需要最小化损失函数,而梯度下降就是一种有效的方法。 梯度下降的基本步骤是: 1. 首先,选取一个随机的点(也就是参数),作为开始。 2. 然后,计算此点的梯度,也就是目标函数的导数。 3. 接着,沿着梯度的负方向,也就是函数值下降最快的方向,移动一小步,得到新的点。 4. 重复步骤2和3,直到梯度为0(也就是找到了局部最小值),或者满足其他结束条件(例如,达到预设的迭代次数、梯度变化很小等)。 这是最基本的批量梯度下降法。此外,还有一些变种,例如随机梯度下降(SGD)和小批量梯度下降,它们在更新参数时,不是使用全部的数据,而是采样一部分数据或者一条数据来计算梯度,可以提高计算效率。 需要注意的是,梯度下降法并不能确保找到全局最优解,只能找到局部最优解,因为梯度下降法是一种基于局部信息进行优化的方法,它并不能看到全局的情况。所以初始点的选取或者学习率的设定都可能影响到最后找到的结果。

正文

逻辑斯蒂回归做的是分类任务为什么名字里却有回归

虽然名字中包含“回归”,逻辑斯蒂回归实际上被用于分类任务,这在初次接触时确实可能会引起混淆。这是因为逻辑斯蒂回归的历史和其方法的数学性质。 首先,了解下"回归"这个统计术语的由来有助于理解。"回归"一词最早由英国统计学家Francis Galton在19世纪末提出,他在研究父母身高与孩子身高之间的关系时,发现孩子的平均身高总是“倾向于回归”向平均身高,因此他提出了这个术语。 而在底层的数学模型上,逻辑斯蒂回归是基于线性回归的。逻辑斯蒂回归使用的是对数几率函数(logit function),也就是一种线性回归模型,只是这个函数能将预测值限制在0和1之间,适用于二元或多元分类任务。因此,尽管在应用上,我们用逻辑斯蒂回归做分类,但在模型设定上,它实际上是一种回归模型。 所以,尽管在实际操作中,我们把逻辑斯蒂回归用于分类任务,但是从历史和数学角度看,将其称为"回归"是有一定道理的。

在逻辑回归的时候不能用均方误差,而是要用极大似然估计,那么什么是极大似然估计?

极大似然估计

极大似然估计(Maximum Likelihood Estimation,MLE)是一种用于估计统计模型参数的常用方法。 这种方法的基本思想是:在所有可能的参数值中,选取能使得已知样本数据出现的可能性(即,似然)最大的参数值作为模型参数的估计值。 简单地说,就是找到一组参数,让我们观察到的数据在这个模型下发生的概率尽可能大。 极大似然估计的基本步骤如下: 1. 建立似然函数:这就是数据的概率分布函数,但是参数是未知的。对于给定的样本观测结果,把这个概率函数看作是参数的函数,我们就称之为似然函数。 2. 对似然函数求导,并令其为0:这样可以得到极值。在实际计算中,我们通常对似然函数取对数,并求解对数似然函数的最大值,这样可以简化计算。 3. 解出参数值:这就是MLE的参数估计值。 在逻辑回归中,采用极大似然估计法来找出最优的模型参数。这是因为分类任务的预测值是离散的(如0或1),这种离散值和连续值之间的差异会使均方误差损失函数在某些地方不可导,因此,不能使用梯度下降等优化方法。而似然函数则没有这个问题。

极大似然估计和交叉熵都是判断模型预测准确性的度量方式,二者在很多情境下存在密切的关系。 在深度学习中,逻辑回归模型常常使用交叉熵损失函数。其实,当我们使用交叉熵损失函数进行优化的时候,就相当于在进行极大似然估计。下面我来解释一下这两者的关系。 在二元分类问题中,我们可以将标签设置为0和1。对于单个样本的预测结果,如果使用极大似然估计,其似然函数可以表示为: L = y * log(p) + (1 - y) * log(1 - p) 其中,y是真实标签,p是模型预测为正样本(y=1)的概率。我们的目标是找到最大化似然函数的参数。在实际应用中,通常对似然函数取负对数并求最小值,这样更容易计算。因此,目标函数变为: -log(L) = -y * log(p) - (1 - y) * log(1 - p) 这就是我们常说的二元交叉熵损失函数。 因此,我们可以看到,极大似然估计和交叉熵损失其实在数学上是一致的,只不过是优化的角度不同:一个是最大化似然函数,一个是最小化损失函数。所以,在逻辑回归模型中,优化交叉熵损失函数其实就是在进行参数的极大似然估计。

单独一个逻辑回归做不了太多,但是多个连载一起就形成一个很大的网络了

KNN

k-近邻算法(K-Nearest Neighbors,简称KNN)。 KNN是一种监督学习算法,用于分类和回归问题。其工作原理非常简单:基于训练数据集对新数据进行预测。预测的方式就是找出新数据在训练数据集中的最近邻居,然后根据这些邻居的标签来预测新数据的标签。 举个例子,假设你有一个数据集,其中每个数据都标注了是否喜欢看电影。现在,你有一个新的数据(一个人),你想预测这个人是否喜欢看电影。在KNN中,你会寻找数据集中最接近这个新数据的k(最好是奇数)个数据,然后查看这些数据中有多少个数据喜欢看电影。如果大多数都喜欢,那么你就预测这个人也喜欢看电影;否则,你就预测他不喜欢。 KNN算法的主要优点是简单易懂,容易实现。但此算法也有一些缺点,比如计算成本高(需要计算新数据与所有训练数据的距离),且对于特征数量多或者训练样本数量大的数据不太适用,也可能受到未标记样本的噪声干扰。 总的来说,KNN算法在处理一些简单问题上是一个非常好用的工具。

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

WIFISKY 7层流控路由器 confirm.php RCE漏洞复现

0x01 产品简介 WIFISKY-7层流控路由器是一款可用于家庭或办公环境的无线路由器,具备流控功能以优化网络流量和提供更稳定的网络连接。该路由器采用了7层流控技术,能够依据网络数据包的内容进行智能管理,从而实现对网络流量的精细化控制和优化。这种技术可以提升网络的整体性…

vscode 使用文件模板功能来添加版权信息

vscode 新建文件的时候,自动填充作者及版权信息 无需使用插件,操作如下: 选择 “首选项(Preferences)”。在搜索框中输入 “file template” 或者 “文件模板”,然后选择相关的设置项。 {"C_Cpp.clang_format_fallbackSt…

ctfshow web入门 SQl注入 web191--web200

web191 多了一个正则绕过 上脚本布尔盲注 用ord #author:yu22x import requests import string url"http://70adf0cb-2208-4974-b064-50a4f4103541.challenge.ctf.show/api/index.php" sstring.ascii_lettersstring.digits flag for i in range(1,45):print(i)for j…

【熵与特征提取】从近似熵,到样本熵,到模糊熵,再到排列熵,包络熵,散布熵,究竟实现了什么?(第六篇)——“散布熵”及其MATLAB实现

今天讲散布熵,之前用了几篇文章分别讲述了功率谱熵、奇异谱熵、能量熵、近似熵、样本熵、模糊熵、排列熵、包络熵这8种类型的熵: Mr.看海:【熵与特征提取】基于“信息熵”的特征指标及其MATLAB代码实现(功率谱熵、奇异谱熵、能量…

脚手架搭建项目package.json配置中依赖的版本问题

脚手架搭建项目package.json配置中依赖的版本问题 问题描述:项目刚搭建好,运行没有问题,为什么过一段时间,删除node_modules,或者重新安装包依赖,然后项目某些地方出现莫名的错误(依赖库的地方…

希捷HDD最新财报:销售同比下降11%,环比增长6%,4Q24前景看好

Seagate Technology Holdings plc公布了截至2024年3月29日的第三财季财务业绩。 “随着云需求改善、我们强大的运营纪律和价格执行,希捷3月季度的营收增长了6%,非GAAP每股收益较上一季度翻了一番多。这种组合为我们市场复苏时回归目标利润率奠定了基础。…

C++:类与对象完结篇

hello,各位小伙伴,本篇文章跟大家一起学习《C:运算符重载》,感谢大家对我上一篇的支持,如有什么问题,还请多多指教 ! 文章目录 重新认识构造函数1.初始化列表2.explicit关键字 static成员1.sta…

面试:ThreadLocal

目录 1、ThreadLocal可以实现〔资源对象】的线程隔离,让每个线程各用各的【资源对象】,避免争用引发的线程安全问题 2、ThreadLocal同时实现了线程内的资源共享 3、原理 4、为什么ThreadLocalMap 中的 key (即 ThreadLocal )要设计为弱引用…

configure: error: library ‘crypto‘ is required for OpenSSL

1、执行命令./configure --prefix/usr/local/pgsql/postgresql-14.2 --with-openssl 报错configure: error: library crypto is required for OpenSSL 2、解决办法 yum install openssl openssl-devel

pom文件依赖报红问题

dependencyManagement标签下依赖报红 如图 dependencyManagement标签下依赖报红问题,原因是dependencyManagement标签下的包不会被下载,repository里根本没有 解决方法 :将依赖复制到dependencies标签下,再reload pom文件&#x…

Leetcode算法训练日记 | day35

专题九 贪心算法 一、柠檬水找零 1.题目 Leetcode:第 860 题 在柠檬水摊上,每一杯柠檬水的售价为 5 美元。顾客排队购买你的产品,(按账单 bills 支付的顺序)一次购买一杯。 每位顾客只买一杯柠檬水,然…

为什么建议游戏工作室使用海外住宅IP防封?

当谈到游戏工作室时,它们通常以多开游戏账号来获取收益为主要目标。这种商业模式在游戏产业中已经成为一个独特而且颇具潜力的领域。然而,随之而来的是防封问题,特别是当游戏工作室试图通过多开账号来赚取更多收益时。因此,我们有…

【第6节】Lagent AgentLego 智能体应用搭建

目录 1 基础课程2 安装环境2.1 教程要求2.2 安装 Lagent 和 AgentLego 3 实践操作3.1 Lagent:轻量级智能体框架3.1.1 Lagent Web Demo 使用3.1.2 用 Lagent 自定义工具 3.2 AgentLego:组装智能体“乐高”3.2.1 AgentLego 直接使用部分3.2.2 AgentLego We…

【Harmony3.1/4.0】笔记二

概述 列表是一种复杂的容器,当列表项达到一定数量,内容超过屏幕大小时,可以自动提供滚动功能。它适合用于呈现同类数据类型或数据类型集,例如图片和文本。在列表中显示数据集合是许多应用程序中的常见要求(如通讯录、…

linux——yum工具详解

yum是linux中自动解决软件包依赖关系的管理器 同时,yum也是一个rpm软件 这里使用yum install nginx安装nginx

Windows SMBGhost CVE-2020-0796 Elevate Privileges

SMBGhost CVE-2020-0796 Microsoft Windows 10 (1903/1909) - ‘SMBGhost’ SMB3.1.1 ‘SMB2_COMPRESSION_CAPABILITIES’ Local Privilege Escalation https://www.exploit-db.com/exploits/48267 Github https://github.com/danigargu/CVE-2020-0796 修改载荷[可选] 生成 c# …

用c++实现起泡排序、哈密顿回路问题、TSP问题

5.3.2 起泡排序 【问题】 起泡排序(bubble sort)的基本思想是:两两比较相邻记录,如果反序则交换,直至没有反序的记录,如图5.8所示。【想法】下表给出了一个起泡排序的例子(方括号括起来的为无序区)&#x…

深入理解JavaScript:对象什么时候创建

🌟 我们在chrome浏览器中debug程序。为了好debug我们会写一些在日常开发中基本不会采用的代码书写方式。 JavaScript中创建对象有3中方式: 1、对象字面量; 2、new; 3、Object.create(对象); 1、使用new创建对象 fun…

MicroSIP电话呼叫软件使用及配置方法

MicroSIP是一款开源的SIP协议电话软件,它可以帮助你在计算机上进行语音和视频通话。下面是关于如何使用和配置MicroSIP的一些基本步骤: 安装MicroSIP 从MicroSIP官方网站下载适合你操作系统的安装包23。 解压下载的文件,并运行安装程序。 …

GRPC学习笔记

GRPC学习笔记 1 GRPC简介 1.1 定义 gRPC(Google Remote Procedure Call,Google远程过程调用)协议是谷歌发布的基于HTTP2协议承载的高性能、通用的RPC开源软件框架,提供了支持多种编程语言的、对网络设备进行配置和管理的方法。…
最新文章