当前位置: 首页 > article >正文

机器学习数据降维方法

1.数据类型
2.如何选择降维方法进行数据降维
3.线性降维:主成分分析(PCA)、线性判别分析(LDA)
4.非线性降维
5.基于特征选择的降维
6.基于神经网络的降维

  数据降维是将高维数据转换为低维表示的过程,旨在保留关键信息的同时减少计算复杂度、去除噪声或可视化数据。常见降维方法有几类,分别对应不同数据采用。

方法类型优点缺点适用场景
PCA计算快、可解释、保留全局结构仅捕获线性关系特征相关性高、线性数据
t-SNE可视化效果好、保留局部结构计算慢、难以解释、超参敏感高维数据可视化(如单细胞RNA-seq)
UMAP比t-SNE快、保留局部和部分全局结构需调参大规模非线性数据
LDA最大化类别可分性仅适用于分类、需标签有监督分类任务
自编码器处理复杂非线性关系需要大量数据、训练成本高图像、语音等高维非线性数据
特征选择保留原始特征、可解释性强可能丢失特征间交互信息特征冗余明显的结构化数据

一、数据类型

  虽然降维方法最初多用于数值型数据,但通过适当的预处理和转换,非数值型数据(如类别型、文本、图像、图网络等) 也可以使用降维技术。降维的核心是保留数据的本质结构,无论原始形式如何,文本是通过词频或语义嵌入捕捉语义相似性。图数据是通过节点关系捕捉社区结构。类别数据是通过共现频率或概率模型发现潜在模式。

1. 类别型数据(Categorical Data)

  (1)独热编码(One-Hot Encoding)后降维:将类别变量转为二进制向量(如性别“男/女”变为[1,0]和[0,1]),再使用PCA或t-SNE降维。独热编码会大幅增加维度(“维度爆炸”),需配合降维。

2. 文本数据(Text Data)

  (1)词袋模型(Bag-of-Words) + 降维:将文本转为词频向量(TF-IDF)后,用PCA/NMF/LDA(潜在狄利克雷分配)降维。如新闻分类中,用NMF提取主题(每个主题是词的加权组合)。
  (2)词嵌入(Word Embedding):直接使用预训练的低维词向量(如Word2Vec、GloVe)表示文本,或对句子/文档向量化后降维。

3. 图数据(Graph/Network Data)

  (1)图嵌入(Graph Embedding):将节点映射为低维向量(如Node2Vec、DeepWalk),保留图的结构信息。
  (2)邻接矩阵降维:对图的邻接矩阵或拉普拉斯矩阵进行PCA或SVD分解。

4. 图像数据(Image Data)

  (1)传统方法:对像素矩阵使用PCA(如人脸识别中的“特征脸”)。
  (2)深度学习方法:用卷积自编码器(CAE)提取低维特征。

5. 混合型数据(数值+类别)

  (1)统一表征:对类别变量编码(如目标编码、嵌入),与数值变量拼接后降维。使用专门模型(如广义低秩模型,GLRM)。

二、如何选择降维方法进行数据降维

  降维方法需要综合考虑数据特性、问题目标和方法假设。

1.判断数据是否需要降维

(1)明确降维目标

描述方法推荐
可视化(降至2D/3D)优先选非线性方法(t-SNE/UMAP)
减少计算开销线性方法(PCA)或特征选择
去除噪声/冗余特征PCA、自动编码器或特征选择
提高模型性能结合监督方法(LDA、嵌入法)

(2)检查数据维度问题

描述方法推荐
特征数远大于样本数(如基因数据)必须降维
特征间高度相关PCA/线性方法有效
特征稀疏(如文本)NMF或稀疏PCA

2.选择降维方法的决策流程

(1)分析数据结构

数据特性推荐方法
线性关系(特征间方差主导)PCA、LDA(有标签)、SVD
非线性流形(复杂拓扑)t-SNE、UMAP、LLE、ISOMAP
混合类型数据统一编码后PCA,或广义低秩模型(GLRM)
高稀疏性(如文本)NMF、稀疏PCA

