python - 给定具有(tf-idf 余弦相似度、doc_id1、doc_id2)的 CSV 的 K 均值聚类?

标签 python csv cluster-analysis tf-idf cosine-similarity

我有一个包含以下数据集的 CSV:

similarity  | doc_id1   | doc_id2
1           |    34     |     0
1           |    29     |     6
0.997801748 |    22     |    10
0.966014701 |    35     |    16
0.964811948 |    14     |    13

其中“相似度”指的是 tf-idf 余弦相似度计算的值,doc_ids 指的是文档。因此,相似度越接近 1,两个文档就越相似。

我想根据此信息对文档进行聚类,但我不完全确定如何执行此操作。我已经阅读了很多有关球形 K 均值聚类的内容,但在实现它方面我很难理解它。有一个可能有用的库吗? K-means 是正确的方法吗?

编辑: 这个 CSV 就是我所拥有的全部,所以即使我希望有基于词频的向量,但我没有。如果 K-means 不起作用,因为我所拥有的只是相似性,那么还有其他算法适合这些数据吗?

最佳答案

我相信你的问题是你有距离,但 K-Means 使用距质心的欧几里德距离。这意味着,每个文档都需要一个向量,在您的情况下,向量相当长。您应该对所有单词使用一个维度,而不是计算相似度,并且每个文档中该单词的分数将成为它们的坐标。有了这些向量,您可以使用 Sam B 建议的 sklearn.cluster.KMeans。

关于python - 给定具有(tf-idf 余弦相似度、doc_id1、doc_id2)的 CSV 的 K 均值聚类?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45721086/

相关文章:

cluster-analysis - 在weka中构建推荐系统

c++ - OMP 并行还原

machine-learning - scikit 中最接近的核心样本 DBSCAN

python - python tensorflow信号处理MFCC功能

loops - 使用循环与在 try/except 中获取特定索引

python - 多个 IF 和 ELIF 条件 [Python]

python - 为什么捕获 StopIteration 时无法跳出循环?

python - 我的 csv 中有多个列。如何使用 python 将行值与引用列匹配?

javascript - 使用PapaParse和collectionFS在meteor中生成可下载的csv文件

sql - PostgreSQL : CAST column only if exists