机器学习整理

绪论

什么是机器学习?

机器学习研究能够从经验中自动提升自身性能的计算机算法。

机器学习经历了哪几个阶段?

推理期:赋予机器逻辑推理能力
知识期:使机器拥有知识
学习期:让机器自己学习

什么是有监督学习和无监督学习,并各举一个算法例子?

有监督学习:从有标记的样本中学习,如决策树。
无监督学习:从不含标记的样本中学习,如K均值算法。

性能度量

经验误差和泛化误差

经验误差
image.png
泛化误差
image.png

欠拟合和过拟合

image.png
欠拟合:相较于数据而言,模型参数过少或者模型结构过于简单,以至于无法捕捉到数据中的规律的现象。
过拟合:模型过于紧密或精确地匹配特定数据集,以致于无法良好地拟合其他数据或预测未来的观察结果的现象。
合适的拟合:模型能够恰当地拟合和捕捉到数据中规律的现象。

留出法

留出法直接将数据集D划分为两个互斥的集合,分别为训练集S和测试集T。在S上训练出模型后,用T来评估其测试误差。

K折交叉验证法

  1. 首先将训练集均匀分成K份。
  2. 每次取其中一份作为验证集,剩下部分作为新的训练集,从而得到在该验证集的学习精度。
  3. 重复K次,得到平均精度。
  4. 对于每一组超参数,执行上述步骤,并基于验证性能选择最佳的超参数集。
  5. 在确定了最佳的超参数设置后,使用这些超参数和整个数据集来训练最终的模型

自助法

有放回采样。给定包含个样本的数据集D,我们对它进行采样产生数据集D’:每次随机从D中挑选一个样本,将其拷贝放入,这就是自助采样的结果。

查准率、查全率与分类精度

混淆矩阵:
image.png
查准率:
image.png
查全率:
image.png
F1:
image.png
真正例率:
image.png
假正例率:
image.png
错误率:
image.png
精度:
image.png

ROC AUC

image.png
ROC曲线:根据学习器的预测结果对样例进行排序,按此顺序逐个把样本作为正例进行预测,每次计算出假正例率,真正例率。分别以它们为横、纵坐标作图。
AUC:ROC下的面积
image.png

线性模型

什么是线性回归?

线性回归是一种用于预测和建模的统计方法。线性回归的目的是找到一个线性关系,用来最好地预测一个因变量基于一个或多个自变量的值。
给定数据(X1,y1),(X2,y2),…,(Xm,ym),此处X可以是多维向量。线性回归的目标为学习合适的参数w和b使得
image.png
损失函数:用于度量yi和f(xi)的差异
均方误差:

最小二乘法:基于均方误差最小化来求解模型参数
image.png
通过计算E(w,b)对w和b的偏导,并令其为零,得到最优解

概率、几率与对数几率关系?

image.png
概率:事件发生的可能性
几率:事件发生和不发生的比率
对数几率:几率取对数

对数几率回归模型?

image.png
使用对数几率作为连接函数,将线性回归模型的输出映射到(0,1)区间内,表示为概率。对数几率回归提供了一个概率分数,表明观察属于正类的可能性,所以常用于二分类任务。

极大似然法

极大似然法是一种参数估计方法。在逻辑回归中,它用于估计模型参数(即权重 w 和偏差 b),使得观测数据出现的概率最大化。

  1. 似然函数:首先定义一个似然函数 L(w,b),表示在给定参数 w 和 b 的情况下,观测数据集发生的概率。
  2. 对数似然:由于乘积形式的似然函数可能会导致数值计算上的问题(如下溢),通常转而最大化对数似然函数 log(L(w,b))。
  3. 求解参数:找到一组参数 w 和 b,使得对数似然函数取得最大值。

梯度下降法

