您当然可以使用matplotlibimshow
或pcolor
方法来显示数据,但是正如注释所提到的,如果不放大数据的子集,可能很难解释。
a = np.random.normal(0.0,0.5,size=(5000,10))**2
a = a/np.sum(a,axis=1)[:,None] # Normalize
pcolor(a)
然后,您可以根据单词属于某个簇的概率对单词进行排序:
maxvi = np.argsort(a,axis=1)
ii = np.argsort(maxvi[:,-1])
pcolor(a[ii,:])
由于已对事物进行了排序,因此在y轴上的单词索引不再等于原始顺序。
另一种可能性是使用该networkx
程序包为每个类别绘制单词簇,其中概率最高的单词由更大或更接近图中心的节点表示,而忽略那些没有该类别成员资格的单词。因为您有大量的单词和少量的类别,所以这可能会更容易。
希望这些建议之一是有用的。