(2)是否带标签?
  有监督任务(分类/回归),优先用LDA(线性)或监督自编码器。特征选择递归特征消除(RFE)、基于模型的重要性排序(如XGBoost);无监督任务,PCA、t-SNE、UMAP等。

(3)是否需要可解释性

特性推荐方法
需要解释特征贡献PCA(主成分可分析)、特征选择。
无需解释自编码器、t-SNE(侧重可视化)。

(4)评估计算资源

特性推荐方法
大规模数据PCA、随机投影、增量PCA(内存高效)。
小样本高维数据t-SNE、UMAP(但需调参)

三、线性降维

1.主成分分析(PCA)

  主成分分析(PCA,Principal Component Analysis)是一种统计方法,用于通过线性变换将数据降维,同时尽可能保留数据中的主要变异信息。它是一种无监督学习方法,广泛应用于数据预处理、特征提取、降维、数据可视化和噪声去除等领域。
(1)PCA的核心思想
  PCA的目标是将原始数据投影到一组新的坐标轴(主成分)上,使得这些坐标轴的方向能够最大化数据的方差。 具体来说:
第一个主成分(PC1):是数据中方差最大的方向。
第二个主成分(PC2):是与PC1正交的方向中方差最大的方向。
后续主成分:依次类推,每个主成分都与之前的所有主成分正交,并且在剩余的方差中最大化。通过这种方式,PCA能够将数据的主要结构保留下来,同时去除一些不重要的信息(如噪声或冗余特征)。

(2)PCA的计算原理和过程代码示例
在这个例子中:
第一个主成分解释了50%的方差。
第二个主成分解释了50%的方差。
两个主成分的方差解释率之和为100%,说明降维后的数据保留了原始数据的全部信息。

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

from sklearn.decomposition import PCA
from sklearn.preprocessing import StandardScaler
import numpy as np# 示例数据
X = np.array([[2, 3],[4, 7],[6, 5],[8, 9]])# 数据标准化
scaler = StandardScaler()
X_scale = scaler.fit_transform(X)# 执行PCA
pca = PCA(n_components=2)  # 降维到2维
X_reduce = pca.fit_transform(X_scale)# 输出结果
print("原始数据(标准化后):\n", X_scale)
print("降维后的数据:\n", X_reduce)
print("主成分方向(特征向量):\n", pca.components_)
print("方差解释率:\n", pca.explained_variance_ratio_)

2.线性判别分析(LDA)

  线性判别分析(Linear Discriminant Analysis, LDA)是一种监督学习降维与分类方法,核心目标是通过线性变换将高维数据投影到低维空间,使得同类样本尽可能紧凑、不同类样本尽可能分离,从而提升分类性能。
(1)核心思想
  与无监督的 PCA 不同,LDA 利用类别标签信息,通过最大化类间方差与最小化类内方差的比值,寻找最优投影方向。直观理解,假设两类数据在二维空间中分布,LDA 的目标是找到一条直线,使得两类样本在该直线上的投影满足,类内样本尽可能集中(类内方差小);类间样本中心距离尽可能远(类间方差大)。

3.非负矩阵分解(NMF)

  将数据分解为非负矩阵的乘积,适用于所有特征为非负的场景(如图像)。

4.奇异值分解(SVD)

  对矩阵进行分解,保留主要奇异值,常用于推荐系统和文本数据(如潜在语义分析)。

四、非线性降维

1.t-SNE(t-分布随机邻域嵌入)

  保留局部相似性,适合高维数据可视化(如将数据降至2D/3D),但计算开销较大。

2.UMAP(均匀流形近似与投影)

  类似t-SNE,但计算效率更高,能同时保留局部和全局结构。

3.ISOMAP(等距映射)

4.局部线性嵌入(LLE)

五、基于特征选择的降维

1.过滤法

  使用统计指标(如方差、卡方检验、互信息)选择重要特征。

2.包装法

  通过模型性能评估特征子集(如递归特征消除RFE)。

3.嵌入法

  模型训练过程中自动选择特征(如Lasso回归、决策树的特征重要性)。

