【聚类】主成分分析 和 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()
相关推荐
明志数科2 小时前
工业场景数据标注跟实验室标注有什么不同
人工智能·机器学习
xiaoxiaoxiaolll2 小时前
《Light: Science & Applications》合并BIC实现80倍阈值单模运行:超紧凑光子晶体激光器新突破
人工智能·算法·机器学习
悟乙己2 小时前
因果机器学习DML效果与应用场景探索
人工智能·机器学习
z小猫不吃鱼2 小时前
13 Scaling Law 入门:模型规模、数据规模和计算量是什么关系?
人工智能·深度学习·机器学习
春日见3 小时前
5分钟入门强化学习之动态规划算法与实现
大数据·人工智能·python·算法·机器学习·计算机视觉
scx_link3 小时前
线性回归的总结:
算法·机器学习·线性回归
人工智能培训4 小时前
设备故障?数字孪生提前预警
人工智能·深度学习·神经网络·机器学习·生成对抗网络
风落无尘4 小时前
第十一章《对齐与安全》 完整学习资料
python·安全·机器学习
Luhui Dev5 小时前
大角几何 MCP 服务上线:让 AI Agent 直接完成几何作图
人工智能·数学·机器学习·大角几何·luhuidev
wangqiaowq5 小时前
预训练 后预训练 微调
人工智能·深度学习·机器学习