Используйте K-средства для изучения функций в Python

Вопрос

Я реализовал алгоритм K-Means в Python. Сначала я применяю PCA и отбеливание для ввода данных. Затем я использую k-средства для успешного вычитания k центроидов из данных.

Как я могу использовать эти центроиды, чтобы понять изученные "особенности"? Центроиды уже являются функциями (мне это не кажется) или мне нужно снова объединить их с входными данными?

Из-за некоторых ответов: K-means - это не просто метод кластеризации, а метод векторного квантования. При этом цель k-средних состоит в том, чтобы описать набор данных с уменьшенным числом векторов признаков. Поэтому существуют большие аналогии с такими методами, как Разреженная фильтрация / Обучение, в отношении потенциального результата.

Пример кода

# Perform K-means, data already pre-processed
centroids = k_means(matrix_pca_whitened,1000)

# Assign data to centroid
idx,_ = vq(song_matrix_pca,centroids)  

3 ответа

Решение

Центроиды - фактически изученные особенности. Поскольку k-means - это метод векторного квантования, мы смотрим, какое наблюдение принадлежит какому кластеру и, следовательно, лучше всего описывается вектором признаков (центроид).

При наличии одного наблюдения, например, ранее разделенного на 10 фрагментов, наблюдение может состоять максимум из 10 векторов признаков.

Пример:

Метод: К-значит с к =10

Набор данных: 20 наблюдений, разделенных на 2 фрагмента каждый = 40 векторов данных

Теперь мы выполним K-средние значения для этого исправленного набора данных и получим ближайший центроид для каждого исправления. Затем мы могли бы создать вектор для каждого из 20 наблюдений длиной 10 (=k), и если патч 1 принадлежит центроиду 5, а патч 2 принадлежит центроиду 9, вектор мог бы выглядеть так: 0 - 0 - 0 - 0 - 1 - 0 - 0 - 0 - 1 - 0.

Это означает, что это наблюдение состоит из центроидов / функций 5 и 9. Вы также можете измерить использование расстояния между патчем и центроидом вместо этого жесткого задания.

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

Центроиды - это просто свойство этих скоплений.

Вы можете взглянуть на документ Scikit-Learn, если вы не уверены, и на карту, чтобы убедиться, что вы выбрали правильный алгоритм.

Это своего рода круговой вопрос: "понять" требует знания чего-то об особенностях вне процесса k-средних. Все, что делает k-means, - это идентифицирует k групп физической близости. Там написано: "В этих" к "местах есть куча вещей, и вот как все точки выбирают ближайшие".

Что это означает с точки зрения возможностей, зависит от исследователя данных, а не от более глубокого значения, которое может приписать k-means. Дисперсия каждой группы может немного рассказать вам о том, насколько плотно сгруппированы эти точки. Помните, что k-means также выбирает начальные точки случайным образом; неудачный выбор может легко дать неоптимальное описание пространства.

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

Это тот уровень ответа, который вам нужен?

Другие вопросы по тегам