【聚类】主成分分析 和 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()
相关推荐
梁小憨憨24 分钟前
变分推断(Variational Inference)
人工智能·算法·机器学习
IT古董2 小时前
【机器学习】机器学习的基本分类-监督学习-决策树-C4.5 算法
人工智能·学习·算法·决策树·机器学习·分类
IT古董2 小时前
【机器学习】机器学习的基本分类-监督学习-决策树-CART(Classification and Regression Tree)
学习·决策树·机器学习·分类
搏博4 小时前
路径规划之启发式算法之四:蚁群算法(Ant Colony Optimization,ACO)
人工智能·算法·机器学习
望云山1905 小时前
2.5 特征降维(机器学习)
人工智能·算法·机器学习
霖大侠9 小时前
Adversarial Learning forSemi-Supervised Semantic Segmentation
人工智能·算法·机器学习
CQU_JIAKE11 小时前
3.29【机器学习】第五章作业&实现
人工智能·算法·机器学习
望云山19011 小时前
机器学习概述,特征工程简述2.1——2.3
人工智能·机器学习
望云山19011 小时前
2.4特征预处理(机器学习)
人工智能·机器学习
B站计算机毕业设计超人12 小时前
计算机毕业设计Python异常流量检测 流量分类 流量分析 网络流量分析与可视化系统 网络安全 信息安全 机器学习 深度学习
大数据·人工智能·python·深度学习·web安全·机器学习·课程设计