六、基于神经网络的降维

1.自编码器(Autoencoder)

  通过编码器压缩数据,解码器重建数据,隐层作为低维表示。可处理非线性关系。

2.变分自编码器(VAE)

  在自编码器中引入概率生成模型,适合生成任务。

3.深度非线性降维(如深度信念网络)

  利用多层神经网络学习复杂非线性映射。

相关文章:

机器学习数据降维方法

1.数据类型 2.如何选择降维方法进行数据降维 3.线性降维:主成分分析(PCA)、线性判别分析(LDA) 4.非线性降维 5.基于特征选择的降维 6.基于神经网络的降维 数据降维是将高维数据转换为低维表示的过程,旨在保…...

uefi和legacy有什么区别_从几方面分析uefi和legacy的区别

uefi和legacy是两种不同的引导方式,uefi是新式的BIOS,legacy是传统BIOS。你在UEFI模式下安装的系统,只能用UEFI模式引导;同理,如果你是在Legacy模式下安装的系统,也只能在legacy模式下进系统。uefi只支持64为系统且磁盘…...

Spring @Autowired自动装配的实现机制

Spring Autowired自动装配的实现机制 Autowired 注解实现原理详解一、Autowired 注解定义二、Qualifier 注解辅助指定 Bean 名称三、BeanFactory:按类型获取 Bean四、注入逻辑实现五、小结 源码见:mini-spring Autowired 注解实现原理详解 Autowired 的…...

Neo4j 数据可视化与洞察获取:原理、技术与实践指南

在关系密集型数据的分析领域,Neo4j 凭借其强大的图数据模型脱颖而出。然而,将复杂的连接关系转化为直观见解,需要专业的数据可视化技术和分析方法。本文将深入探讨 Neo4j 数据可视化的核心原理、关键技术、实用技巧以及结合图数据科学库&…...

一种基于性能建模的HADOOP配置调优策略

1.摘要 作为分布式系统基础架构的Hadoop为应用程序提供了一组稳定可靠的接口。该文作者提出了一种基于集成学习建模的Hadoop配置参数调优的方法。实验结果表明,该性能模型可以准确预测MapReduce应用程序的运行时间。采用提出的Hadoop配置参数方法调优后&#xff0c…...

【Stable Diffusion 1.5 】在 Unet 中每个 Cross Attention 块中的张量变化过程

系列文章目录 文章目录 系列文章目录前言特征图和注意力图的尺寸差异原因在Break-a-Scene中的具体实现总结 前言 特征图 (Latent) 尺寸和注意力图(attention map)尺寸在扩散模型中有差异,是由于模型架构和注意力机制的特性决定的。 特征图和注意力图的尺寸差异原…...

MySQL - Windows 中 MySQL 禁用开机自启,并在需要时手动启动

Windows 中 MySQL 禁用开机自启,并在需要时手动启动 打开服务管理器:在底部搜索栏输入【services.msc】 -> 点击【服务】 打开 MySQL 服务的属性管理:找到并右击 MySQL 服务 -> 点击【属性】 此时的 MySQL 服务:正在运行&a…...

前端下载文件,文件打不开的问题记录

需求: 下载是很常见的接口,但是经常存在下载的文件异常的问题。此处记录一个常见的错误。 分析: 1、接口请求需要配置{responseType: ‘blob’},此时要求返回的格式为blob,进而进行下载。 const res await axios.…...

小白的进阶之路系列之十一----人工智能从初步到精通pytorch综合运用的讲解第四部分

本文将介绍如何用PyTorch构建模型 torch.nn.Module和torch.nn.Parameter 除了Parameter之外,本视频中讨论的所有类都是torch.nn.Module的子类。这是PyTorch基类,用于封装PyTorch模型及其组件的特定行为。 torch.nn.Module的一个重要行为是注册参数。如果特定的Module子类具…...

OpenCV CUDA模块霍夫变换------在 GPU 上执行概率霍夫变换检测图像中的线段端点类cv::cuda::HoughSegmentDetector

