【发布时间】:2021-11-23 06:12:16
【问题描述】:
我有一个数据框,其中包含我的数据框中每个文档之间的 Word Mover 距离。我正在为此运行 kmediods 以生成集群。
1 2 3 4 5
1 0.00 0.05 0.07 0.04 0.05
2 0.05 0.00 0.06 0.04 0.05
3. 0.07 0.06 0.00 0.06 0.06
4 0.04 0.04. 0.06 0.00 0.04
5 0.05 0.05 0.06 0.04 0.00
kmed = KMedoids(n_clusters= 3, random_state=123, method ='pam').fit(distance)
在这个初始矩阵上运行并生成集群后,我想添加新的点进行集群。将新文档添加到距离矩阵后,我最终得到:
1 2 3 4 5 6
1 0.00 0.05 0.07 0.04 0.05 0.12
2 0.05 0.00 0.06 0.04 0.05 0.21
3. 0.07 0.06 0.00 0.06 0.06 0.01
4 0.04 0.04. 0.06 0.00 0.04 0.05
5 0.05 0.05 0.06 0.04 0.00 0.12
6. 0.12 0.21 0.01 0.05 0.12 0.00
我已尝试在新行上使用 kmed.predict。
kmed.predict(new_distance.loc[-1: ])
但是,这给了我一个尺寸不兼容的错误X.shape[1] == 6 而Y.shape[1] == 5。
如何使用新文档的这个距离来确定它应该属于哪个集群?这甚至可能吗,还是我每次都必须重新计算集群?谢谢!
【问题讨论】:
-
如何计算文档之间的距离?
-
这些只是示例中的随机数。在实践中,它是每个文档之间的单词移动器的距离。如果值为 0,则没有距离,因为文档是相同的。
标签: python nlp cluster-analysis distance k-means