Скрипт на Python для прогнозирования временных рядов с Random Forest

10 000 руб. за проект
11 сентября 2024, 17:40 • 21 отклик • 104 просмотра
Техническое задание (ТЗ) на разработку программы для прогнозирования временных рядов потребления электроэнергии

Цель проекта:

Разработать программу для прогнозирования потребления электроэнергии на основе временных рядов с использованием метода Random Forest. Программа должна принимать исторические данные потребления електрической энэргии, обучать модель, сохранять модель и масштабировщик, а также использовать натренированную модель для прогнозирования будущего потребления и сохранять результаты в файле.

Входные данные:

Файл CSV с историческими данными, который содержит следующие колонки:

year: Год наблюдения.
month: Месяц наблюдения.
day: День наблюдения.
hour: Час наблюдения.
weekday: День недели.
temp: Температура воздуха (°C).
function: Потребление электрической энергии (МВт/ч).
Целевая переменная:
Целевой переменной является потребление электрической энергии (колонка function).

Основные этапы программы:

  1. Загрузка данных:
    • Импорт данных из CSV-файлов.
    • Разделение данных на признаки и целевую переменную (потребление электроэнергии).
  2. Масштабирование данных:
    • Использование масштабировщика (например, StandardScaler) для приведения данных в единый масштаб (нормализация или стандартизация).
  3. Создание временных окон:
    • Формирование наборов признаков и целевых значений для каждого временного окна (например, 24 часа).
    • Признаки: year, month, day, hour, weekday, temp.
    • Целевая переменная: function (потребление электроэнергии).
  4. Обучение модели:
    • Использование модели RandomForestRegressor для обучения на данных временных рядов.
    • Разделение данных на обучающую и тестовую выборки для оценки модели.
    • Оценка модели по метрике RMSE или другим подходящим метрикам.
  5. Сохранение модели и масштабировщика:
    • Сохранение обученной модели и масштабировщика в файлы для дальнейшего использования.
  6. Использование временных окон для прогнозирования:
    • Использование модели для прогнозирования будущих значений на основе новых данных.
  7. Сохранение результатов прогнозирования:
    • Прогнозируемые значения должны быть сохранены в CSV-файл для дальнейшего анализа
  8. Технические требования:


    • Язык
      программирования: Python 3.x.

    • Используемые
      библиотеки:

      • pandas

      • scikit-learn

      • numpy





    Критерии успешности выполнения:


    1. Программа
      корректно обучает модель на исторических данных и сохраняет её в файл.

    2. Программа
      использует обученную модель для прогнозирования на новых данных и
      сохраняет результаты.

    3. Программа
      ведет логирование всех ключевых процессов (обучение, прогнозирование,
      ошибки).

    4. Структура
      программы и код хорошо документированы, есть инструкции по запуску и
      использованию программы.

    5. Программа
      должна выдавать прогноз с общим отклонением не более 5%. Это означает, что
      средняя ошибка между фактическими данными (в тестовой выборке) и прогнозом
      не должна превышать 5% от реальных значений.






Файлы