梯度下降法是一种优化算法,用于找到函数的局部最小值。在逻辑回归中,我们通常使用它来最小化代价函数。梯度下降法的核心思想是迭代地调整参数以最小化目标函数。

  1. 初始化参数:首先随机选择一个参数的初始值,或者从某个预定的起点开始。
  2. 计算梯度:计算目标函数关于每个参数的梯度。梯度是目标函数上升最快的方向,所以负梯度就是下降最快的方向。
  3. 更新参数:沿着负梯度方向更新参数。
  4. 重复迭代:重复步骤2和步骤3,直到满足停止条件,比如梯度的大小小于某个阈值,或者达到预定的迭代次数。
  5. 收敛至最小值:最终,梯度下降法会找到损失函数的局部最小值(在凸函数的情况下是全局最小值),这时的参数就是我们优化的结果。
    学习率:梯度下降法中一个决定参数更新步长的超参数。

什么是线性判别分析? LDA

主要用于分类和降维。思想是寻找一个直线,使得同类样本的投影点尽可能接近,异类样本的投影点尽可能远离。使得在这个投影中,不同类别的数据点能够被最好地区分开来。
image.png
image.png
image.png
求解最佳投影向量
image.png
image.png
选最大特征值λ2
image.png
最后归一化

二阶求逆矩阵公式:
image.png

决策树

什么是决策树?决策树的优点?

决策树是一种基于树结构来进行决策的机器学习方法。这恰是人类在面临决策问题时一种很自然的处理机制。
优点:

  1. 不需要数据清洗,省去了数据标准化和虚拟变量创建的步骤。
  2. 训练速度快,成本与数据点数量呈对数关系。
  3. 能够同时处理连续和离散变量。
  4. 易于理解、解释和可视化,有助于逻辑分析。
  5. 可使用统计检验验证模型结果的可靠性。
  6. 即使与实际数据模型不符,也能表现良好。

信息量

image.png

信息熵

image.png

选择最优划分属性的image.png准则

信息增益
image.png
基尼指数
image.png

计算

每轮选择信息增益/基尼指数最大的扩展

神经网络

感知器 PLA

感知器是一种简单的神经网络,是用于二分类的线性模型。通过接收输入特征并将其与权重相乘,加上一个偏置项,然后通过一个阶跃激活函数来预测输出结果。感知器的核心是其学习规则,它根据预测错误来调整权重,适用于线性可分的数据集。尽管单个感知器的功能有限,但它们可以构建成多层架构,成为现代深度学习的基础。
一个感知器包括以下部分:

  1. 输入值:这些是输入数据或特征,通常表示为一个向量x。
  2. 权重:每个输入值都有一个对应的权重,表示为一个向量w。
  3. 偏置:一个常数,通常表示为b,可以看作是权重向量的一个额外维度。
  4. 激活函数:一个数学函数,用于计算输出。
    image.png
    image.png

多类别感知器

  1. 一对多(One-vs-All):
  • 对于每个类别,训练一个感知器来区分该类别和其他所有类别。
  • 每个感知器的输出是一个分数,表示输入属于对应类别的程度。
  • 在分类时,所有感知器都对给定的输入进行评分,选择得分最高的类别作为预测类别。
  1. 一对一(One-vs-One):
  • 对于每对类别,训练一个感知器。
  • 需要训练N(N−1)/2 个感知器,其中 N 是类别的数量。
  • 每个感知器只负责区分两个类别。在分类时,每个感知器投票决定输入属于哪个类别,最终选票最多的类别为预测类别。

深度神经网络 DNN

有很多隐藏层的神经网络,每个隐藏层都是全连接层。

卷积神经网络 CNN

比DNN多了卷积层和池化层。CNN是一种专门用于处理具有类似网格结构的数据(如图像)的深度学习模型。
卷积层:
卷积核是一个小窗口。每个卷积核在输入图像上卷积,并计算卷积核和其覆盖的图像区域之间的点积。卷积层负责提取输入数据中的有用特征。多个卷积层可以捕获从低级到高级的特征。
池化层:
用于降低特征图的空间维度(宽度和高度),从而减少参数数量和计算量,防止过拟合,同时提高特征的不变性。CNN

激活函数作用

引入非线性到神经网络中。

三种梯度下降

