博主比较懒,不想写描述了。不过只要愿意静下心来看一下代码,应该会很有收获。
只显示样本点,不显示类别名称,效果如下:
X_tsne = tsne.fit_transform(dataset_x) # dataset [N, dim]
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=(8,8))
colors = cm.rainbow(np.linspace(0,1,len(label))) # 定义多种颜色
for i in range(len(X_norm)):
plt.text(X_norm[i,0], X_norm[i,1], '.', color=colors[label[i]],fontdict={'weight': 'bold', 'size':9})
plt.xticks([])
plt.yticks([])
plt.title('test')
plt.savefig('cluster.jpg')
plt.show()
如果想看出每种颜色到底代表哪一类,那么需要将类别名称也要画上去。
问题在于怎么将类别名称定位到图片中的位置呢?
解决方案:将每一个簇求均值,作为这个类的中心点。