我试图为k-means找到正确的聚类数,并为此使用cdist函数。在
我能理解cdist的论点应该是相同的维度。我尝试打印两个参数的大小,即(2542,39)和(1,39)。在
有人能告诉我哪里出了问题吗?在
print(tfidf_matrix.shape) ### Returning --> (2542, 39)
#Finding optimal no. of clusters
from scipy.spatial.distance import cdist
clusters=range(1,10)
meanDistortions=[]
for k in clusters:
model=KMeans(n_clusters=k)
model.fit(tfidf_matrix)
prediction=model.predict(tfidf_matrix)
print(model.cluster_centers_.shape) ## Returning (1, 39)
meanDistortions.append(sum(np.min(cdist(tfidf_matrix, model.cluster_centers_, 'euclidean'), axis=1)) /
tfidf_matrix.shape[0])
错误:
^{pr2}$
这可能是一个类型的问题。在
Tfidf可能不是cdist要求的致密基质。当然,这里使用稀疏矩阵是有意义的。在
然而,cdist似乎不接受稀疏矩阵:scipy cdist with sparse matrices
相关问题 更多 >
编程相关推荐