通过迭代方式最小化损失函数,从而找到最佳的网络参数。梯度下降基本思想是在每次迭代中沿着损失函数梯度的反方向更新参数,因为这个方向是损失函数下降最快的方向。
批次梯度下降:使用整个训练数据集来计算损失函数的梯度。可以保证在凸函数上收敛到全局最小值。
随机梯度下降:随机选择一个训练样本来计算梯度。不一定收敛到全局最小值而且有波动。
小批量梯度下降:使用一个小批量的样本来计算梯度。收敛更快,更容易收敛到全局最小值。

支持向量机 SVM

什么是支持向量机?

SVM在高维空间中寻找最佳的超平面,以最大化不同类别之间的间隔。对于非线性可分的数据,SVM通过核技巧将数据映射到高维空间以实现有效的分类。
image.png
寻找参数,使得间隔最大
image.png
转化为目标函数:
image.png

对偶问题

对偶问题提供了一种方式来优化原始的分类问题,使其更易于计算且能够应用核方法处理非线性可分的数据集。原始的SVM问题旨在找到最佳的分割超平面以最大化类别之间的间隔,但直接求解这个问题涉及复杂的约束优化。通过构造拉格朗日函数并将问题转化为其对偶形式,就得到了一个二次规划问题。求解对偶问题在数学上更简洁,能给出与原始问题相同的解。
对偶问题目标函数
image.png

核函数

如果原始样本空间不存在能正确划分两类样本的超平面,可以使用核函数通过一个非线性映射将原始空间映射到一个更高维的特征空间,使得样本在这个特征空间内线性可分。

软间隔

现实中很难确定合适的核函数,使训练样本在特征空间中线性可分。即便貌似线性可分,也很难断定是否是因过拟合造成的。所以引入软间隔,允许在一些样本上不满足约束。

支持向量回归 SVR

在回归问题中,需要预测一个连续的输出而非一个类别。在SVR中,我们不是寻找一个将两类数据分开的最大间隔超平面,而是寻找一个能够拟合尽可能多数据的函数,同时保持预测误差在一定阈值内。

集成学习

集成学习

集成学习通过构建并结合多个学习器来完成学习任务。先产生一组"个体学习器" ,再用某种策略将它们结合起来。个体学习器通常由一个现有的学习算法从训练数据产生。

Boosting

Boosting是一组可将弱学习器提升为强学习器的算法。不是同时训练所有模型,而是顺序地训练模型,每一个模型都尝试纠正前一个模型的错误。

  1. 先从初始训练集训练出一个基学习器
  2. 再根据基学习器的表现对训练样本分布进行调整,使得先前基学习器的做错的训练样本在后续受到更多关注
  3. 然后基于调整后的样本分布来训练下一个基学习器
  4. 如此重复进行,直至基学习器数目达到事先指定的值T
  5. 最终将这T个基学习器进行加权结合。

AdaBoost

对同一数据集训练一系列的弱分类器,然后将它们组合起来,以提高整体性能。每一轮迭代中调整样本权重,使得被之前弱分类器错误分类的样本在后续的迭代中获得更多的关注。

Bagging

基于自助采样法,对原始训练数据集进行有放回的随机抽样,创建多个相同大小的子样本。使用每个子样本独立地训练出一个弱学习器。将所有弱学习器的预测结果进行聚合。分类问题采用投票机制,回归问题取平均值。

随机森林

随机森林是Bagging的一个扩展变体,在以决策树为基学习器构建 Bagging 集成的基础上,进一步在 决策树的训练过程中引入了随机属性选择。传统决策树在选择划分 属性时是在当前结点的属性集合中选择一个最优属性;而在RF中,对基决策树的每个结点,先从该结点的属性集合中随机选择一个包含k个属性的子集,然后再从这个子集中选择一个最有属性用于划分。

  1. 自助采样:对原始训练数据集进行有放回的抽样,创建多个不同的训练子集。
  2. 构建决策树:对每个训练子集独立地构建一个决策树。在构建决策树的过程中,每次分割时都会从所有特征中随机选择一部分特征候选项。
  3. 多数投票或平均:在分类问题中,随机森林的预测结果是所有决策树的预测结果的多数投票;在回归问题中,则是平均值。
  4. 结果输出:输出预测结果。

