Therapyx
@Therapyx
Data Science

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

Недавно появилась потребность в машинном обучении и тренировки модели для уже имеющихся исторических данных, так как входных параметров уж слишком много.

В кратце суть (сокращено): на входе есть
- время суток (24ч в цикле)
- выходной - не выходной (по полной дате)
- куча приборов с кол-вом потребления энергии (цифры)
- И такие параметры как охлаждение/проветривание в помощении.

на выходе нужно сделать предикшен скажем "общего" потребления энергии всех машин вместе в зависимости от времени суток и других параметров. (этакая экстраполяция, основываясь на многих десятках параметров).
- В общем все алгоритмы тема обширная и все подрят учить и разбирать будет наверно не рационально, поэтому хотел спросить, какие алгоритмы подойдут именно под этот тип задачи? (дабы сузить этот круг :)
Пока-что из того, что разобрал более менее склоняюсь в сторону Desicion Tree и Recurrent Neural Networks.
  • Вопрос задан
  • 534 просмотра
Пригласить эксперта
Ответы на вопрос 2
sgjurano
@sgjurano
Разработчик
Возьмите xgboost.XGBRegressor, обучайте на подвыборке за все предыдущие дни для каждого часа отдельно. В качестве метрики качества можете рассмотреть MSE или MAE.

Качество будет приличное, думать много не надо.

Решение похожей задачи: https://youtu.be/nZdeB6QI9Vw

PS: Градиентный бустинг, который реализован в xgboost, это последовательное добавление решающих деревьев в композицию, с подкручиванием весов объектов на каждом шаге таким образом, чтобы каждое следующее дерево (estimator в терминах xgboost) наилучшим образом учитывало ошибки всей композиции на предыдущем шаге.
Ответ написан
begemot_sun
@begemot_sun
Программист в душе.
Вообще все эти модные нейронные сети всего лишь черный ящик.
Я бы на вашем месте построил адекватную математическую модель процессов, с учетом всех параметров.
Далее в этой модели есть некоторые неизвестные параметры: A,B,C- вот тут путем мат аппроксимации\интерполяции вам необходимо их найти, путем подгонки модели к действительности.
Далее вы берете любые входные параметры, и получаете результат модели на них.
Т.о. как вы их зададиде (экстраполируете), так и результат выйдет.
Обычно проще экстраполировать некий вход, чем уже готовый выход.

Экстраполяция входа будет сродни техническому анализу в биржевой торговле. Т.е. вы берете ряд. Берете оконную функцию и дрессируете сеть на предсказывание следующего значения на основании окна.
Дальше подаете входы на модель, получаете выходы модели.

Вы, конечно, можете натренировать НС напрямую без модели, но это может быть достаточно затратно по времени и вычислительным мощностям. И не факт что вы придете к какому-то значимому результату таким образом.
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы