【发布时间】:2019-04-11 04:33:55
【问题描述】:
我试图在一个简单的用例上比较 2 个不同的 DBSCAN 集群。
1/ 在一种情况下,我使用 DBSCAN 的余弦度量
2/ 在另一种情况下,我使用使用余弦相似度的预计算距离矩阵
我的问题是这两种方法的结果不同。有人可以告诉我我做错了什么吗?
这是一些代码示例
def cluster(X, metric="cosine"):
cluster = DBSCAN(
eps=0.5,
min_samples=3,
metric=metric,
algorithm="brute"
)
cluster.fit_predict(X)
return cluster
sentences = [
"annuler ma commande",
"commande à annuler",
"merci de bien vouloir annuler ma commande",
"produits cassés",
"mes produits sont cassés",
"ma commande de produits cassés"
]
vectorizer = TfidfVectorizer()
tfidfs = vectorizer.fit_transform(sentences)
distance_matrix = linear_kernel(tfidfs, tfidfs)
doc_id_to_cluster_1 = cluster(tfidfs, "cosine").labels_
doc_id_to_cluster_2 = cluster(sparse.csr_matrix(distance_matrix), "precomputed").labels_
doc_id_to_cluster_1 = [0, 0, 0, 1, 1, 1]
doc_id_to_cluster_2 = [0, 0, 0, -1, 0, 0]
我期待得到相同的结果。
非常感谢您的帮助
【问题讨论】:
标签: python scikit-learn