Как выполнить кластеризацию для набора данных, содержащего значения TRUE / FALSE в Python?

#python #dataset #data-science #cluster-analysis

#python #набор данных #наука о данных #кластерный анализ

Вопрос:

Мой набор данных содержит столбцы, описывающие способности определенных символов, заполненные True/False значениями. Пустых значений нет. Моя конечная цель — создавать группы символов со схожими способностями. И вот вопрос:

  1. Должен ли я изменить True/False значения на 1 и 0 ? Или в этом нет необходимости?
  2. Какую модель кластеризации я должен использовать? Подходит ли KMeans для этого?
  3. Как мне интерпретировать результаты (выходные данные)? Могу ли я это визуализировать?

Дело в том, что я всегда вижу, как люди выполняют кластеризацию для числовых наборов данных, которые вы можете визуализировать, и это выглядит намного проще. С True/False я просто даже не знаю, как к этому подойти.

Спасибо.

Ответ №1:

  1. В общем случае нет необходимости изменять True / False на 0/1. Это необходимо только в том случае, если вы хотите применить определенный алгоритм для кластеризации, который не может обрабатывать логические входные данные, такие как K-means .
  2. K-means не является предпочтительным вариантом. K-means требует непрерывных функций в качестве входных данных, поскольку он основан на вычислительных расстояниях, как и многие алгоритмы кластеризации. Итак, никаких логических входных данных. И хотя двоичный ввод (0-1) работает, он не вычисляет расстояния очень значимым образом (многие точки будут иметь одинаковое расстояние друг от друга). В случае только данных 0-1 я бы не стал использовать кластеризацию, но рекомендовал бы табулировать данные и посмотреть, какие ячейки встречаются часто. Если у вас большой набор данных, вы можете использовать алгоритм Apriori для поиска часто встречающихся ячеек.
  3. В общем случае алгоритм кластеризации обычно возвращает номер кластера для каждого наблюдения. В малых измерениях это число часто используется для придания цвета наблюдению на точечной диаграмме. Однако в вашем случае логических значений я бы просто перечислил наиболее часто встречающиеся ячейки.