Важные шаги, которые следует учитывать

Можно ли говорить о свойствах, достаточных (или одновременно необходимых и достаточных) для успеха естественных алгоритмов?

Прежде чем углубляться в детали оптимизации кластеризации, давайте вернемся назад и подумаем о проблеме, которую нам нужно решить. «Кластеризация» связана с группировкой похожих или связанных объектов.

Кластерная тенденция

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

Давайте посмотрим пример. Мы использовали набор данных с геолокациями 300 мест в США. В качестве первого шага в нашем анализе мы хотели бы увидеть, существует ли тенденция к формированию кластеров, когда местоположения в одном кластере расположены географически ближе. Поскольку наши данные уже находятся в низкоразмерном пространстве (2D), мы нанесем точки непосредственно на контурный график. То, что мы наблюдаем, — это 3 различных сферических распределения вероятностей, поэтому у нас уже есть интуиция, что наш набор данных может сформировать 3 кластера. В случае многомерного пространства мы можем использовать T-распределенное стохастическое встраивание соседей (t-SNE) — алгоритм машинного обучения для визуализации — для моделирования каждого многомерного объекта с помощью двумерной точки.

Выбор алгоритма и настройка

Но теперь, прежде чем продолжить, чтобы найти кластеры, можем ли мы ответить на эти 2 очень важных вопроса. Что подразумевается под похожими? и Сколько существует групп? И тогда мы должны осознавать, что всегда существуют данные, не вписывающиеся в определенные группы, и действительно важные, поэтому у нас должен быть алгоритм или структура, которая будет нести информацию о них. Возможно, в этом случае мы можем начать думать об мягкой кластеризации.

В нашем примере K-Means, вероятно, является хорошим решением, поскольку мы имеем дело с набором данных низкой размерности, нормальными распределениями и фактически говорим о точках в географической системе координат, спроецированных на плоскость (широта и долгота). K-Means может обнаруживать только линейно разделимые выпуклые кластеры. Чтобы иметь возможность обнаруживать невыпуклые кластеры, мы можем использовать K-средние ядра. На самом деле спектральная кластеризация является вариантом K-средних ядра. Поскольку K-Means — это алгоритм, который опирается на метрики расстояния и представляет собой хорошую меру расстояния, обычно необходимо выполнить соответствующее масштабирование признаков. Но в нашем примере мы используем широту и долготу для группирования городов на основе расстояний на восток/запад и расстояний на север/юг, тогда мы можем просто использовать непересчитанные расстояния в километрах или милях (хотя мы можем захотеть скорректировать градусы долгота и широта для кривизны земли). В нашем случае мы не масштабируем функции.

Теперь давайте визуализируем кластеры.

Валидность кластера

После того, как мы найдем кластеры, последний вопрос: Нравятся ли нам эти кластеры? Полезно ли это решение для нас или нет? Итак, это шаг валидации кластера. Если ответ на приведенные выше вопросы отрицательный, мы можем вернуться и искать кластеры другим способом, мы можем попробовать другие функции, другие алгоритмы, другое количество кластеров и так далее.

Различные функции влияют по-разному, некоторые из них важны для кластеров, в то время как другие могут мешать задаче кластеризации. Эффективный способ справиться с этим — выбрать подмножество важных функций. Но откуда мне знать, какие из них являются важными? Традиционный подход заключается в использовании анализа главных компонентов (PCA).

Качество его результатов зависит от распределения данных. Существование зашумленных признаков снижает производительность алгоритмов обучения. По этой причине глубокие нейронные сети, такие как Autoencoders (AE), могут использоваться для обучения более точному представлению данных.