Компонент: кластеризация методом k-средних

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

K-средние — это один из самых простых и известных неконтролируемых алгоритмов обучения. Его можно использовать для различных задач машинного обучения, таких как:

  • Обнаружение аномальных данных.
  • Кластеризация текстовых документов.
  • Анализ наборов данных перед использованием других методов классификации или регрессии.

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

  • Добавьте этот компонент в свой конвейер.
  • Подключите набор данных.
  • Задайте параметры, например предполагаемое количество кластеров, метрику расстояния, используемую при создании кластеров, и т. д.

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

  • Если данные содержат метку, значения меток можно использовать как ориентир при выборе кластеров и оптимизации модели.

  • Если данные не имеют меток, алгоритм создает кластеры, представляющие возможные категории, основываясь исключительно на данных.

Общие сведения о кластеризации методом k-средних

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

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

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

  • Центроиды стабилизируются. Это означает, что назначение кластеров отдельным точкам больше не меняется, то есть алгоритм пришел к решению.

  • Алгоритм выполнил указанное число итераций.

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

Настройка компонента кластеризации методом k-средних

  1. Добавьте компонент кластеризации методом k-средних в свой конвейер.

  2. Чтобы указать, как обучать модель, выберите команду Создать режим преподавателя.

    • Одиночный параметр. Если вы точно знаете, какие параметры хотите использовать в модели кластеризации, можно указать конкретный набор значений в качестве аргументов.
  3. В поле Число центроидов укажите число кластеров, с которых алгоритм должен начинать свою работу.

    Нет гарантий, что в модели будет ровно столько кластеров. Алгоритм начинается с этого количества точек данных и выполняет итерации для поиска оптимальной конфигурации. Можно обратиться к исходному коду sklearn.

  4. Инициализация свойств позволяет указать алгоритм для определения первоначальной конфигурации кластера.

    • Первые N. Из набора данных выбирается некоторое начальное количество точек данных, которые используются в качестве исходных средних.

      Этот метод также называется методом Форджи.

    • Случайный выбор. Этот алгоритм случайным образом помещает точку данных в кластер, а затем вычисляет исходное среднее для определения центроида случайно назначенных кластеру точек.

      Этот метод также называется методом случайного разбиения.

    • K-средние++. Это метод по умолчанию для инициализации кластеров.

      Алгоритм k-средних++ был предложен в 2007 году Дэвидом Артуром и Сергеем Васильвицким как решение проблемы неэффективной кластеризации при использовании стандартного метода k-средних. Метод k-средних++ — это улучшенный вариант стандартного метода k-средних, использующий другой метод для выбора исходных центров кластеров.

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

  6. В поле Метрика выберите функцию, используемую для измерения расстояния между векторами кластера или между новыми точками данных и случайным образом выбранным центроидом. Машинное обучение Azure поддерживает следующие метрики расстояний кластера:

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

    Этот параметр можно настроить, чтобы сбалансировать точность и время обучения.

  8. В качестве режима назначения метки выберите параметр, указывающий, как должен обрабатываться столбец меток, если он есть в наборе данных.

    Поскольку кластеризация методом k-средних — это неконтролируемый метод машинного обучения, метки необязательны. Но если в наборе данных уже есть столбец меток, эти значения можно использовать для выбора кластеров, или можно указать, что значения следует игнорировать.

    • Пропустить столбец меток. Значения в столбце меток игнорируются и не используются при построении модели.

    • Заполнение отсутствующих значений. Значения столбца меток используются в качестве компонентов для создания кластеров. Если в строках отсутствует метка, значение определяется с помощью других компонентов.

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

  9. Выберите параметр Нормализация компонентов, если требуется нормализовать компоненты перед обучением.

    При использовании нормализации до начала обучения точки данных нормализуются в [0,1] с помощью MinMaxNormalizer.

  10. Обучение модели.

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

Результаты

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

Запись моментального снимка модели в рабочей области

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

  1. Выберите компонент обучающей модели кластеризации и откройте панель справа.

  2. Перейдите на вкладку Выходные данные. Щелкните значок Регистрация набора данных, чтобы сохранить копию обученной модели.

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

Просмотр результирующего набора данных кластеризации

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

  1. Щелкните правой кнопкой мыши компонент обучающей модели кластеризации.

  2. Выберите Визуализировать.

Советы по созданию лучшей модели кластеризации

Известно, что процесс присвоения начальных значений, используемый во время кластеризации, может значительно повлиять на модель. Присвоение начальных значений — это начальное размещение точек в потенциальных центроидах.

Например, если набор данных содержит много выбросов и для начального заполнения кластеров выбираются выбросы, другие точки данных будут плохо подходить этому кластеру, и кластер может быть одноэлементным. То есть у него может быть только одна точка.

Эту проблему можно решить двумя способами:

  • Изменить количество центроидов и попробовать несколько начальных значений.

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

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

Дальнейшие действия

Ознакомьтесь с набором доступных компонентов для Машинного обучения Azure.