5.15 day21

知识点回顾:

  1. LDA线性判别
  2. PCA主成分分析
  3. t-sne降维

自由作业:探索下什么时候用到降维?降维的主要应用?或者让ai给你出题,群里的同学互相学习下。可以考虑对比下在某些特定数据集上t-sne的可视化和pca可视化的区别。

一、何时需要使用降维?

1. 数据高维困境
  • 维度灾难(Curse of Dimensionality):当特征维度超过样本数量时,模型容易过拟合

  • 存储与计算成本:高维数据需要更多存储空间,算法复杂度呈指数级增长

  • 可视化需求:人类无法直接理解三维以上的数据分布

2. 典型触发场景
  • 特征数 > 样本数(如基因表达数据)

  • 存在高度相关特征(如自然语言中的词向量)

  • 需要探索数据潜在结构(如客户分群分析)


二、降维的主要应用场景

应用领域 典型案例 常用方法
数据可视化 MNIST手写数字的二维投影 PCA, t-SNE, UMAP
特征工程 图像处理中从像素空间提取语义特征 Autoencoder, PCA
数据压缩 人脸识别中的人脸特征压缩存储 LDA, PCA
去噪处理 去除传感器数据中的高频噪声 Robust PCA
知识发现 发现单细胞RNA测序数据中的细胞亚型 t-SNE, PHATE

三、t-SNE vs PCA可视化对比实验

1. 实验设计
  • 数据集:MNIST手写数字数据集(70000张28x28灰度图)

  • 对比维度

    • 计算效率

    • 局部/全局结构保持

    • 聚类分离效果

    • 参数敏感性

      import numpy as np
      import matplotlib.pyplot as plt
      from sklearn import datasets, decomposition, manifold
      
      # 加载MNIST简化版
      digits = datasets.load_digits()
      X, y = digits.data, digits.target
      
      # 执行降维
      pca = decomposition.PCA(n_components=2)
      X_pca = pca.fit_transform(X)
      
      tsne = manifold.TSNE(n_components=2, random_state=42)
      X_tsne = tsne.fit_transform(X)
      
      # 可视化对比
      plt.figure(figsize=(15,6))
      
      plt.subplot(121)
      plt.scatter(X_pca[:,0], X_pca[:,1], c=y, cmap='Spectral', s=5)
      plt.title(f'PCA (Explained Variance: {sum(pca.explained_variance_ratio_):.2f})')
      plt.colorbar()
      
      plt.subplot(122)
      plt.scatter(X_tsne[:,0], X_tsne[:,1], c=y, cmap='Spectral', s=5)
      plt.title('t-SNE Visualization')
      plt.colorbar()
      
      plt.show()

      最新技术前沿
      UMAP:保留全局结构的同时提升计算效率

      PHATE:专为生物医学数据设计的流形学习

      对比学习:结合深度学习的语义保持降维

你可能感兴趣的:(人工智能,算法)