链接矩阵值错误:使用序列

时间:2017-01-12 21:54:45

标签: python arrays numpy matrix hierarchical-clustering

enter image description here我正在使用Python,numpy和scipy对我为文本分析创建的主题模型的输出进行一些层次聚类。

我将我的testcorpus应用于ldamodel,因此它成了一个词袋代表。然后我把它变成了一个矩阵。现在我想使用scipy来创建矩阵的链接矩阵。但它给出了值错误:使用序列设置数组元素。 我想这是因为只有同样形状的数组才能被聚类。而且我的矩阵在列表列表中的列表之间的长度不同。 我现在不知道如何解决这个问题。 这是代码的一小部分。我不知道它是否有用。我真的希望有人可以帮助我。

  import numpy as np
  X = np.array(corpus)
  from matplotlib import pyplot as plt  
  from scipy.cluster.hierarchy import dendrogram, linkage
  Z = linkage(X, 'cosine') 

1 个答案:

答案 0 :(得分:1)

正如您提到的从lda模型中获取矩阵console.log(decodeURIComponent('%E8%93%9D')),它可能是某种稀疏矩阵。您可以通过X转换为密集矩阵并应用X.todense()方法。如果矩阵太大而无法容纳在内存中,您可以执行 linkage

在某些情况下,更改矩阵的Z=linkage(X.todense(),distance='cosine')会有所帮助。

P.S:我也面临同样的问题,将我的稀疏特征矩阵(scipy.sparse.csr矩阵)转换为密集解决了这个问题。