Почему мы преобразуем перекос данных в нормальное распределение


15

Я проходил решение конкурса цен на жилье на Kaggle ( ядро Human Analog по ценам на жилье : методы предварительной регрессии ) и наткнулся на эту часть:

# Transform the skewed numeric features by taking log(feature + 1).
# This will make the features more normal.
from scipy.stats import skew

skewed = train_df_munged[numeric_features].apply(lambda x: skew(x.dropna().astype(float)))
skewed = skewed[skewed > 0.75]
skewed = skewed.index

train_df_munged[skewed] = np.log1p(train_df_munged[skewed])
test_df_munged[skewed] = np.log1p(test_df_munged[skewed])

Я не уверен в том, что нужно для преобразования искаженного распределения в нормальное распределение. Пожалуйста, может кто-нибудь объяснить подробно:

  1. Почему это делается здесь? или как это полезно?
  2. Чем это отличается от масштабирования объектов?
  3. Является ли это необходимым шагом для разработки функций? Что может произойти, если я пропущу этот шаг?

2
Таким образом, невязки являются гауссовыми (и могут быть устранены путем усреднения), дисперсия стабильна, и для предварительной обработки оптимизатором ускоряется сходимость. en.wikipedia.org/wiki/Power_transform
Эмре

Ответы:


12

Возможно, вы захотите интерпретировать ваши коэффициенты. То есть, чтобы можно было сказать что-то вроде «если я увеличу свою переменную на 1, то в среднем и при прочих равных увеличится на ».Икс1Yβ1

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

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

Другое - гомосцедастичность . Ошибки ваши моделей фиксации должны иметь ту же дисперсию, то есть вы должны гарантировать , что линейная регрессия не делают небольшие ошибки при малых значениях и больших ошибках для более высоких значений . Другими словами, разница между тем, что вы предсказываете и истинными значениями должна быть постоянной. Вы можете убедиться в этом, убедившись, что следует распределению Гаусса. (Доказательство очень математическое.)ИксИксY^YY

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

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

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

Применение логарифм или нормализации данных, также имеет важное значение , так как алгоритмы оптимизации линейной регрессии обычно минимизации , так что если у вас есть какие - то большие выбросы, ваша оценка будет очень обеспокоена минимизируя те , поскольку оно касается квадратичной ошибки, а не абсолютной ошибки. Нормализация данных имеет важное значение в тех случае , и именно поэтому scikit учиться имеет опцию в линейной регрессии конструктора.| |Y^-Y| |2Ynormalize


3

Перекошенные данные здесь нормализуются путем добавления единицы (одна добавлена ​​так, что нули преобразуются в единицу, так как log 0 не определено) и получения натурального log. Данные могут быть почти нормализованы с использованием методов преобразования, таких как получение квадратного корня или обратного или логарифмирования. Теперь, почему это требуется. На самом деле многие алгоритмы в данных предполагают, что наука о данных нормальна, и рассчитывают различные характеристики, исходя из этого. Таким образом, чем больше данные близки к нормальным, тем больше они соответствуют предположению.


3
Алгоритмы здесь - повышение градиента и регрессия лассо. Я думаю, что этот ответ был бы более полезным, если бы он мог показать, насколько он (или нет) имеет отношение к этим двум алгоритмам конкретно.
oW_

С моей точки зрения, когда модель обучается, будь то линейная регрессия или какое-то дерево решений (устойчивое к выбросам), асимметрия данных затрудняет поиск модели правильного шаблона в данных, поэтому мы вынуждены делать перекос данных в нормальный или гауссовский.
Гольди Рана

1

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


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

1
Это одна чрезвычайно ошибочная цепочка рассуждений. Это как: «- Я видел, как люди чистят яблоки перед тем, как их есть. Почему? - О, это потому, что яблоки - это фрукты, а один из ключевых фруктов - апельсин, а вы всегда очищаете апельсин!».
ayorgo
Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.