Подготовить данные

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

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

Нормализация данных

Вы можете преобразовать данные для нескольких объектов в один и тот же масштаб, нормализовав данные. В частности, нормализация хорошо подходит для обработки наиболее распространенного распределения данных — распределения Гаусса . По сравнению с квантилями нормализация требует для расчета значительно меньше данных. Нормализуйте данные, рассчитав их z-оценку следующим образом:

\[x'=(x-\mu)/\sigma\\ \begin{align*} \text{where:}\quad \mu &= \text{mean}\\ \sigma &= \text{standard deviation}\\ \end{align*} \]

Давайте посмотрим на сходство между примерами с нормализацией и без нее. На рисунке 1 видно, что красный больше похож на синий, чем на желтый. Однако объекты по осям x и y имеют разный масштаб. Следовательно, наблюдаемое сходство может быть артефактом немасштабированных данных. После нормализации с использованием z-показателя все функции имеют одинаковую шкалу. Теперь вы обнаружите, что красный на самом деле больше похож на желтый. Таким образом, после нормализации данных можно более точно вычислить сходство.

Два графика, сравнивающие данные признаков до и после нормализации
Рисунок 1: Сравнение данных признаков до и после нормализации.

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

  • Ваши данные имеют распределение Гаусса.
  • В вашем наборе данных недостаточно данных для создания квантилей.

Использование преобразования журнала

Иногда набор данных соответствует распределению по степенному закону , которое объединяет данные в нижней части. На рисунке 2 красный ближе к желтому, чем к синему.

Гистограмма с большей частью данных в нижней части
Рисунок 2: Распределение по степенному закону.

Обработайте степенное распределение при помощи логарифмического преобразования. На рис. 3 логарифмическое преобразование создает более плавное распределение, а красный ближе к синему, чем к желтому.

График, показывающий нормальное (гауссово) распределение
Рисунок 3: нормальное (гауссово) распределение.

Использование квантилей

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

Попробуем предварительно обработать этот дистрибутив.

График, показывающий распределение данных до какой-либо предварительной обработки
Рисунок 4: Некатегоризируемое распределение до какой-либо предварительной обработки.

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

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

График, показывающий распределение данных после преобразования журнала
Рисунок 5: Распределение после преобразования журнала.

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

Преобразуйте свои данные в квантили, выполнив следующие шаги:

  1. Определите количество интервалов.
  2. Определите интервалы так, чтобы каждый интервал имел равное количество примеров.
  3. Замените каждый пример индексом интервала, в который он попадает.
  4. Приведите индексы к тому же диапазону, что и другие данные объектов, масштабируя значения индексов до [0,1].
График, показывающий данные после преобразования в квантили. Линия представляет 20 интервалов.]
Рисунок 6: Распределение после преобразования в квантили.

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

  • \(sim(A,B) \approx 1 − | \text{prob}[x > A] − \text{prob}[x > B] |\)
  • \(sim(A,B) \approx 1 − | \text{quantile}(A) − \text{quantile}(B) |\)

Квантиль — лучший выбор по умолчанию для преобразования данных. Однако для создания квантилей, которые являются надежными индикаторами базового распределения данных, вам потребуется много данных. Как правило, для создания квантилей \(n\) необходимо иметь как минимум примеры \(10n\) . Если у вас недостаточно данных, придерживайтесь нормализации.

Проверьте свое понимание

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

Вопрос первый

График, отображающий три распределения данных
Как бы вы обработали это распределение данных?
Создайте квантили.
Правильный. Поскольку распределение не соответствует стандартному распределению данных, вам следует вернуться к созданию квантилей.
нормализовать.
Обычно вы нормализуете данные, если:
  • Распределение данных является гауссовым.
  • У вас есть представление о том, что представляют данные, что говорит вам о том, что данные не должны преобразовываться нелинейно. В результате вы избегаете квантилей и вместо этого выбираете нормализацию.
Ни тот, ни другой случай здесь не применим. Распределение данных не является гауссовым, потому что оно несимметрично. И у вас нет понимания того, что эти значения представляют в реальном мире.
Преобразование журнала.
Не лучший выбор, потому что это не идеальное степенное распределение.

Вопрос второй

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

Отсутствуют данные

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