Это нормально, если я нормализую весь набор данных вместе? - PullRequest
0 голосов
/ 05 июня 2018

Я пытаюсь обучить сеть RNN, в которой используются LSTM.

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

Example part of the dataset

Как видно из рисунка выше, столбцы разного цвета намного больше или меньшечем другие.

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

1 Ответ

0 голосов
/ 05 июня 2018

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

Как правило, это делается одним из двух способов:

  • Изменение масштаба: перевод значений объекта в диапазон, например от 0 до 1. Минимальное-максимальное изменение масштаба выполняетсяэто по:

Rescaling

  • Стандартизация: вычитание среднего и деление на стандартное отклонение.Новая функция будет иметь среднее значение 0 и стандартное отклонение 1.

Standardization

Изменение масштаба можно выполнить в Python с помощью Scikit-Learn.MinMaxScaler.Стандартизация может быть выполнена в Python с использованием Scikit-Learn's StandardScaler.

Вот хорошая статья об основах масштабирования функций: http://sebastianraschka.com/Articles/2014_about_feature_scaling.html.

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