Линейная регрессия:: Стандартизация (Vs) Стандартизация

Я использую линейную регрессию для прогнозирования данных. Но, я получаю совершенно противоположные результаты, когда я нормализую (Vs) стандартизует переменные.

Нормализация = x -xmin/xmax - xmin Стандартная оценка нуля = x - xmean/xstd

a) Also, when to Normalize (Vs) Standardize ?
b) How Normalization affects Linear Regression?
c) Is it okay if I don't normalize all the attributes/lables in the linear regression?

Спасибо, Сантош

Ответы

Ответ 1

Обратите внимание, что результаты могут не совпадать. Для двух вариантов вам могут потребоваться разные гиперпараметры, чтобы дать аналогичные результаты.

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

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

Например, при анализе кластеризации стандартизация может быть особенно важна для сравнения сходств между особенностями на основе определенных дистанционных мер. Другим важным примером является анализ основных компонентов, где мы обычно предпочитаем стандартизацию по шкале Min-Max, так как нас интересуют компоненты, которые максимизируют дисперсию (в зависимости от вопроса, и если PCA вычисляет компоненты через корреляционную матрицу вместо ковариационная матрица, но больше о PCA в моей предыдущей статье).

Однако это не означает, что масштабирование Min-Max не полезно вообще! Популярным приложением является обработка изображений, где интенсивность пикселей должна быть нормализована, чтобы соответствовать определенному диапазону (то есть от 0 до 255 для цветового диапазона RGB). Кроме того, типичный алгоритм нейронной сети требует данных, которые в масштабе 0-1.

Одним из недостатков нормализации стандартизации является то, что он теряет некоторую информацию в данных, особенно об выбросах.

Также на связанной странице есть следующее изображение:

Графики стандартизованного и нормализованного набора данных

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

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

Ответ 2

Это имеет смысл, потому что нормализация и стандартизация делают разные вещи.

Нормализация преобразует ваши данные в диапазон от 0 до 1

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

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

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

Если вы собираетесь нормализовать хотя бы одну переменную/функцию, я бы сделал то же самое со всеми остальными, а также

Ответ 3

Первый вопрос: зачем нам нормализация/стандартизация?

=> Мы возьмем пример набора данных, где у нас есть переменная зарплаты и возрастная переменная. Возраст может варьироваться от 0 до 90, где зарплата может быть от 25 тысяч до 2,5 лакх.

Мы сравниваем разницу для 2 человек, тогда разница в возрасте будет в диапазоне ниже 100, где разница в зарплате будет в диапазоне тысяч.

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

Нормализация изменяет значения в диапазон [0,1]. Стандартизация изменяет масштаб данных, чтобы иметь среднее значение (μ) 0 и стандартное отклонение (σ) 1.

Если вы нажмете на ссылку ниже, вы увидите изображение. Или вы можете увидеть в ответе сверху изображение. https://www.google.com/search?q=normalization+and+standardization+image&rlz=1C1CHBF_enIN826IN827&source=lnms&tbm=isch&sa=X&ved=0ahUKEwiqx8aA0KngAhVFto8KHWmzryk&i&i&i&i&i&hl=ru&i&hl_ru_P_C_W_D_C_E_D_W_D_W_D_C_D_D_D_D_W_D_D_W_D_W_P_C_D_D_D_W__d_P_C_W_c_d_t_c_t__d_t_w_9_5_1_1_5_5_5_5_5_5_5_5_5_5_1D

В изображении вы можете видеть, что наши обычные данные разбросаны по размеру от 1 до 6, стандартизированные данные распределены вокруг -1 до 3, тогда как нормализованные данные распределены от 0 до 1.

Обычно многие алгоритмы требуют, чтобы вы сначала стандартизировали/нормализовали данные перед передачей в качестве параметра. Как и в PCA, где мы делаем уменьшение размеров, выводя наши трехмерные данные в 1D (скажем). Здесь мы требовали стандартизации.

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

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