使用集成学习优化SVM

Bagging

Bagging对原始数据集进行重采样(通常是有放回的抽样),形成多个不同的训练子集,然后在每个子集上独立地训练一个SVM模型。所有模型的预测结果通过投票(分类问题)或平均(回归问题)来汇总。Bagging对于减少模型的方差特别有效,这可以在数据集含有较多噪声时改善SVM的性能。

Boosting

Boosting是另一种集成方法,它不是同时训练所有模型,而是顺序地训练模型,每一个模型都尝试纠正前一个模型的错误。对于SVM来说,可以使用如AdaBoost算法,将弱SVM分类器组合成一个强分类器。在每一轮中,数据样本的权重会根据前一个SVM的错误率进行调整,使得随后的SVM更专注于那些之前被错误分类的样本。

聚类

什么是聚类?

聚类分析是将数据集分组,使得同一组内的数据相比与其他组的数据更相似。

聚类有哪些应用?

市场分割:根据客户的消费记录进行聚类,进而合理地推荐
基因分组:根据基因的表达模式进行聚类,用于分析基因功能。
医学图像分割:将肿瘤图像中的像素进行聚类,用于自动分割出肿瘤部分
自然图像分割:基于图像的模式识别的重要数据预处理步骤。

什么是K均值(K-Means)聚类算法?

image.png
例题

K均值(K-Means)聚类算法优缺点?

依赖类别数K的选择
依赖初始类中心的选择
对异常点和孤立点敏感
K-Means++:优化了初始化时选择类中心的方法,避免类中心过于集中。
对于数据集中的每个点 x,计算它到最近中心的距离 D(x)。
image.png

什么是K中心点(K-Medoids)聚类算法?

image.png
更新类中心

  1. 计算每个类别内所有样本点到其中一个样本点的曼哈顿距离和
  2. 选出绝对误差最小的样本点,即跟同类别其他样本点最相似的样本点,作为作为新的类中心
    曼哈顿距离:每个维度的距离和。
    image.png

什么是层次聚类算法?

image.png

降维与度量学习

什么是降维?

降维是将数据从高维空间变换到低维空间,使得数据的低维表示能够保留原始数据的某些有意义的性质,理想情况下接近原始数据的本征维。

主成分分析 PCA

将n维特征映射到k维上,这k维是全新的正交特征也被称为主成分,是在原有n维特征的基础上重新构造出来的k维特征。PCA的工作就是从原始的空间中顺序地找一组相互正交的坐标轴,新的坐标轴的选择与数据本身是密切相关的。其中,第一个新坐标轴选择是原始数据中方差最大的方向,第二个新坐标轴选取是与第一个坐标轴正交的平面中使得方差最大的,第三个轴是与第1,2个轴正交的平面中方差最大的。依次类推,可以得到n个这样的坐标轴。通过这种方式获得的新的坐标轴,我们发现,大部分方差都包含在前面k个坐标轴中,后面的坐标轴所含的方差几乎为0。于是,我们可以忽略余下的坐标轴,只保留前面k个含有绝大部分方差的坐标轴。事实上,这相当于只保留包含绝大部分方差的维度特征,而忽略包含方差几乎为0的特征维度,实现对数据特征的降维处理。
image.png
例题

PCA和LDA的异同

PCA和LDA都是降维技术,用于数据特征提取和降维。PCA是无监督学习,目标是找到数据中方差最大的方向,并将数据投影到这些方向上,旨在捕获最大的方差。LDA是监督学习,找到最佳的投影方向,使同类数据点尽可能接近,而不同类数据点尽可能远离,最大化类别可分性。PCA产生的是正交主成分,LDA产生的是最大化类别分离的线性组合。PCA更多用于数据的压缩和去噪,而LDA更多用于优化分类器的性能。

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

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【Java面试】Mysql

