Вот ссылка на Jupyter Notebook, содержащий весь код на Github

Вступление

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

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

  1. Случайным образом выберите k центров для k кластеров, которые будут сформированы. Мы можем назвать эти точки псевдоцентрами.
  2. Назначьте каждую точку данных ближайшему псевдоцентру. Таким образом, мы только что сформировали кластеры, каждый из которых содержит все точки данных, связанные с его псевдоцентром.
  3. Пересчитайте центр каждого кластера. Обновляйте расположение псевдоцентра каждого кластера после каждой итерации.
  4. Повторяйте этот шаг до тех пор, пока псевдоцентры не сместятся так, что станут настоящими центрами.

Что такое набор данных Iris?

Набор данных Iris, как следует из названия, представляет собой набор данных о цветке Iris и его классах. Вот как выглядит набор данных:

Набор данных Iris использует вышеуказанные 4 характеристики (столбцы) для прогнозирования класса цветка ириса. Существует 3 класса цветков ириса: Сетоса, Версиколор и Вирджиния.

Подход

В приведенном выше коде создается класс Iris для упрощения кластеризации и классификации.

Функция KMeans выполняет кластеризацию с использованием базового алгоритма Sklearn KMeans. Эта функция также обеспечивала возможность разработки с использованием параметра ‘output’. Если выходной параметр - «все», мы добавляем метки к нашим существующим функциям, а если он равен «единице», в качестве обучающих данных выбираются только метки.

Полученные результаты

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

Как видно из оценок точности, полученных на первых трех итерациях, kmeans на самом деле плохо работает по сравнению с простой логистической регрессией.

Давайте посмотрим, как работает Kmeans, когда наш классификатор - это машины опорных векторов. Результаты показаны ниже:

Когда выходной параметр установлен на «all», Kmeans работает хорошо и сравнимо с использованием Support Vector Machines без кластеризации.

Уроки и следующие шаги

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

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

Что стоит попробовать:

  1. Измените размер набора данных для поезда и тестирования.
  2. Измените исходное значение, чтобы получить другие показатели
  3. Попробуйте описанное выше на различных наборах данных.
  4. Напишите об этом в блоге!