import umap
from sklearn.datasets import load_digits
import matplotlib.pyplot as plt
X,target= load_digits(return_X_y=True)
reducer=umap.UMAP(random_state=0)
X_transformed=reducer.fit_transform(X)
fig=plt.figure(figsize=(20,12))
for label in np.unique(target):
plt.scatter(X_transformed[label==target,0], X_transformed[label==target,1],label=label)
plt.legend(loc="upper left")
plt.show()
结果如下:
但是如果将数据随机打乱,再用umap可视化,得到的并不是完全相同的结果,而是存在微小的差异。
X,target= load_digits(return_X_y=True)
index=np.random.permutation(X.shape[0])
X=X[index,:]
target=target[index]
reducer=umap.UMAP(random_state=0)
X_transformed=reducer.fit_transform(X)
fig=plt.figure(figsize=(20,12))
for label in np.unique(target):
plt.scatter(X_transformed[label==target,0], X_transformed[label==target,1],label=label)
plt.legend(loc="upper left")
plt.show()
最终结果如下