首页 > 科技周边 > 人工智能 > 了解降低维度

了解降低维度

尊渡假赌尊渡假赌尊渡假赌
发布: 2025-03-01 09:15:11
原创
499 人浏览过

维度降低是机器学习和数据分析中的至关重要技术。 它将高维数据转换为较低维的表示,并保留基本信息。 具有许多功能的高维数据集对机器学习模型构成了挑战。本教程探讨了使用降低尺寸降低,各种技术及其在图像数据的应用的原因。 我们将可视化结果并比较较低维空间中的图像。

为了全面了解机器学习,请考虑“成为Python的机器学习科学家”职业曲目。

为什么减少尺寸?

高维数据,虽然信息丰富,但通常包含冗余或无关的功能。这导致了诸如:

之类的问题

    维度的诅咒:
  1. 高维度使数据点稀疏,通过机器学习模型阻碍模式识别。
  2. 过度拟合:
  3. 模型可能会学习噪声而不是潜在的模式。
  4. 计算复杂性:增加维度大大提高了计算成本。
  5. 可视化困难:
  6. 可视化数据以外的数据很具有挑战性。
  7. 降低性降低简化了数据,同时保留关键功能,提高模型性能和解释性。
线性与非线性方法

降低降低技术被归类为线性或非线性:

线性方法:这些假设数据位于线性子空间内。 它们在计算上有效,适合线性结构化数据。示例包括:

主体组件分析(PCA):识别方向(主要组件)最大化数据方差。

  • 线性判别分析(LDA):有用,可用于分类,在降低尺寸降低过程中保持类可分离性。 在“ Python中的主要组件分析(PCA)”教程中了解更多信息。>
  • >
  • 非线性方法:当数据驻留在非线性歧管上时使用。 他们更好地捕获复杂的数据结构。示例包括:

t-sne(t分布的随机邻居嵌入):在保留局部关系的同时,在较低维度(2D或3D)中可视化高维数据。 有关详细信息,请参见我们的T-SNE指南。

  • umap(统一的歧管近似和投影):类似于t-sne,但在保存全局结构方面更快,更好。 >自动编码器:
  • 用于无监督数据压缩的神经网络。
  • 降低的类型
  • 降低的降低被广泛分为:
  • >特征选择:在不转换数据的情况下选择最相关的功能。方法包括过滤器,包装器和嵌入式方法。

    >

    > 特征提取:>通过创建原始图的组合来将数据转换为较低维空间。 当原始功能相关或冗余时,这很有用。 PCA,LDA和非线性方法属于此类别。

    > 图像数据

    维度降低

    >让我们使用Python将维度降低到图像数据集:>

    1。数据集加载:

    import numpy as np
    import matplotlib.pyplot as plt
    from sklearn.datasets import load_digits
    from sklearn.manifold import TSNE
    from sklearn.preprocessing import StandardScaler
    
    digits = load_digits()
    X = digits.data  # (1797, 64)
    y = digits.target # (1797,)
    
    print("Data shape:", X.shape)
    print("Labels shape:", y.shape)
    登录后复制

    这将加载数字数据集(手写数字0-9,每个8x8像素,平坦至64个功能)。

    2。可视化图像:

    def plot_digits(images, labels, n_rows=2, n_cols=5):
        # ... (plotting code as before) ...
    登录后复制

    此功能显示示例图像。

    3。应用T-SNE:

    scaler = StandardScaler()
    X_scaled = scaler.fit_transform(X)
    
    n_samples = 500
    X_sub = X_scaled[:n_samples]
    y_sub = y[:n_samples]
    
    tsne = TSNE(n_components=2, perplexity=30, n_iter=1000, random_state=42)
    X_tsne = tsne.fit_transform(X_sub)
    
    print("t-SNE result shape:", X_tsne.shape)
    登录后复制

    这可以缩放数据,选择一个子集以提高效率,并应用T-SNE以降低2个维度。

    4。可视化T-SNE输出:

    plt.figure(figsize=(8, 6))
    scatter = plt.scatter(X_tsne[:, 0], X_tsne[:, 1], c=y_sub, cmap='jet', alpha=0.7)
    plt.colorbar(scatter, label='Digit Label')
    plt.title('t-SNE (2D) of Digits Dataset (500-sample)')
    plt.show()
    登录后复制
    这可视化2D T-SNE表示,由数字标签颜色编码。

    5。比较图像:

    import random
    
    idx1, idx2 = random.sample(range(X_tsne.shape[0]), 2)
    
    # ... (distance calculation and image plotting code as before) ...
    登录后复制
    这随机选择两个点,计算其在T-SNE空间中的距离,并显示相应的图像。

    Understanding Dimensionality Reduction Understanding Dimensionality Reduction Understanding Dimensionality Reduction Understanding Dimensionality Reduction 结论

    维度降低增强了机器学习模型效率,准确性和可解释性,从而改善了数据可视化和分析。 该教程涵盖了降低维度的概念,方法和应用程序,以证明T-SNE在图像数据中的使用。 “ Python的降低降低”课程提供了进一步的深入学习。>

    FAQS

    公共尺寸缩小技术:
      pca和t-sne。
    • > pca监督:
    • >何时使用尺寸降低:
    • 在处理高维数据以降低复杂性,改善模型性能或可视化时。
    • 降低维度的主要目标:在保留重要信息的同时,还要降低功能。
    • >现实生活应用程序:文本分类,图像检索,面部识别,神经科学,基因表达分析。

以上是了解降低维度的详细内容。更多信息请关注PHP中文网其他相关文章!

本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板