机器学习整理

绪论

什么是机器学习?

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

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

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

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

有监督学习:从有标记的样本中学习,如决策树。
无监督学习:从不含标记的样本中学习,如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.mzph.cn/news/650929.shtml

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

相关文章

CubeMX生成工程文件夹解释

使用CubeMXKeil的工程,物理文件夹结构如下: 文件夹、文件,众多,但我们平时使用到的,主要是两个入口文件,即以下的:1和2. 1、***.uvprojx 位置:工程目录\MDK-ART文件夹下。 Keil的工…

【C++】STL和vector容器

STL和vector容器 基本概念六大组件容器算法迭代器容器算法迭代器 vector容器基本概念vector构造函数赋值vector的容量和大小vector插入与删除vector存取数据函数原型 vector互换容器vector预留空间vector容器嵌套容器 基本概念 长久以来,软件届一直希望建立一种可重…

基于 java+springboot+mybatis电影售票网站管理系统前台+后台设计和实现

基于 javaspringbootmybatis电影售票网站管理系统前台后台设计和实现 🍅 作者主页 央顺技术团队 🍅 欢迎点赞 👍 收藏 ⭐留言 📝 🍅 文末获取源码联系方式 📝 🍅 查看下方微信号获取联系方式 承…

国内首个!亚信安全获得CCRC数据分类分级产品认证证书

亚信安全信数数据分类分级系统AISDC V1.0,荣获中国网络安全审查认证和市场监管大数据中心颁发的首个数据分类分级产品IT产品信息安全认证证书!标志着亚信安全在大数据安全领域的强大技术实力以及专业研究,正式获得国内数据分类分级产品评定的…

通过LiveNVR实现海康大华华为宇视等监控摄像头在服务器上录像存储,并web无插件直播和回放

支持云端录像服务器上面集中录像存储在部署LiveNVR的服务器上面 1、流媒体服务软件2、配置开启录像(云端录像)3、录像回看(云端录像)3.1、查看录像3.1.1、时间轴视图3.1.2、列表视图 4、云端录像相关接口5、如何分享时间轴录像回看?6、iframe集成示例7、RTSP/HLS/FL…

centos 7 增加临时路由及永久路由

centos 7 增加临时路由及永久路由 如果增加临时路由,要先安装net-tools , sudo yum install net-tools route add -net 10.1.0.0 gw 10.1.1.1 netmask 255.255.0.0 意思是增加了一条动态路由,网关10.1.1.1 ,10.1.x.x 的所有ip都走这个网关 此种方式&am…

[框架系列]-[通用lock框架]集成及具体配置使用

目录 一:框架集成 1.添加pom依赖 2.开启lock配置 二:配置详细介绍 1.配置清单 2.具体配置介绍 (1)implementer (2)type (3)transactionStrategy (4&#xff09…

Dev-Home:又一个开发人员控制中心神器,微软官方出品!

前两周,微软针对开发人员推出的windows控制中心:Dev-Home,迎来了0.9的预览版,这次重点的更新是支持Window 10了,之前一直都只支持Windows 11。 Dev-Home核心有两个功能:系统监控小组件和Gtihub扩展小组件。…

ISO 14229和UDS:汽车诊断的黄金标准

UDS简介: UDS是Unified Diagnostic Services的缩写,全名统一诊断服务。它是一种用于汽车电子控制单元(ECU)之间进行诊断和通信的标准协议,属于ISO 14229标准的一部分。 UDS的起源和背景: UDS的起源可以追…

一个处理Range List的面试题解法

大纲 题目解法Rangeaddremove ToolsRangeListaddremove 代码 最近看到一个比较有意思的面试题。题目不算难,但是想把效率优化做好,也没那么容易。 我们先看下题目 题目 // Task: Implement a class named RangeList // A pair of integers define a ra…

【C++】C++中的【文件IO流】使用指南 [手把手代码演示] & [小白秒懂]

前言 大家好吖,欢迎来到 YY 滴 系列 ,热烈欢迎! 本章主要内容面向接触过C的老铁 主要内容含: 欢迎订阅 YY滴C专栏!更多干货持续更新!以下是传送门! YY的《C》专栏YY的《C11》专栏YY的《Linux》…

JavaEE-自定义SSM-编写核心-解析yml文件

3.3.1 加载yml文件 编写yaml工厂&#xff0c;用于加载yml文件 package com.czxy.yaml;import java.io.InputStream;/*** 用于处理 application.yml文件* 1. 加载application.yml文件* 2. yaml工具类进行解析* Map<String, Map<String, Map<....>> >* …

Linux使用二进制包安装MySQL

目录 一、软件包下载 二、上传软件包到Linux根目录 1、使用xftp将软件包上传到根目录 2、解压缩 三、准备工作 四、初始化软件 五、设置MySQL的配置文件 六、配置启动脚本 一、软件包下载 官网下载&#xff1a;MySQL :: Download MySQL Community Server 二、上传软件…

AWTK 开源串口屏开发(8) - 系统设置

AWTK 开源串口屏开发 - 系统设置 系统设置只是一个普通应用程序&#xff0c;不过它会用 默认模型 中一些内置的属性和命令&#xff0c;所以这里专门来介绍一下。 1. 功能 在这个例子会用到 默认模型 中一些下列内置的属性和命令&#xff1a; 内置属性 属性类型说明rtc_yea…

【Unity3D日常开发】Unity3D中设置Text行首不出现标点符号

推荐阅读 CSDN主页GitHub开源地址Unity3D插件分享简书地址我的个人博客 大家好&#xff0c;我是佛系工程师☆恬静的小魔龙☆&#xff0c;不定时更新Unity开发技巧&#xff0c;觉得有用记得一键三连哦。 一、前言 在开发中会遇到Text的文本内容行首出现标点符号的情况&#xf…

PyTorch初探:基本函数与案例实践

正文&#xff1a; 在熟悉了PyTorch的安装和环境配置后&#xff0c;接下来让我们深入了解PyTorch的基本函数&#xff0c;并通过一个简单的案例来实践这些知识。 1. 基本函数 PyTorch的核心是张量&#xff08;Tensor&#xff09;&#xff0c;它类似于多维数组&#xff0c;但可以…

Cesium加载地图-高德影像

废话不多说&#xff0c;直接上代码 整体代码 <template><div id"cesiumContainer" style"height: 100vh;"></div><div id"toolbar" style"position: fixed;top:20px;left:220px;"><el-breadcrumb><…

hive面试题

0. 思维导图 1. 简述Hive♥♥ 我理解的&#xff0c;hive就是一款构建数据仓库的工具&#xff0c;它可以就结构化的数据映射为一张表&#xff0c;并且可以通过SQL语句进行查询分析。本质上是将SQL转换为MapReduce或者spark来进行计算&#xff0c;数据是存储在hdfs上&#xff0c;…

【word】论文、报告:①插入图表题注,交叉引用②快速插入图表目录③删改后一键更新

【word】①插入图表题注&#xff0c;②删改后一键更新 写在最前面插入题注交叉引用修改插入题注的文字格式快速插入图表目录 插入题注后有删改&#xff0c;实现编号一键更新 &#x1f308;你好呀&#xff01;我是 是Yu欸 &#x1f30c; 2024每日百字篆刻时光&#xff0c;感谢你…

ubuntu安装mongod

1、安装 1.1包管理公钥导入 wget -qO - https://www.mongodb.org/static/pgp/server-6.0.asc | sudo apt-key add -执行结果截图如下&#xff1a; 1.2创建列表文件 lsb_release -dc 根据你的Codename 来修改下方对应的命令&#xff0c;如果你的是jammy&#xff0c;就修改为j…