操作系统:ubuntu22.04 OpenCV版本:OpenCV4.9 IDE:Visual Studio Code 编程语言:C11 算法描述 cv::cuda::HoughSegmentDetector 是 OpenCV 的 CUDA 模块中一个非常重要的类,它用于在 GPU 上执行 概率霍夫变换(Probabi…...

详解一下RabbitMQ中的channel.Publish

函数定义(来自 github.com/streadway/amqp) func (ch *Channel) Publish(exchange string,key string,mandatory bool,immediate bool,msg Publishing, ) error这个方法的作用是:向指定的交换机 exchange 发送一条消息 msg,带上路…...

硬件学习笔记--62 MCU的ECC功能简介

1. 基本概念 ECC(Error Correction Code,错误校正码)是MCU(微控制器)中用于检测和纠正存储器数据错误的硬件功能,主要应用于Flash、RAM、Cache等存储单元,确保数据在传输或存储过程中的可靠性。…...

Uiverse.io:免费UI组件库

Uiverse.io 完整使用指南:免费UI组件库的终极教程 🌟 什么是 Uiverse.io? Uiverse.io 是一个开源的UI组件库平台,为开发者和设计师提供了大量精美的、可直接使用的HTML/CSS组件。这个平台的特色在于所有组件都是由社区贡献的,完全免费,并且可以直接复制代码使用。 �…...

普中STM32F103ZET6开发攻略(四)

接续上文:普中STM32F103ZET6开发攻略(三)-CSDN博客 点关注不迷路哟。你的点赞、收藏,一键三连,是我持续更新的动力哟!!! 目录 接续上文:普中STM32F103ZET6开发攻略&am…...

ck-editor5的研究 (5):优化-页面离开时提醒保存,顺便了解一下 Editor的生命周期 和 6大编辑器类型

前言 经过前面的 4 篇内容,我们已经慢慢对 CKEditor5 熟悉起来了。这篇文章,我们就来做一个优化,顺便再补几个知识点: 当用户离开时页面时,提醒他保存数据了解一下 CKEditor5 的 六大编辑器类型了解一下 editor 实例对…...

[3D GISMesh]三角网格模型中的孔洞修补算法

📐 三维网格模型空洞修复技术详解 三维网格模型在扫描、重建或传输过程中常因遮挡、噪声或数据丢失产生空洞(即边界非闭合区域),影响模型的完整性与可用性。空洞修复(Hole Filling)是计算机图形学和几何处…...

11.2 java语言执行浅析3美团面试追魂七连问

美团面试追魂七连问:关于Object o New Object() ,1请解释一下对象的创建过程(半初始化) 2,加问DCL要不要volatile 问题(指令重排) 3.对象在内存中的存储布局(对象与数组的存储不同),4.对象头具体包括什么.5.对象怎么定位.6.对象怎么分配(栈-线程本地-Eden-Old)7.在…...

MySQL 全量、增量备份与恢复

一.MySQL 数据库备份概述 备份的主要目的是灾难恢复,备份还可以测试应用、回滚数据修改、查询历史数据、审计等。之前已经学习过如何安装 MySQL,本小节将从生产运维的角度了解备份恢复的分类与方法。 1 数据备份的重要性 在企业中数据的价值至关…...

【25.06】FISCOBCOS使用caliper自定义测试 通过webase 单机四节点 helloworld等进行测试

前置条件 安装一个Ubuntu20+的镜像 基础环境安装 Git cURL vim jq sudo apt install -y git curl vim jq Docker和Docker-compose 这个命令会自动安装docker sudo apt install docker-compose sudo chmod +x /usr/bin/docker-compose docker versiondocker-compose vers…...

MonoPCC:用于内窥镜图像单目深度估计的光度不变循环约束|文献速递-深度学习医疗AI最新文献

Title 题目 MonoPCC: Photometric-invariant cycle constraint for monocular depth estimation of endoscopic images MonoPCC:用于内窥镜图像单目深度估计的光度不变循环约束 01 文献速递介绍 单目内窥镜是胃肠诊断和手术的关键医学成像工具,但其…...

如何计算H5页面加载时的白屏时间

计算 H5 页面加载时的 白屏时间(First Paint Time)是前端性能优化的重要指标,通常指从用户发起页面请求到浏览器首次渲染像素(如背景色、文字等)的时间。以下是几种常用的计算方法: 1. 使用 Performance AP…...

SpringAI系列 - MCP篇(三) - MCP Client Boot Starter

目录 一、Spring AI Mcp集成二、Spring AI MCP Client Stater三、spring-ai-starter-mcp-client-webflux集成示例3.1 maven依赖3.2 配置说明3.3 集成Tools四、通过SSE连接MCP Server五、通过STDIO连接MCP Server六、通过JSON文件配置STDIO连接一、Spring AI Mcp集成 Spring AI…...

【深度学习新浪潮】以Dify为例的大模型平台的对比分析

我们从核心功能、适用群体、易用性、可扩展性和安全性五个维度展开对比分析: 一、核心功能对比 平台核心功能多模型支持插件与工具链Dify低代码开发、RAG增强、Agent自律执行、企业级安全支持GPT-4/5、Claude、Llama3、Gemini及开源模型(如Qwen-VL-72B),支持混合模型组合可…...

Asp.net core 使用EntityFrame Work

安装以下Nuget 包 Microsoft.EntityFrameworkCore.Tools Microsoft.EntityFrameworkCore.Design Microsoft.AspNetCore.Diagnostics.EntityFrameworkCore Microsoft.EntityFrameworkCore.SqlServer或者Npgsql.EntityFrameworkCore.PostgreSQL 安装完上述Nuget包之后,在appset…...

isp中的 ISO代表什么意思

isp中的 ISO代表什么意思 在摄影和图像信号处理(ISP,Image Signal Processor)领域,ISO是一个用于衡量相机图像传感器对光线敏感度的标准参数。它最初源于胶片摄影时代的 “国际标准化组织(International Organization …...

AI Coding 资讯 2025-06-03

Prompt工程 RAG-MCP:突破大模型工具调用瓶颈,告别Prompt膨胀 大语言模型(LLM)在工具调用时面临Prompt膨胀和决策过载两大核心挑战。RAG-MCP创新性地引入检索增强生成技术,通过外部工具向量索引和动态检索机制,仅将最相关的工具信…...

2024年12月 C/C++(三级)真题解析#中国电子学会#全国青少年软件编程等级考试

C/C++编程(1~8级)全部真题・点这里 第1题:最近的斐波那契数 斐波那契数列 Fn 的定义为:对 n ≥ 0 有 Fn+2 = Fn+1 + Fn,初始值为 F0 = 0 和 F1 = 1。所谓与给定的整数 N 最近的斐波那契数是指与 N 的差之绝对值最小的斐波那契数。 本题就请你为任意给定的整数 N 找出与之最…...

3d GIS数据来源与编辑工具

1、卫星遥感 2、航空摄影测量 3、地面实测技术 全站仪 3维扫描 3D GIS数据制作全流程详解 一、数据采集:多源数据获取 3D GIS数据的制作需从多维度采集地理空间信息,以下是主要采集方式及适用场景: (一)遥感与航测…...

NeRF PyTorch 源码解读 - 体渲染

文章目录 1. 体渲染公式推导1.1. T ( t ) T(t) T(t) 的推导1.2. C ( r ) C(r) C(r) 的推导 2. 体渲染公式离散化3. 代码解读 1. 体渲染公式推导 如下图所示,渲染图像上点 P P P 的颜色值 c c c 是累加射线 O P → \overrightarrow{OP} OP 在近平面和远平面范围…...

SpringBoot 数据库批量导入导出 Xlsx文件的导入与导出 全量导出 数据库导出表格 数据处理 外部数据

介绍 poi-ooxml 是 Apache POI 项目中的一个库,专门用于处理 Microsoft Office 2007 及以后版本的文件,特别是 Excel 文件(.xlsx 格式)和 Word 文件(.docx 格式)。 在管理系统中需要对数据库的数据进行导…...