Алерлеративное решение для склеарна. Агломеративная кластеризация с большой выборкой - PullRequest
0 голосов
/ 11 июля 2019

Я хочу создать кластеры с ограничением по расстоянию, а не количеством кластеров, таких как KNN или Kmeans.

Поэтому я использовал Агломеративную кластеризацию из scikit-learn.Я должен поставить порог и compute_full_tree = true params.

Когда я пытался с небольшим набором данных (<1000 баллов), это работало хорошо.Но я попробовал с большой выборкой (~ 30 000 точек), и на моем сервере не хватило памяти. </p>

После некоторых исследований я вижу, что агломеративная кластеризация вычисляет расстояние по каждой точке со всеми остальными, поэтому быстрая калькуляция:

30 000 x 30 000 x 64 (float64) = 70 Gb (8 GB)

Мой сервер имеет небольшую оперативную память 4 ГБ, поэтому он не может это поддерживать.Вы можете сказать мне взять сервер побольше, но матрица расстояний O (n²), поэтому агломерационная кластеризация не может содержать более 50 или 60 тыс. Выборок.

Есть ли другой способ найти кластер с максимальным расстоянием?

Я видел, как кто-то говорил о подборе агломерационной модели с небольшой частью данных, а затем обучал Kmean для другой части данных.

...