如何将sklearn-DBSCAN结果的噪声数据与其他聚类相关?

问题描述 投票:0回答:1

我正在使用sklearn-DBSCAN对文本数据进行聚类。我使用GoogleNews-vectors-negative300.bin为每个文档创建了300个维的句子矢量,并创建了大小为10000 * 300的度量。当我将指标传递给DBSCAN时,使用其他默认参数的eps(0.2到3)和min_samples(5到100)的可能值很少,得到的簇数(200到10)。当我对所有群集进行分析时,噪声数据大约占我数据的75-80%。有什么方法可以减少噪音或使用其他一些参数(距离)来减少噪音?即使我检查了两个向量之间的欧几里得距离为0.6,但两个向量都位于不同的群集中,如何管理相同的群集?

X_scaled = scaler.fit_transform(sentence_vectors)
ep = 0.3
min_sam = 10
for itr in range(1,11):
    dbscan = DBSCAN(eps=ep, min_samples = min_sam*itr)
    clusters = dbscan.fit_predict(X_scaled)
nlp cluster-analysis dbscan
1个回答
0
投票

如果您希望距离为0.6的两个点在同一群集中,则可能需要使用更大的epsilon(距离阈值)。在0.6时,它们应该位于同一群集中。

由于对word2vec进行点积训练,使用点积作为相似度和/或余弦距离可能更有意义。

但是总的来说,我怀疑您能否获得良好的结果。通过平均word2vec向量构建句子向量的方式会杀死过多的信号,并增加很多噪音。而且由于数据是高维的,因此所有此类噪声都是一个问题。

© www.soinside.com 2019 - 2024. All rights reserved.