Tensorflow / Keras: нормализовать данные поезда / теста / реального времени или как справиться с реальностью? - PullRequest
1 голос
/ 24 сентября 2019

Я начал разрабатывать некоторые LSTM-модели и теперь у меня есть вопросы по нормализации.

Предположим, у меня есть данные временных рядов, которые примерно колеблются между +500 и -500.Было бы более реалистичным масштабировать данные от -1 до 1 или лучше использовать 0 к 1, я проверил их, и 0 к 1 показалось быстрее.Есть ли неправильный способ сделать это?Или это будет медленнее учиться?

Второй вопрос: когда я нормализую данные?Я делю данные на обучающие и тестовые данные, нужно ли отдельно масштабировать / нормализовать эти данные?возможно, тренировочные данные находятся в диапазоне от +300 до -200, а тестовые данные - от +600 до -100.Это не очень хорошо, я думаю.

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

Короче говоря, когда я нормализую данные и что произойдет с совершенно новыми данными?

Я надеюсь, что смогу прояснить, в чем моя проблема: D

Большое спасибо!

1 Ответ

1 голос
/ 24 сентября 2019

Хотелось бы также узнать, как справляться с реальностью ...

На серьезной ноте:

1.Как нормализовать данные

Обычно нейронные сети извлекают выгоду из данных, поступающих от стандартного распределения Гаусса (среднее 0 и дисперсия 1).

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

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

2.А как насчет тестовых данных?

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

Так что просто вычислите статистику по набору данных обучения и используйтеих на входящие / проверочные / тестовые данные, а также.

...