【聚类】主成分分析 和 t-SNE 降维

1 主成分分析PCA

PCA 是一种线性降维技术,旨在通过选择具有最大方差的特征方向(称为主成分)来压缩数据,同时尽可能减少信息损失。

1.1 原理


1.2 优缺点

python 复制代码
from sklearn.decomposition import PCA
import matplotlib.pyplot as plt
from sklearn.datasets import load_digits

# 加载数据集
digits = load_digits()
X = digits.data
y = digits.target

# PCA 降维到 2 维
pca = PCA(n_components=2)
X_pca = pca.fit_transform(X)

# 可视化
plt.scatter(X_pca[:, 0], X_pca[:, 1], c=y, cmap='Spectral', s=15)
plt.colorbar()
plt.title("PCA 降维结果")
plt.xlabel("主成分1")
plt.ylabel("主成分2")
plt.show()

2. t-Distributed Stochastic Neighbor Embedding

t-SNE 是一种非线性降维方法,主要用于高维数据的可视化。它通过保留局部相邻点间的关系,将高维数据映射到低维空间。

2.1 原理

![在这里插入图片描述](https://i-blog.csdnimg.cn/direct/c703ff4be4e54573844b5a2c3c895486.png![在这里插入图片描述](https://i-blog.csdnimg.cn/direct/050ae0b4a5164e72bf8b1ee513d1b19b.png)![在这里插入图片描述](https://i-blog.csdnimg.cn/direct/66e01c3e405d4cf9bfcacd287b315f75.png)

2.2 优缺点

python 复制代码
from sklearn.manifold import TSNE
import matplotlib.pyplot as plt
from sklearn.datasets import load_digits

# 加载数据集
digits = load_digits()
X = digits.data
y = digits.target

# t-SNE 降维到 2 维
tsne = TSNE(n_components=2, random_state=42, perplexity=30, n_iter=1000)
X_tsne = tsne.fit_transform(X)

# 可视化
plt.scatter(X_tsne[:, 0], X_tsne[:, 1], c=y, cmap='Spectral', s=15)
plt.colorbar()
plt.title("t-SNE 降维结果")
plt.show()
相关推荐
双翌视觉13 小时前
机器视觉的液晶电视OCA全贴合应用
人工智能·数码相机·机器学习·1024程序员节
青云交21 小时前
Java 大视界 -- Java 大数据在智能农业温室环境调控与作物生长模型构建中的应用
java·机器学习·传感器技术·数据处理·作物生长模型·智能农业·温室环境调控
浣熊-论文指导21 小时前
聚类与Transformer融合的六大创新方向
论文阅读·深度学习·机器学习·transformer·聚类
B站_计算机毕业设计之家1 天前
预测算法:股票数据分析预测系统 股票预测 股价预测 Arima预测算法(时间序列预测算法) Flask 框架 大数据(源码)✅
python·算法·机器学习·数据分析·flask·股票·预测
GG向前冲1 天前
【大数据】Spark MLlib 机器学习流水线搭建
大数据·机器学习·spark-ml
深蓝岛1 天前
目标检测核心技术突破:六大前沿方向
论文阅读·人工智能·深度学习·计算机网络·机器学习
晚霞apple1 天前
特征融合与目标检测的六大创新方向
论文阅读·人工智能·深度学习·神经网络·机器学习
Theodore_10221 天前
神经学习(4)神经网络的向量化实现与TensorFlow训练流程
人工智能·深度学习·机器学习·计算机视觉·线性回归
Godspeed Zhao1 天前
自动驾驶中的传感器技术70——Navigation(7)
人工智能·机器学习·自动驾驶
明月照山海-1 天前
机器学习周报十九
人工智能·机器学习