Алгоритмы кластеризации: HDBSCAN в R против HDBSCAN в Python? - PullRequest
0 голосов
/ 04 мая 2018

Для работы с поисковыми данными, какой метод кластеризации будет лучшим? В настоящее время я использую HDBSCAN. Проблема в том, что результаты, которые я получаю от использования HDBSCAN в R, отличаются от результатов, полученных через HDSCBAN в Python.

R версия: https://rdrr.io/cran/largeVis/man/hdbscan.html

Ссылка на файл данных для R: https://www.dropbox.com/s/731hjrj0geibi3f/test.csv?dl=0

test_r <- data.frame("data")
vis <- largevis::largevis(test_r)
cluster <- largevis::hdbscan(vis)
largevis::gplot(cluster,t(vis$coords), text = TRUE)

OUTPUT of R

Версия Python: https://github.com/scikit-learn-contrib/hdbscan/tree/master/hdbscan

Ссылка на файл данных для Python: https://www.dropbox.com/s/640elbjr1xt8q3e/test_projection.txt?dl=0

%pylab
import hdbscan
import numpy as np
import seaborn as sns
import matplotlib.pyploy as plt
import pandas as pd

projection = np.loadtxt("data")
projection = projection[1:1001,:]

clusterer = hdbscan.HDBSCAN(min_cluster_size=20, gen_min_span_tree=True)
clusterer.fit(projection)

palette = sns.color_palette()
cluster_colors = [sns.desaturate(palette[col], sat)
              if col >= 0 else (0.5, 0.5, 0.5) for col, sat in
              zip(clusterer.labels_, clusterer.probabilities_)]

fig = plt.scatter(panc_projection.T[0], panc_projection.T[1], c= cluster_colors)

OUTPUT of Python

В чем причина различий между выходными данными двух версий и как определить точность результатов (то есть количество кластеров, размер кластера и шум)

http://hdbscan.readthedocs.io/en/latest/basic_hdbscan.html

...