机器学习整理

绪论

什么是机器学习?

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

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

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

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

有监督学习:从有标记的样本中学习,如决策树。
无监督学习:从不含标记的样本中学习,如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个属性的子集,然后再从这个子集中选择一个最有属性用于划分。

使用集成学习优化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更多用于优化分类器的性能。

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

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

相关文章

Go使用记忆化搜索的套路【以20240121力扣每日一题为例】

题目 分析 这道题很明显记忆化搜索,用py很容易写出来 Python class Solution:def splitArray(self, nums: List[int], k: int) -> int:n len(nums)# 寻找分割子数组中和的最小的最大值s [0]for num in nums:s.append(s[-1] num)#print(s)cachedef dfs(cur,…

WampServer

开发笔记 推荐链接php无法保存SESSION问题部署SSL时候产生的问题 推荐链接 链接目录 php无法保存SESSION问题 php.ini文件和phpForApache.ini 文件 里面都有 对路径的控制,相关路径问题可能也需要进行修改,打开文件搜索wamp64或wamp 就可以看到了&…

火山引擎ByteHouse:“专用向量数据库”与“数据库+向量扩展”,怎么选?

更多技术交流、求职机会,欢迎关注字节跳动数据平台微信公众号,回复【1】进入官方交流群 背景 随着LLM(Large Language Model)的不断发展,向量检索也逐渐成为关注的焦点。LLM通过处理大量的文本数据,获取丰…

第9章-网络设备基本调试

1. 网络连通性测试 ping命令 定义:基于ICMP协议开发的应用程序,检测网络连通性; 功能: ① 检测网络连接的状态; ② 检测目标计算机是否在线; ③ 定位故障排除; ④ 检测网络延迟和丢包情况&#…

c++QT文件IO

1、QFileDialog文件对话框 与QMessageBox一样,QFileDialog也继承了QDialog类,直接使用静态成员函数弹窗。弹出的结果(选择文件的路径)通过返回值获取。 1)获取一个打开或保存的文件路径 // 获取一个打开或保存的文件路…

Linux:动静态库的概念制作和底层工作原理

文章目录 动静态库基础认知动静态库基本概念静态库的制作库的概念包的概念 静态库的使用第三方库小结 动态库的制作动态库的使用动态库如何找到内容?小结 动态库加载库和程序都要加载可执行程序的地址问题地址问题逻辑地址和平坦模式绝对编址和相对编址与位置无关码…

esxi配置NTP自动对时与手动对时

目录 背景解法配置NTP服务器立即与NTP服务器同步时间 附:几个常用的NTP服务器列表 背景 VMware ESXi 6.7运行了一段时间后偶然发现系统时间与标准时间有5分钟左右的差异,于是研究了下如何自动对时以及用命令行立即对时。 解法 配置NTP服务器 首先在管…

啥,ui叫我做一个移动端好看的轮播--异形的Slide

先看效果,得实现两边的缩放和无线滚动 实现方法 我的基础架构是 next.jsswiper 下载swiper包 yarn add swiper下载后在页面中引用 import { useEffect, useState } from "react"; import styles from "./index.module.css"; import Image from "n…

DataStream API(源算子)

目录 源算子 1,从集合中读取数据 2,从文件读取数据 3,从 Socket 读取数据 4,从 Kafka 读取数据 5,自定义源算子 6,Flink 支持的数据类型 6.1 Flink 支持多种数据类型,包括但不限于&…

一、认识 JVM 规范(JVM 概述、字节码指令集、Class文件解析、ASM)

1. JVM 概述 JVM:Java Virtual Machine,也就是 Java 虚拟机 所谓虚拟机是指:通过软件模拟的具有完整硬件系统功能的、运行在一个完全隔离环境中的计算机系统。 即:虚拟机是一个计算机系统。这种计算机系统运行在完全隔离的环境中…

Linux Centos7环境下安装Redis5

Centos7环境下安装Redis5 使用 yum 安装创建符号链接针对可执⾏程序设置符号链接针对配置⽂件设置符号链接 修改配置文件启动Redis停止Redis 一般情况下我们在 linux 系统中想要安装一些程序首先会想到使用 yum 源来安装, 但是在下图中我们可以看到 Redis 版本还是3.X的版本, 所…

优化用户体验测试应用领域:提升产品质量与用户满意度

在当今数字化时代,用户体验测试应用已经成为确保产品质量、提升用户满意度的关键工具。随着技术的不断发展,用户的期望也在不断演变,因此,为了保持竞争力,企业必须将用户体验置于产品开发的核心位置。本文将探讨用户体…

vcruntime140_1.dll文件丢失有什么办法可以解决

vcruntime140_1.dll文件丢失是电脑中常见的事情,解决vcruntime140_1.dll丢失的办法也有很多种,今天我们就来聊聊为什么要修复vcruntime140_1.dll文件,vcruntime140_1.dll在电脑中的重要性,以及详细的解决vcruntime140_1.dll丢失的…

GPT-5不叫GPT-5?下一代模型会有哪些新功能?

OpenAI首席执行官奥特曼在上周三达沃斯论坛接受媒体采访时表示,他现在的首要任务就是推出下一代大模型,这款模型不一定会命名GPT-5。虽然GPT-5的商标早已经注册。 如果GPT-4目前解决了人类任务的10%,GPT-5应该是15%或者20%。 OpenAI从去年开…

使用DockerFile构建镜像与镜像上传

目录 前言:为什么要使用Dockerfile ? DockerFile构建镜像 1、构建基础对象 2、Dockerfile文件结构 3、构建Dockerfile文件镜像 二、镜像上传(阿里云) 前言:为什么要使用Dockerfile ? 首先Dockerfile …

Element组件完整引入、按需引入、样式修改(全局、局部)、简单安装less以及npm命令证书过期等

目录 一、npm 安装二、完整引入三、按需引入四、样式修改1.按需加载的全局样式修改2. 局部样式修改1. 在 css 预处理器如 less scss 等直接使用::v-deep2. 只能用在原生 CSS 语法中:/deep/ 或者 >>> 五、 拓展:npm 安装less报错,提示证书过期六…

Java Web(二)--HTML

基本介绍 官网文档地址: HTML 教程 HTML(HyperText Mark-up Language)即超文本标签语言;HTML 文本是由 HTML 标签组成的文本,可以包括文字、图形、动画、声音、表格、链接等;HTML 的结构包括头部(Head&…

CWE、CVE

文章目录 前言一、CVE是什么?二、官网浏览主页词汇 三、CWE 前言 一、CVE是什么? 关于CVE是什么,前辈已经阐述得很详细通透,这里不再赘述或生产一些垃圾信息,CVE公共漏洞和暴露的学习 总结: 标识某个漏洞…

不就业,纯兴趣,应该自学C#还是JAVA?

不就业,纯兴趣,应该自学C#还是JAVA? 在开始前我有一些资料,是我根据网友给的问题精心整理了一份「JAVA的资料从专业入门到高级教程」, 点个关注在评论区回复“888”之后私信回复“888”,全部无偿共享给大家&#xff…

测试老司机聊聊测试设计都包含什么?

一、数据组合测试设计 数据组合测试设计(Combinatorial Test Design,CTD)是一种优化测试用例的方法,它通过系统地组合不同的测试数据输入,以确保全面覆盖各种可能的测试情况。这种方法主要应用于软件测试领域&#xff…