目录 sql的执行顺序索引的优点和缺点怎么避免索引失效(也属于sql优化的一种)一条sql查询非常慢,我们怎么去排查和优化?存储引擎 MylSAM和InnoDB、Memory的区别事务的四大特性(ACID)脏读、不可重复读、幻读事务的隔离级别?怎么优化数据库SQL优…

多个SSH-Key下,配置Github SSH-Key

首先,检查 github 的连接性,因为DNS污染的原因,很多机器ping不通github,就像博主的机器: 怎么解决DNS污染的问题,博主查了很多教程,测试出一个有效的方法,那就是修改hosts文件。host…

DAY11_(简易版)VUEElement综合案例

目录 1 VUE1.1 概述1.1.1 Vue js文件下载 1.2 快速入门1.3 Vue 指令1.3.1 v-bind & v-model 指令1.3.2 v-on 指令1.3.3 条件判断指令1.3.4 v-for 指令 1.4 生命周期1.5 案例1.5.1 需求1.5.2 查询所有功能1.5.3 添加功能 2 Element2.0 element-ui js和css和字体图标下载2.1 …

go语言(十九)---- channel

channel的使用 //1. 发送value到channelchannel <- value //2. 接收并将其丢弃<- channel //3. 从channel中接收数据&#xff0c;并将其赋值给x x : <- channel 例子 package mainimport "fmt"func main() {//定义一个channelc : make(chan int)go func…

山海鲸智慧医疗解决方案:让医疗数据说话

在医疗领域&#xff0c;数据可视化对于提高诊疗效率、辅助医学研究和提升患者就医体验具有重要意义。作为山海鲸可视化软件的开发者&#xff0c;我们致力于利用先进的数据可视化技术&#xff0c;为医疗行业提供高效、智能的解决方案&#xff0c;本篇文章就带大家一起了解一下这…

【Python】01快速上手爬虫案例一:搞定豆瓣读书

文章目录 前言一、VSCodePython环境搭建二、爬虫案例一1、爬取第一页数据2、爬取所有页数据3、格式化html数据4、导出excel文件 前言 实战是最好的老师&#xff0c;直接案例操作&#xff0c;快速上手。 案例一&#xff0c;爬取数据&#xff0c;最终效果图&#xff1a; 一、VS…

用Visual Studio Code创建JavaScript运行环境【2024版】

用Visual Studio Code创建JavaScript运行环境 JavaScript 的历史 JavaScript 最初被称为 LiveScript&#xff0c;由 Netscape&#xff08;Netscape Communications Corporation&#xff0c;网景通信公司&#xff09;公司的布兰登艾奇&#xff08;Brendan Eich&#xff09;在 …

SpringBoot 自定义Filter 提前返回 CORS 错误 处理前后端分离跨域配置无效问题解析

前言 浏览器有跨域限制&#xff0c;非同源策略 (协议、主机名或端口不同) 被视为跨域请求&#xff0c;解决跨域有跨域资源共享(CORS)、反向代理和 JSONP的方式。本篇通过 SpringBoot 的资源共享配置 (CORS) 来解决前后端分离项目的跨域&#xff0c;以及从原理上去解决跨域配置…

JVM简介

一、什么是JVM JVM是Java Virtual Machine&#xff08;Java虚拟机&#xff09;的缩写&#xff0c;JVM是一种用于计算设备的规范&#xff0c;它是一个虚构出来的计算机&#xff0c;是通过在实际的计算机上仿真模拟各种计算机功能来实现的。Java虚拟机包括一套字节码指令集、一组…

qt 坦克大战游戏 GUI绘制

关于本章节中使用的图形绘制类&#xff0c;如QGraphicsView、QGraphicsScene等的详细使用说明请参见我的另一篇文章&#xff1a; 《图形绘制QGraphicsView、QGraphicsScene、QGraphicsItem、Qt GUI-CSDN博客》 本文将模仿坦克大战游戏&#xff0c;目前只绘制出一辆坦克&#…

编译PCL Qt程序

