Как протестировать нейронную сеть и спрогнозировать будущий спрос на тепло на следующие 24 часа? - PullRequest
0 голосов
/ 23 февраля 2019

Я использую обратную связь с обратной связью в MatLab.

Мне нужно включить datetime в качестве входных данных и прогнозировать будущую потребность в тепле на 24 часа вперед.У меня есть исторические данные от 3 тепловых станций, каждая с различной мощностью.Мои входные данные для ANN - историческая тепловая нагрузка, температура и datetime в формате dd.MM.yyyy hh:mm:ss.

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

Я нормализовал температуру, чтобы соответствовать диапазону [0;1], используя x=data-min(data)/(max(data)-min(data).

Мой обучающий набор данных представляет собой матрицу 17x17500 (2016, 2017 год) и набор данных 2018 года (тестовый) 17x8566.

Целевые данные - нормализованная тепловая нагрузка за этот период.

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

Матрица ввода:

0.0322580645161290  0.0322580645161290 %day
0.0833333333333333  0.0833333333333333 %month
0.0434782608695652  0.0869565217391304 %hour
0.514701910237105   0.515792343235321 % outside temp
0   0 % morning peak
0   0 % non-working day
0   0 % monday
0   0 %tuesday
0   0 %wednesday
0   0 %thursday
0   0 %friday
1   1 %saturday
0   0 %sunday
0   0 %summer
0   0 %winter

Я немного погуглил и нашел, как кодировать циклические данные, такие как часы и т. Д., Через sin /преобразование cos (то есть циклические входы представлены двумя дополнительными значениями sin и cos нейронов), предсказанные значения из обучающего набора действительно хороши, но если я применю эту функцию (нейронную сеть) для другого набора данных, эти результаты будут далеки от реальной нагрузки тестового набора...Я все в море.Предложение по улучшению?

...