scikit-learn kmeans 用 Ja​​ccard 距离聚类文本

Posted

技术标签:

【中文标题】scikit-learn kmeans 用 Ja​​ccard 距离聚类文本【英文标题】:scikit-learn kmeans clustering text with jaccard distance 【发布时间】:2019-11-12 19:23:01 【问题描述】:

我正在尝试使用 sklearn 将一些推文聚类为字典 我有 25 个初始质心 id(tweet id) 我在自己的函数中编写了它,但我不知道如何用 sklearn 实现它

# 845512:'tweet id 845512', 543115:'tweet id 543115', ...
# initial_centroids = [845512, 546318, 84632, ...] - 25 centroids

NOTE: tweets_vec <= I need to make it by jaccard_distance
tweets_vec = Is the jaccard distance matrix (it may be wrong, i dont know)

kmeans = KMeans(n_clusters=25, init=initial_seeds).fit(tweets_vec)

我制作了一个二维矩阵,其中有 Jaccard 距离。我不知道如何在 kmeans 方法中修复 init。它的错误不是 ndarray

我究竟应该传递给它什么?

【问题讨论】:

可能与:***.com/questions/5529625/… 重复,您可以在最佳答案中找到您的解决方案。 这不是我要找的。我可能会含糊地说出这个问题。我将对其进行编辑以使其更清晰。 【参考方案1】:

如果在 kmeans 内传递 init=initial_centroids,则 initial_centroids 必须具有形状 clusters x features。如果您只使用一项功能,您可能需要重新调整阵列,请尝试:

init_cent_array = np.asarray(initial_centroids).reshape(-1,len(initial_centroids))

并在 kmeans 中将其作为 init 参数传递。希望这会有所帮助。

【讨论】:

以上是关于scikit-learn kmeans 用 Ja​​ccard 距离聚类文本的主要内容,如果未能解决你的问题,请参考以下文章