Построение результатов k-средних - PullRequest
0 голосов
/ 03 февраля 2020

У меня есть pandas кадр данных из 229 строк. Каждый ряд представляет собой «напряжение». Данные поступают с 4 сайтов. Штаммы кодируются с помощью кодов сайта.

Когда-то давно , эти данные были кластеризованы и

Из 229 исследованных штаммов образовалась большая группа в S (сходство ) Уровень 231%, используя коэффициент подобия Джакарда и невзвешенную среднюю связь. В пределах этой группы 10 кластеров, или фен, были выделены на разных уровнях сходства выше 65%. Двадцать один штамм не попал ни в одну из этих фенетических групп. Ни один кластер с менее чем пятью членами не рассматривался в дальнейшем.

Отказ от ответственности: я не статистик; По сути, я ничего не знаю о статистике прошлого и среднего. Еще тогда у меня был статистик для работы. Я также почти ничего не знаю об алгоритмах машинного обучения, хотя знаю, что кластеризация означает с общей точки зрения.

Я хочу попытаться воспроизвести кластеризацию с помощью более современных методов. Я думал, что попробую k-means (если это плохой выбор, пожалуйста, просветите меня).

Данные булевы. Я переместил его так, чтобы каждый столбец представлял собой «деформацию», а строки - особенности. (Это было правильно?)

data

Код:

In [106]: from sklearn.cluster import KMeans

          kmeans = KMeans(n_clusters=10)
          kmeans.fit(df_bool)

Out [106]:
KMeans(algorithm='auto', copy_x=True, init='k-means++', max_iter=300,
       n_clusters=10, n_init=10, n_jobs=None, precompute_distances='auto',
       random_state=None, tol=0.0001, verbose=0)

In [107]: labels = kmeans.predict(df_bool)
          centroids = kmeans.cluster_centers_

          labels

Out [107]: array([5, 5, 2, 2, 0, 4, 9, 8, 1, 6, 1, 1, 7, 1, 3, 1, 1, 1, 1, 1],
      dtype=int32)

Вопрос 1: Это список (что я предполагаю такое номера кластеров) чего я должен ожидать?

Вопрос 2: Как я могу построить некоторые или все результаты?

Вопрос 3: Я полностью вне базы? т.е. имеет ли смысл K-means с булевыми данными? Мой DataFrame выровнен правильно?

Я даже задаю правильные вопросы?

1 Ответ

0 голосов
/ 03 февраля 2020

Вопрос 1: Да, результат, который вы описываете, - это то, что вы должны ожидать, число, указывающее, к какой кластеру относится, скорее всего, наблюдение.

Вопрос 2: Вы не можете построить это. То, что обычно делают люди, когда они строят kmeans, использует какое-то уменьшение размеров, чтобы преобразовать их векторы в два измерения, а затем отображает их как X и Y. Затем вы можете использовать метки kmeans в качестве цветов для диаграммы рассеяния. См. Как построить текстовые кластеры? , где я опишу этот процесс более подробно.

Вопрос 3: кластеризация kmeans может не очень хорошо работать с двоичными данными. См. https://www.ibm.com/support/pages/clustering-binary-data-k-means-should-be-avoided для альтернатив. В основном вопрос заключается в том, имеют ли данные базовые шаблоны, которые образуют когерентные группировки, и может ли метод, который вы используете, захватить их.

...