Как выполнить кластеризацию по этому списку данных? - PullRequest
0 голосов
/ 19 июня 2019

Мои знания по кластерному анализу и науке о данных поверхностны. Моя проблема состоит в том, чтобы сгруппировать следующие данные в кластеры:

Data = [40,45,50,60]

Моим критерием является группировка чисел, когда разница между каждой парой чисел находится в пределах определенного порога (скажем, 10). Итак, возможные кластеры:

Cluster1 = [40,45] [50,60]
Cluster2 = [40,45,50] [60]
Cluster3 = [40][45,50][60]

Мне нужно найти все такие возможные кластеры и выбрать один из них на основе определенного условия. Есть ли какая-либо библиотека данных, которую я могу использовать для такой кластеризации?

Ответы [ 2 ]

1 голос
/ 20 июня 2019

Поскольку ваши данные одномерны, проблема становится намного проще, чем обычный сценарий кластеризации, который является многомерным.

Вы можете использовать очень простую стратегию для перечисления всех возможных «кластеризаций»:

  1. Сортировка ваших данных
  2. Начните с наименьшего значения
  3. Если следующее значение находится в пределах порога, добавьте его в кластер и продолжите
  4. Откатитесь назад и попробуйте не добавлять значение в существующий кластер, а начать новый кластер.

Хватит искать библиотеку для всего , и просто код это самостоятельно. Библиотеки кластеризации решают более сложные проблемы и обычно не включают такие простые одномерные стратегии.

1 голос
/ 20 июня 2019

Существует множество библиотек кластеризации, НО вы не можете закрыть глаза и выбрать одну, потому что если вы сделаете это, то весь анализ будет некорректным.

Вы должны задать себе вопрос: «Почему вы кластеризуетесь?», Чтобы уменьшить размерность или найти закономерности. Еще один вопрос, который вам нужно задать, это how are the different variables related to each other?

Данные, которые вы показали выше looks numerical. Для группировки числовых данных вы можете использовать простейший алгоритм k-means . looks numerical означает, что это действительно числовые значения или фиктивная кодировка для представления текстовых значений.

Другим важным вопросом в кластеризации является определение и доказательство наличия x количества групп. Алгоритм k-means является методом секционирования и требует ввода possible number of clusters.

В целом, я рекомендую вам переосмыслить выполнимость этого вопроса и ответить на поставленные вопросы, чтобы найти осмысленное решение вашей проблемы.

...