cdist函数中数组维数的Python问题

2024-06-01 08:43:00 发布

您现在位置:Python中文网/ 问答频道 /正文

我试图为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}$

Tags: 函数model聚类matrixmeansreturningtfidfclusters
1条回答
网友
1楼 · 发布于 2024-06-01 08:43:00

这可能是一个类型的问题。在

Tfidf可能不是cdist要求的致密基质。当然,这里使用稀疏矩阵是有意义的。在

然而,cdist似乎不接受稀疏矩阵:scipy cdist with sparse matrices

相关问题 更多 >