【聚类】主成分分析 和 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()
相关推荐
Psycho_MrZhang1 小时前
丢弃法-Dropout
人工智能·深度学习·机器学习
weixin_525936332 小时前
2020年美国新冠肺炎疫情数据分析与可视化
hadoop·python·数据挖掘·数据分析·spark·数据可视化
小李独爱秋2 小时前
【机器学习宝藏】深入解析经典人脸识别数据集:Olivetti Faces
人工智能·python·机器学习·计算机视觉·人脸识别·olivetti
eqwaak03 小时前
实战项目与工程化:端到端机器学习流程全解析
开发语言·人工智能·python·机器学习·语言模型
audyxiao0013 小时前
NeurIPS 2025论文分享|FedFree:突破知识共享壁垒的异构联邦学习新框架
大数据·人工智能·机器学习·大模型·智能体
爱吃奶酪的松鼠丶4 小时前
图像分类模型 传统训练VS迁移学习训练
分类·数据挖掘·迁移学习
AI数据皮皮侠4 小时前
全国各省市绿色金融指数及原始数据(1990-2022年)
大数据·人工智能·python·深度学习·机器学习·金融
zzywxc7874 小时前
AI行业应用全景:从金融风控到智能制造的落地实践与技术解析
人工智能·深度学习·spring·机器学习·prompt·制造
weixin_434169606 小时前
【机器学习】 在Jupyter Notebook 中如何指定Python环境
python·机器学习·jupyter
ASIAZXO6 小时前
机器学习——聚类kmeans算法详解
算法·机器学习·聚类