我有一个非常大的矩阵(10x55678),采用“numpy”矩阵格式。该矩阵的行对应于一些“主题”,列对应于单词(文本语料库中的唯一单词)。该矩阵中的每个条目 i,j 都是一个概率,这意味着单词 j 以概率 x 属于主题 i。因为我使用的是 ids 而不是真实的单词,并且由于我的矩阵的维度非常大,所以我需要以某种方式将其可视化。您建议使用哪种可视化?一个简单的情节?还是更复杂、信息更丰富的?(我问这些是因为我对有用的可视化类型一无所知)。如果可能的话你能给我一个使用 numpy 矩阵的例子吗?谢谢
我问这个问题的原因是我想对我的语料库中的单词主题分布有一个总体了解。欢迎任何其他方法
你当然可以使用 matplotlib 的imshow
or 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
包来绘制每个类别的单词簇,其中概率最高的单词由更大或更接近图中心的节点表示,并忽略那些在该类别中没有成员资格的单词。这可能会更容易,因为您有大量单词和少量类别。
希望这些建议之一有用。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)