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

Day21打卡—常见降维算法

知识点回顾:
  1. LDA线性判别
  2. PCA主成分分析
  3. t-sne降维

作业:

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

(一)降维的应用场景和主要用途

何时使用降维?
  1. 高维数据可视化:当数据维度超过3维时,难以直接可视化,降维可将其映射到2D/3D。

  2. 特征冗余或噪声:数据中存在高度相关或冗余特征时,降维可提取关键信息。

  3. 模型训练加速:降低计算复杂度(如SVM、神经网络在高维数据中计算成本高)。

  4. 避免维度灾难:特征数接近样本量时,模型容易过拟合,降维可缓解。

主要应用领域
  • 图像处理:将像素特征压缩(如人脸识别中的特征提取)。

  • 自然语言处理:词向量降维(如Word2Vec的300维降到2D)。

  • 生物信息学:基因表达数据分析。

  • 推荐系统:用户-物品矩阵的稀疏性处理。

总结:降维方法的选择:

  • 需要可视化或保留局部结构 → t-SNE,常被用于探索性数据分析和可视化任务
  • 需要快速预处理或保留全局方差 → PCA

  • 有标签数据且需分类优化 → LDA

(二)在某些特定数据集上t-sne的可视化和pca可视化的区别

  • MNIST数据集

    • PCA:全局结构保留,但不同数字可能重叠。

    • t-SNE:局部簇更清晰,不同数字分离明显。

  • 环形/流形数据

    • PCA:可能将环形数据压扁成线性分布。

    • t-SNE:能保留环形或非线性结构。

(三)应用

import numpy as np
import matplotlib.pyplot as plt
from sklearn.decomposition import PCA
from sklearn.manifold import TSNE
from sklearn.datasets import load_wine
from sklearn.preprocessing import StandardScaler# 加载葡萄酒数据集(13维特征,3个类别)
data = load_wine()
X = data.data
y = data.target# 数据标准化(t-SNE对尺度敏感)
scaler = StandardScaler()
X_scaled = scaler.fit_transform(X)# PCA降维
pca = PCA(n_components=2)
X_pca = pca.fit_transform(X_scaled)# t-SNE降维(设置random_state保证结果可复现)
tsne = TSNE(n_components=2, perplexity=30, random_state=42)
X_tsne = tsne.fit_transform(X_scaled)# 可视化对比
plt.figure(figsize=(12, 5))# PCA可视化
plt.subplot(1, 2, 1)
plt.scatter(X_pca[:, 0], X_pca[:, 1], c=y, cmap='viridis', edgecolor='k')
plt.title('PCA Visualization of Wine Dataset')
plt.xlabel('PC1 ')
plt.ylabel('PC2 ')# t-SNE可视化
plt.subplot(1, 2, 2)
plt.scatter(X_tsne[:, 0], X_tsne[:, 1], c=y, cmap='viridis', edgecolor='k')
plt.title('t-SNE Visualization of Wine Dataset')
plt.xlabel('t-SNE Dimension 1')
plt.ylabel('t-SNE Dimension 2')plt.tight_layout()
plt.show()

结果:

@浙大疏锦行 

相关文章:

  • 免安装 + 快速响应Photoshop CS6 精简版低配置电脑修图
  • Linux PCI 驱动开发指南
  • AI日报 · 2025年05月11日|传闻 OpenAI 考虑推出 ChatGPT “永久”订阅模式
  • 【React中useRef钩子详解】
  • 【数据结构入门训练DAY-31】组合的输出
  • 【音视频工具】MP4BOX使用
  • k8s 资源对比总结
  • 通过 Azure DevOps 探索 Helm 和 Azure AKS
  • istio in action之应用弹性与容错机制
  • 理解页内碎片与页外碎片:分页存储管理的关键问题
  • 长短期记忆网络(LSTM)深度解析:从理论到实践的全方位指南
  • 23、DeepSeek-V2论文笔记
  • LangGraph框架中针对MCP协议的变更-20250510
  • YOLOv2框架深度解析
  • Go语言实现优雅关机和重启的示例
  • 九、STM32入门学习之WIFI模块(ESP32C3)
  • TIME - MoE 模型代码 4——Time-MoE-main/run_eval.py
  • 图形化编程革命:iVX携手AI 原生开发范式
  • MNIST 数据并行 Data Parallel - DP
  • 【目标检测系列】YOLOV1解读
  • 学者的“好运气”:读本尼迪克特·安德森《椰壳碗外的人生》
  • 回望乡土:对媒介化社会的反思
  • 江西吉水通报一男子拒服兵役:不得考公,两年内经商、升学等受限
  • 扶桑谈|从石破茂“越菲行”看日本周边外交布局战略新动向
  • 80后莆田市文旅局长马骏登台与杨宗纬合唱,“演唱会秒变旅游推介会”
  • 教育部基础教育教指委:小学阶段禁止学生独自使用开放式内容生成功能