#dataset #neural-network #artificial-intelligence #missing-data
#набор данных #нейронная сеть #искусственный интеллект #отсутствуют-данные
Вопрос:
В настоящее время у меня есть много данных, которые будут использоваться для обучения нейронной сети прогнозирования (гигабайты данных о погоде для крупных аэропортов по всей территории США). У меня есть данные почти за каждый день, но в данных некоторых аэропортов отсутствуют значения. Например, аэропорт мог не существовать до 1995 года, поэтому у меня нет данных до этого для этого конкретного местоположения. Кроме того, в некоторых из них отсутствуют целые годы (один может охватывать период с 1990 по 2011 год, отсутствует 2003).
Что я могу сделать, чтобы тренироваться с этими отсутствующими значениями, не вводя в заблуждение мою нейронную сеть? Я думал о заполнении пустых данных 0 или -1, но я чувствую, что это заставит сеть прогнозировать эти значения для некоторых выходных данных.
Ответ №1:
Я не эксперт, но, конечно, это будет зависеть от типа используемой вами нейронной сети?
Весь смысл нейронных сетей в том, что они могут обрабатывать недостающую информацию и так далее.
Я согласен, однако, что установка пустых данных с 1 и 0 не может быть хорошей вещью.
Возможно, вы могли бы предоставить некоторую информацию о вашей нейронной сети?
Комментарии:
1. Эта сеть предназначена только для моих выигранных образовательных целей, но у меня есть ежедневные данные о погоде (средняя скорость ветра, средняя / высокая / низкая температура и т.д.), Которые я бы использовал для прогнозирования будущей погоды. Это 4-уровневая (входная, 2 скрытых, выходная) рекуррентная сеть. Входными данными являются день года (от 0 до 364) и различная информация о погоде (данные, упомянутые ранее). Выходными данными должны быть прогнозируемые погодные данные на следующий период.
2. Поправка: существует только один скрытый слой. Это была бы либо сеть Элмана, либо сеть Джордана.
Ответ №2:
Я использую много NNS для прогнозирования, и я могу сказать вам, что вы можете просто оставить эти «дыры» в своих данных. На самом деле, NNS способны изучать взаимосвязи внутри наблюдаемых данных, и поэтому, если у вас нет определенного периода, это не имеет значения … если вы зададите пустые данные в качестве постоянного значения, вы предоставите своему алгоритму обучения вводящую в заблуждение информацию. NNS не нужны «непрерывные» данные, фактически, хорошей практикой является перетасовка наборов данных перед обучением, чтобы выполнить фазу обратного распространения на несмежных выборках…
Ответ №3:
Что ж, тип нейронной сети с именем autoencoder подходит для вашей работы. Для восстановления входных данных можно использовать автокодеры. Автоэнкодер обучен изучать базовый набор / распределение данных. Однако они в основном используются для задач восстановления сигнала, таких как изображение и звук. Однако вы могли бы использовать их для заполнения недостающих функций.
Существует также другой метод, придуманный как «матричная факторизация«, который используется во многих системах рекомендаций. Люди используют методы факторизации матриц, чтобы заполнить огромные матрицы множеством пропущенных значений. Например, предположим, что в IMDb имеется 1 миллион фильмов. Почти никто не смотрел даже 1/10 из этих фильмов на протяжении всей своей жизни. Но она проголосовала за некоторые фильмы. Матрица, N by M
где N
— количество пользователей и M
количество фильмов. Матричная факторизация является одним из методов, используемых для заполнения недостающих значений и предложения фильмов пользователям на основе их предыдущих голосов за другие фильмы.