使用PCL的qt程序时&#xff0c;提示不是用QVTK编译的&#xff0c;所以需要在编译VTK时打开Qt的编译选项&#xff08;由于CMakeList比较复杂&#xff0c;使用CMakeGui进行配置&#xff0c;PCL同理&#xff09;&#xff0c;编译VTK完成后&#xff0c;编译PCL也需要配置Qt支持&…

公司内网虚拟机中穿透服务器Coturn的搭建

1. 写在前面 coturn服务器的搭建文章已经非常多&#xff0c;但是对于对linux不熟悉的人来说排查错误的文章不多&#xff0c;此篇文章把我这次搭建过程以及如何排查问题做一个梳理我这里是在oracle vm虚拟机中搭建安装的ubuntu&#xff0c;通过H3C路由器映射到外网以下介绍我只…

再谈Android View绘制流程

一&#xff0c;先思考何时开始绘制 笔者在这里提醒读者&#xff0c;Android的View是UI的高级抽象&#xff0c;我们平时使用的XML文件也好&#xff0c;本质是设计模式中的一种策略模式&#xff0c;其View可以理解为一种底层UI显示的Request。各种VIew的排布&#xff0c;来自于开…

C语言之指针的地址和指向的内容总结(八十四)

简介&#xff1a; CSDN博客专家&#xff0c;专注Android/Linux系统&#xff0c;分享多mic语音方案、音视频、编解码等技术&#xff0c;与大家一起成长&#xff01; 优质专栏&#xff1a;Audio工程师进阶系列【原创干货持续更新中……】&#x1f680; 优质专栏&#xff1a;多媒…

【开源】基于JAVA语言的实验室耗材管理系统

目录 一、摘要1.1 项目介绍1.2 项目录屏 二、功能模块2.1 耗材档案模块2.2 耗材入库模块2.3 耗材出库模块2.4 耗材申请模块2.5 耗材审核模块 三、系统展示四、核心代码4.1 查询耗材品类4.2 查询资产出库清单4.3 资产出库4.4 查询入库单4.5 资产入库 五、免责说明 一、摘要 1.1…

带【科技感】的Echarts 图表

Echarts脚本在线地址 https://cdn.jsdelivr.net/npm/echarts5.4.3/dist/echarts.min.js 引入Echarts 脚本后粘贴代码 vue2 代码&#xff1a; <template><div><div ref"col-2-row-2" class"col-2-row-2"></div></div> <…

机器学习笔记:地理加权回归(GWR)

1 传统的线性回归 机器学习笔记&#xff1a;线性回归_线性回归的读书笔记-CSDN博客 最优的β为&#xff1a; 2 地理加权回归&#xff08;GWR&#xff09; 2.1 模型概述 地理加权回归&#xff08;Geographically Weighted Regression&#xff0c;GWR&#xff09;是传统回归分…

【GPU】CUDA是什么?以及学习路线图!

什么是CUDA 作者&#xff1a;Keepin 1、cuda是英伟达开发的一套应用软件接口&#xff08;API&#xff09;。其主要应用于英伟达GPU显卡的调用。 2、云计算可以简单的理解为是通过网络组合成的计算机集群&#xff0c;用于各种加速&#xff0c;其中以CPU为主&#xff0c;GPU为辅…

Spring-AOP

1.概念 AOP(Aspect Oriented Programming)&#xff0c;意为“面向切片编程”&#xff0c;是Spring中一个重要的内容&#xff0c;其本质是动态代理&#xff0c;通过加入切片的方式&#xff0c;降低了各个业务逻辑之间的耦合度&#xff0c;让原生代码更加具有专一性 画个图方便理…

线性表--栈

1.什么是栈&#xff1f; 栈是一种特殊的线性表&#xff0c;其只允许在固定的一端进行插入和删除元素操作。进行数据插入和删除 操作的一端称为栈顶&#xff0c;另一端称为栈底。栈中的数据元素遵守后进先出的原则。 压栈&#xff1a;栈的插入操作叫做进栈/压栈/入栈&#xff…