当前位置: 首页 > 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()

结果:

@浙大疏锦行 

http://www.xdnf.cn/news/387919.html

相关文章:

  • 【EBNF】EBNF:扩展巴克斯-诺尔范式文件格式与实用写法详解
  • 支持向量机的回归用法详解
  • “爱生活”小项目问题总结
  • AVL树解析
  • 控制台打印带格式内容
  • Python Cookbook-7.9 访问 MySQL 数据库
  • 游戏引擎学习第271天:生成可行走的点
  • 【计算机视觉】OpenCV实战项目:ETcTI_smart_parking智能停车系统深度解析
  • 毫米波雷达点云SLAM系统
  • 【python】基础知识点100问
  • .Net HttpClient 使用请求数据
  • 复现nn-Unet模型 实验报告
  • 【RabbitMQ】 RabbitMQ高级特性(一)
  • MYSQL数据库集群高可用和数据监控平台
  • LLM 论文精读(七)Rethinking Reflection in Pre-Training
  • 优化审核模块响应时间从8s降至1.2s的数据库解决方案
  • 初探机器学习与深度学习
  • 产教融合下的康养休闲旅游服务实训室建设要点
  • 什么是卷积神经网络
  • 北斗导航 | 深度学习与北斗导航定位算法结合思路、原理、公式、Python+matlab代码
  • 2025数维杯挑战赛A题【空中芭蕾——蹦床运动的力学行为分析】原创论文分享
  • LabVIEW的PID参数自适应控制
  • MCP(大模型协议文本)服务 的详细解析
  • stm32之SPI
  • 【iOS】Tagged Pointer
  • Linux 第七讲 --- 工具篇(二)gcc/g++与文件编译
  • 用户登录构件示例
  • RL+search = Deep research
  • MySQL 数据库集群部署、性能优化及高可用架构设计
  • 一文了解B+树的删除原理