最近需要用到 PCA 和 t-SNE 降维技术,把 110 维的状态降到 2 维,用 matplotlib 可视化。
由于数据量比较大,加上 t-SNE 运行速度慢,所以先用 PCA 降到 50 维,再用 t-SNE 降到 2 维
from sklearn.decomposition import PCA
from sklearn.manifold import TSNE
# dataset_S.shape=(30000, 110)
pca = PCA(n_components=50)
pca.fit(dataset_S)
S_50d = pca.transform(dataset_S) # (30000, 50)
tsne = TSNE(n_components=2, init='pca')
S_tsne = tsne.fit_transform(S_50d) # (30000, 2)