Я использую обратную связь с обратной связью в 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 нейронов), предсказанные значения из обучающего набора действительно хороши, но если я применю эту функцию (нейронную сеть) для другого набора данных, эти результаты будут далеки от реальной нагрузки тестового набора...Я все в море.Предложение по улучшению?