У меня есть модель 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).
Правильно ли я поступлю?
Как бы я построил график? это на графике для визуализации кластеров?
Спасибо.