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

Почему масштабирование данных?

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

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

  • Нормализация - преобразование числовых данных в тот же масштаб, что и у других числовых данных.
  • Bucketing - преобразование числовых (обычно непрерывных) данных в категориальные данные.

👉Постерегись, прежде чем продолжить

Изучите и очистите свои данные

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

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

Визуализируйте свои данные

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

Нормализация

Цель нормализации - преобразовать объекты в аналогичный масштаб. Это улучшает производительность и устойчивость модели к обучению.

Почему нормализация?

Нормализация необходима, если у вас очень разные значения в пределах одного объекта (например, население города). Без нормализации ваше обучение может взорваться из-за NaN, если обновление градиента будет слишком большим.

У вас могут быть две разные функции с сильно различающимися диапазонами (например, возраст и доход), в результате чего градиентный спуск будет подпрыгивать и замедлять сходимость. Оптимизаторы, такие как Adagrad и Adam, защищают от этой проблемы, создавая отдельную эффективную скорость обучения для каждой функции. Но оптимизаторы не могут избавить вас от широкого диапазона значений в рамках одной функции; в этих случаях вы должны нормализовать.

Краткий обзор методов нормализации

Могут быть полезны пять распространенных методов нормализации:

  • L1- L2 нормализация
  • Масштабирование до диапазона (мин.-Макс.)
  • Вырезка
  • Масштабирование журнала
  • Стандартизация / Z-оценка

Нормализация L1– L2

Иногда нас не волнует величина векторов. Мы просто хотим знать их направления в нашем пространстве функций. Таким образом, в этом случае мы можем масштабировать входные векторы индивидуально до единичной нормы (длины вектора), используя нормализацию L1 или L2.

Для нормализации L1 сумма их абсолютных значений равна единице.

Для нормализации L2 он вычисляется как квадратный корень из суммы квадратов значений вектора.

Масштабирование до диапазона (мин.-макс.)

линейное преобразование данных, которое сопоставляет минимальное значение с максимальным значением в определенном диапазоне (например, от 0 до 1)

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

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

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

Обрезка

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

Формула: если x ›max, то x’ = max, иначе, если x ‹min, то x’ = min

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

Масштабирование журнала

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

х '= журнал (х)

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

Стандартизация / Z-оценка

Он преобразует каждую функцию в нормальное распределение со средним значением 0 и стандартным отклонением 1. Может также называться преобразованием Z-балла.

Формула: x ’= (x - μ) / σ, где μ - среднее значение, а σ - стандартное отклонение.

👉Сводка

  • Масштабирование Min-Max чувствительно к выбросам. Таким образом, он используется, когда функция более или менее равномерно распределена в фиксированном диапазоне.
  • Для удаления некоторых выбросов предпочтительнее обрезать. Его можно использовать вместе с другими методами нормализации.
  • При экстремальных значениях предпочтительнее масштабирование журнала. Короче говоря, когда распределение данных искажено
  • Z-оценка или стандартизация полезны, когда есть несколько выбросов, но не настолько экстремальных, чтобы вам нужно было вырезать

Таким образом, выбор зависит от данных и алгоритма, который вы собираетесь выбрать.

Бакетинг (Биннинг)

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

  • Сегменты с одинаковыми границами: границы фиксированы и охватывают один и тот же диапазон (например, 0–4 градуса, 5–9 градусов и 10–14 градусов, или 5 000–9999 долларов США, 10 000–14 999 долларов США. и 15 000–19 999 долларов США). Некоторые корзины могут содержать много точек, в то время как другие могут иметь мало или не содержать ни одного.

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

  • Квантиль v / s Равные границы: cut библиотека выберет интервалы, которые будут равномерно распределены в соответствии с самими значениями, а не частотой этих значений. В каждой корзине будет разное количество записей.

Однако, когда вы запрашиваете квинтили с qcut, ячейки будут выбраны так, чтобы у вас было одинаковое количество записей в каждой ячейке. (ваш вывод должен выглядеть так, с 6 записями в каждом бункере):

  • Группирование на основе порогового значения. Ранее мы видели примеры сегментирования данных на основе количества корзин. Теперь мы увидим, как данные могут быть распределены по пороговому значению. В приведенном ниже примере проверяются значения при трех разных пороговых значениях 20, 30 и 64 и соответственно данные бункеров. Обратите внимание, что мы указали 3 пороговых значения, и данные были сегментированы на 4 ячейки.

👉Сводка

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

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

Использованная литература:

Https://developers.google.com/machine-learning/data-prep/transform/introduction