【发布时间】:2017-12-12 10:00:48
【问题描述】:
我有一组文档,如下例所示。
doc1 = {'Science': 0, 'History': 0, 'Politics': 0.15,... 'Sports': 0}
doc2 = {'Science': 0.3, 'History': 0.5, 'Politics': 0.1,... 'Sports': 0}
我使用 DBSCAN 使用上述向量对这些文档进行了聚类(我的向量大多是稀疏向量)。我知道“余弦相似度”对于稀疏向量的计算非常有效。但是,根据 sklearn.DBSCAN 拟合文档,您应该使用距离矩阵作为 DBSCAN 的输入。因此,我想知道如果我使用“余弦相似度”而不是“余弦距离”是否是错误的。
请让我知道最适合我的问题的方法是什么。是使用余弦距离的 DBSCAN还是使用余弦相似度的 DBSCAN?
# Fit DBSCAN using cosine distance
db = DBSCAN(min_samples=1, metric='precomputed').fit(pairwise_distances(feature_matrix, metric='cosine'))
或
# Fit DBSCAN using cosine similarity
db = DBSCAN(min_samples=1, metric='precomputed').fit(1-pairwise_distances(feature_matrix, metric='cosine'))
【问题讨论】:
标签: python machine-learning nlp cluster-computing cluster-analysis