【问题标题】:Plotting DBSCAN Clustering of Doc2Vec model绘制 Doc2Vec 模型的 DBSCAN 聚类
【发布时间】:2020-07-29 21:36:14
【问题描述】:

我有一个使用 Gensim 创建的 Doc2Vec 模型,并希望使用 scikit-learn DBSCAN 在模型中查找句子的聚类。

我正在努力研究如何最好地转换模型向量以使用 DBSCAN 并绘制集群,并且在网络上找不到很多直接适用的示例。

这是我目前所拥有的:

import gensim
import numpy as np
from sklearn.cluster import DBSCAN
import matplotlib.pyplot as plt

fnIn = 'NLPModels/doc2VecModel_vector_size{0}_epochs{1}.bin'

def doCluster(vector_size, epochs):
    model = gensim.models.doc2vec.Doc2Vec.load(fnIn.format(vector_size, epochs))

    Y = model.docvecs.index2entity # tags

    X = [] # Document vectors
    for tag in Y:
        X.append(model.docvecs[tag])

    db = DBSCAN(eps=.1, min_samples=5, metric='cosine').fit_predict(X)
    labels = set(db)
    print(labels)


doCluster(100, 10)

输出:{0, 1, -1}

我认为这是两个集群(0 和 1)和异常值(-1)。

我这样做的方式是否正确?

如何将其绘制在图表上以可视化集群?

谢谢。

【问题讨论】:

    标签: python machine-learning scikit-learn gensim dbscan


    【解决方案1】:

    这里有两个问题:

    1. 可视化:建议你细化DBSCAN clustering example code

    2. 如果您正确地进行聚类。 乍一看 - 是的。

    【讨论】:

    • 非常感谢。我还应该在绘图之前应用降维吗?
    • 当然。很难绘制 100 多个维度的 2D 图像。你可以看看TSNE
    • 谢谢,是的,TSNE 确实有帮助。我使用的 PCA 并没有真正显示分组。非常感谢。
    猜你喜欢
    • 2015-07-20
    • 1970-01-01
    • 2023-04-07
    • 2018-01-18
    • 1970-01-01
    • 2020-02-14
    • 2017-06-07
    • 2019-04-15
    • 1970-01-01
    相关资源
    最近更新 更多