Прогноз погоды с использованием нейронной сети - PullRequest
11 голосов
/ 07 февраля 2010

Я пытаюсь написать программу для прогнозирования погоды, используя backpropagation . Я новичок в этой области. У меня есть исторические данные с различными параметрами, такими как температура, влажность, скорость ветра, количество осадков и т. Д.

Я не понимаю, как предоставить эти данные входному слою. Должен ли каждый входной узел получать данные целиком за определенный день или мне нужна отдельная сеть для каждого параметра? Я также запутался насчет выходного слоя.

Ответы [ 3 ]

3 голосов
/ 07 февраля 2010

Во входном слое есть X отдельных узлов для каждого измерения (погода, ветер и т. Д.) Входных данных, где X - количество дней, к которым можно вернуться (скажем, 4-7). Затем вы должны нормализовать каждое входное измерение в подходящем диапазоне, скажем, [-1.0, 1.0].

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

Последний слой - это ваш выходной слой, полностью взаимосвязанный со вторым слоем (а также смещенный смещением). Иметь отдельный выходной нейрон для каждого измерения.

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

(Также обратите внимание, что существует метод, называемый «временное обратное распространение», который настроен для данных временных рядов.)

2 голосов
/ 07 февраля 2010

Я использовал (и владею) эту книгу: Введение в нейронные сети с Java

Я нашел это полезной ссылкой. Он охватывает целый ряд тем NN, включая обратное распространение.

2 голосов
/ 07 февраля 2010

Мне кажется, что деревья решений могут быть лучшим решением этой проблемы, чем нейронные сети. Здесь - описание того, как работают деревья решений. Также доступно программное обеспечение, которое имеет реализации различных классификаторов, включая нейронные сети. Я работал с Weka , и он работает очень хорошо. Существуют также библиотеки, которые вы можете использовать для использования функциональности Weka с такими языками программирования, как Java и C #. Если вы решили работать с Weka, обязательно ознакомьтесь с форматом .arff, описанным здесь .

...