python打卡day21

@疏锦行

自由作业:探索下什么时候用到降维?降维的主要应用?或者让ai给你出题,群里的同学互相学习下。可以考虑对比下在某些特定数据集上t-sne的可视化和pca可视化的区别。

from sklearn.manifold import TSNE
from sklearn.decomposition import PCA
import matplotlib.pyplot as plt

# 假设 X 是特征数据,y 是标签数据
# 进行 PCA 降维
pca = PCA(n_components=2)
X_pca = pca.fit_transform(X)

# 进行 t-SNE 降维
tsne = TSNE(n_components=2, random_state=42)
X_tsne = tsne.fit_transform(X)

# 可视化 PCA 结果
plt.figure(figsize=(12, 5))
plt.subplot(1, 2, 1)
plt.scatter(X_pca[:, 0], X_pca[:, 1], c=y, cmap='viridis')
plt.title('PCA Visualization')
plt.xlabel('Principal Component 1')
plt.ylabel('Principal Component 2')

# 可视化 t-SNE 结果
plt.subplot(1, 2, 2)
plt.scatter(X_tsne[:, 0], X_tsne[:, 1], c=y, cmap='viridis')
plt.title('t-SNE Visualization')
plt.xlabel('t-SNE Component 1')
plt.ylabel('t-SNE Component 2')

plt.tight_layout()
plt.show()

PCA :是一种线性降维方法,主要目标是找到数据中方差最大的方向,将数据投影到低维空间。PCA 能够保留数据的全局结构,但对于局部结构的保留能力较弱。在可视化方面,PCA 更适合展示数据的整体分布和趋势。
t-SNE :是一种非线性降维方法,主要目标是保留数据的局部结构,使得在高维空间中相邻的数据点在低维空间中也尽可能相邻。t-SNE 能够更好地展示数据的局部聚类结构,但对于全局结构的展示能力较弱。在可视化方面,t-SNE 更适合发现数据中的局部模式和簇。

你可能感兴趣的:(python学习打卡,python,开发语言)