Я собираюсь описать 4 шага для выполнения обучения без учителя.

(Что нужно учесть: исследование данных, предварительная обработка данных, PCA, k-means, t-SNE)

Кредит компании Udacity Machine Learning Nanodegree. (Я доработал несколько кода и инструкции проекта.)

Будет использован известный набор данных Iris.

Набор данных содержит 150 образцов, каждый с пятью атрибутами:

  1. длина чашелистика в см
  2. ширина чашелистика в см
  3. длина лепестка в см
  4. ширина лепестка в см
  5. класс: сетоса, разноцветный и вирджиника.

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

Шаг 1. Анализ данных

Независимо от того, будете ли вы проводить обучение с учителем или без него, это всегда первый шаг.

Визуализация распределения функций поможет вам лучше понять данные.

Здесь следует отметить два момента:

  1. Распределение: «Ширина чашелистника» распределена нормально, «длина лепестка» и «ширина лепестка» соответствуют бимодальному распределению.
  2. Корреляция: можно увидеть положительную корреляцию между «sepal_length» и «petal_length», между «petal_length» и «petal_width». «Septal_length» и «petal_width» несколько положительно коррелируют, но это не ясно.

Мы можем подтвердить корреляцию с тепловой картой.

Наш вывод подтверждается.

Положительная корреляция (в порядке убывания) для 3 распределений:

  1. 0,96 для «petal_length» и «petal_width»
  2. 0,87 для «sepal_length» и «petal_length»
  3. 0,82 для «petal_width» и «sepal_length»

Шаг 2: предварительная обработка

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

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

Шаг 3. Преобразование функции

На этом этапе мы увидим структуру данных и при необходимости преобразуем данные в соответствующий формат.

Один из полезных методов - PCA (анализ главных компонентов). Выполнение этого позволит нам уменьшить размерность данных. Например, если данные содержат 100 функций, выполнение PCA может уменьшить их количество до 30, что улавливает 90% общей дисперсии исходных данных путем поиска нового представления наборов данных.

Поскольку на первый и второй основные компоненты приходится 95% общей дисперсии, мы рассмотрим их.

  1. Первый компонент: этот компонент положительно коррелирует с «длиной лепестка», «длиной чашелистника» и «шириной чашелистника». Эти три переменные различаются вместе. Первый компонент можно рассматривать как меру количества «длины лепестка», «длины чашелистика» и «ширины чашелистника».
  2. Второй компонент: этот компонент имеет положительную корреляцию с «шириной лепестка». Этот компонент можно рассматривать как меру количества (длины) «ширины лепестка».

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

Шаг 4: кластеризация

Мы будем использовать кластеризацию K-средних, чтобы увидеть, существует ли какая-либо отдельная группа набора данных. Коэффициент силуэта (-1 ≤ диапазон ≤1) будет использоваться в качестве метрики для определения подходящего количества кластеров.

В результате два кластера кажутся лучшими в соответствии с используемой метрикой.

Что здесь происходит? В этом наборе данных мы знаем, что есть три класса.

Мы будем использовать t-SNE, чтобы увидеть образец распределения (в качестве альтернативы, мы можем построить кластеризацию K-средних с метками классов). t-SNE пытается найти меньшее измерение, которое сохранит расстояние между точками в исходном измерении.

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

Что дальше?

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

Код:

Вы можете увидеть полное объяснение и используемый код здесь: