深圳Yolo 视觉
深圳
立即加入
词汇表

降维

使用降维技术简化高维数据。 立即提高 ML 模型性能、可视化和效率!

降维是机器学习(ML)中的一项重要技术 机器学习 (ML) 将高维数据转换为低维表示。这一过程保留了原始数据中最有意义的属性 同时去除噪音和冗余变量。通过减少输入特征的数量--通常称为 开发人员可以减轻 "维度诅咒"。 维度诅咒是指模型的性能会随着数据复杂度的增加而降低。 这种现象是指随着输入空间复杂度的增加,模型的性能也会下降。有效管理数据维度是 数据预处理的关键步骤。 有效管理数据维度是数据预处理的关键步骤,有助于构建稳健高效的人工智能系统。

缩小尺寸的重要性

处理具有大量特征的数据集给计算和统计带来了巨大挑战。 降维可以解决这些问题,并为人工智能开发生命周期带来以下几大好处 人工智能开发生命周期的几个关键优势:

  • 减少过度拟合:在样本不足的高维数据上训练的模型容易出现 过拟合,即记住噪音而不是 学习通用模式。降低维度可以简化模型结构。
  • 计算效率:更少的特征意味着更少的数据需要处理。这大大加快了 模型训练,并减少实时推理所需的内存占用。 实时推理所内存占用。
  • 增强可视化:人类的直觉很难理解三维以外的数据。 将数据压缩到二维或三维空间的技术可实现具有洞察力的 数据可视化,揭示数据集群和关系。 关系。
  • 降噪:通过关注数据中最强的信号,降维可以 过滤掉无关的 背景信息,从而提高整体准确性。

常见的降维技术

降维方法一般分为两类:线性和非线性。

主成分分析 (PCA)

主成分分析(PCA) 是应用最广泛的线性技术。它通过识别 "主成分"--数据中方差最大的方向--并将数据投射到这些方向上。 数据中方差最大的方向,并将数据投射到这些方向上。这就保留了数据集的整体结构 同时舍弃信息量较少的维度。它是 无监督学习工作流程中主要工具。

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

复杂结构可视化 t-SNE是一种 是一种流行的非线性技术。与 PCA 不同,t-SNE 擅长保留局部邻域,因此非常适合在高维空间中分离不同的聚类。 在高维空间中分离不同的聚类。如需更深入的了解,Distill 关于 如何有效使用 t-SNE 的文章提供了很好的可视化指导。

自动编码器

自动编码器是一种 神经网络 到潜空间表示,然后进行重构。这种方法可以学习非线性变换,是现代深度学习(DL)的基础。 现代深度学习 (DL) 的基础。

人工智能在现实世界中的应用

降维不仅仅是理论上的,它还为不同行业的许多实际应用提供了动力。

  • 计算机视觉:在图像分类中 图像分类中,原始图像包含 数以千计的像素(维度)。 卷积神经网络(CNN),如《YOLO11》的骨干网络。YOLO11等卷积神经网络11 降维。它们使用分层卷积和池化层将空间维度压缩为丰富的 特征图,使模型能够高效地detect 物体。 高效地检测物体。
  • 基因组学和生物信息学:生物数据集通常包含数千个基因的表达水平。 基因的表达水平。国家人类基因组研究所等机构的研究人员 国家人类基因组研究所等机构的研究人员利用降维技术 确定与疾病相关的基因标记,将复杂的生物数据简化为可操作的见解。
  • 自然语言处理:文本数据的维度极高。像 词嵌入等技术可将成千上万的词汇 如 300 维),为情感分析等任务捕捉语义。 情感分析

降维与特征选择

区分降维与特征选择非常重要。 特征选择

  • 特征选择是指从原始特征中选择一个子集,并舍弃其余特征(例如,只保留人口数据集中的 "年龄 "和 "收入")。 例如,只保留人口数据集中的 "年龄 "和 "收入")。
  • 降维(特别是 特征提取)创建 特征是原始特征的组合。例如,PCA 可以将 "身高" 和 "体重 "合并成一个代表 "大小 "的主成分。

代码示例

下面的Python 代码段使用了流行的Scikit-learn 库,将 PCA 将 PCA 应用于数据集。这演示了如何将包含 5 个特征的数据集压缩到 2 个有意义的维度。

import numpy as np
from sklearn.decomposition import PCA

# 1. Create dummy data: 3 samples, 5 features each
X = np.array([[10, 20, 30, 40, 50], [15, 25, 35, 45, 55], [12, 22, 32, 42, 52]])

# 2. Initialize PCA to reduce dimensionality to 2 components
pca = PCA(n_components=2)

# 3. Fit and transform the data to lower dimensions
X_reduced = pca.fit_transform(X)

print(f"Original shape: {X.shape}")  # Output: (3, 5)
print(f"Reduced shape: {X_reduced.shape}")  # Output: (3, 2)

加入Ultralytics 社区

加入人工智能的未来。与全球创新者联系、协作和共同成长

立即加入