【聚类】主成分分析 和 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()
相关推荐
alex18013 小时前
pytorch LSTM类解析
pytorch·机器学习·lstm
XiaoMu_0013 小时前
基于大数据的糖尿病数据分析可视化
大数据·数据挖掘·数据分析
南滑散修4 小时前
机器学习(四):混合高斯模型GMM
人工智能·机器学习
FluxMelodySun4 小时前
机器学习(二十五) 降维:主成分分析(PCA)及特征值分解
人工智能·算法·机器学习
2301_780669865 小时前
一篇文章入门机器学习与PyTorch张量
机器学习
von Neumann6 小时前
大模型从入门到应用——HuggingFace:Transformers-[AutoClass]
人工智能·深度学习·机器学习·ai·大模型·huggingface
AI科技星7 小时前
基于v≡c第一性原理的大统一力方程:严格推导、全维度验证与四大基本相互作用的统一
人工智能·线性代数·算法·机器学习·平面
羊小猪~~7 小时前
【论文精度】Transformer---大模型基石
人工智能·深度学习·考研·算法·机器学习·transformer