sklearn实现t_SNE可视化

t_SNE的本质就是降维和可视化

import pandas as pd
import numpy as np
import matplotlib.pyplot as plt
from sklearn import manifold

x_data = pd.read_csv(x_data_file_name, index_col=0) #需要可视化的数据
y_data = pd.read_csv(y_data_file_name, index_col=0) #可视化的数据对应的label,label可以是true label,或者是分类or聚类后对应的label
X = x_data
y = y_data
n_samples, n_features = X.shape

'''t-SNE'''
tsne = manifold.TSNE(n_components=2, init='pca', random_state=501) #n_components=2降维为2维并且可视化
X_tsne = tsne.fit_transform(X)
'''空间可视化'''
x_min, x_max = X_tsne.min(0), X_tsne.max(0)
X_norm = (X_tsne - x_min) / (x_max - x_min)  # 归一化
plt.figure(figsize=(15, 15))
for i in range(X_norm.shape[0]):
    plt.text(X_norm[i, 0], X_norm[i, 1], str(y[i]), color=plt.cm.Set1(y[i]), 
             fontdict={'weight': 'bold', 'size': 9})
plt.show()

猜你喜欢

转载自blog.csdn.net/ziqingnian/article/details/115438071