Масштабирование функций: когда следует использовать стандартизацию и нормализацию

Что такое масштабирование функций?

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

Стандартизация

Стандартизация изменяет масштаб данных, чтобы получить среднее значение 0 и стандартное отклонение 1. Предполагается, что ваши данные имеют гауссову (колоколообразную кривую) распределение.

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

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

Причина в том, что рост и вес измеряются на разных весах.

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

Итак, что же происходит под капотом этой техники? Чтобы визуализировать…

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

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

Здесь мы вычисляем первую строку или запись высоты столбца, равную 1,98 минус среднее значение (вычисленное выше на первом шаге), равное 1,79, и делим его на стандартное отклонение ( как вычислено на первом шаге), что составляет 0,10954, и мы получаем результат 1,73.

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

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

Шаблон кода стандартизации

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

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

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

Здесь не требуется среднее значение или стандартное отклонение. Вам нужно только минимальное и максимальное значение для каждого столбца.

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

Первый шаг: получите минимум и максимум каждого столбца.

Второй шаг: возьмите каждое значение и рассчитайте соответственно по формуле

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

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

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

Нормализация Шаблон кода

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

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

Ссылки:







Больше контента на plainenglish.io