Построение DBSCAN Кластеризация модели Doc2Ve c - PullRequest
1 голос
/ 16 апреля 2020

У меня есть модель Doc2Ve c, созданная с помощью Gensim, и я хочу использовать 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).

Правильно ли я поступлю?

Как бы я построил график? это на графике для визуализации кластеров?

Спасибо.

1 Ответ

0 голосов
/ 20 апреля 2020

Здесь есть два вопроса:

  1. Визуализация: я предлагаю вам уточнить код примера кластеризации DBSCAN

  2. Если вы делаете кластеризацию правильно. На первый взгляд - да.

...