ru24.pro
Все новости
Сентябрь
2024
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21
22
23
24
25
26
27
28
29
30

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

0
Техническое задание (ТЗ) на разработку программы для прогнозирования временных рядов потребления электроэнергии

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

Разработать программу для прогнозирования потребления электроэнергии на основе временных рядов с использованием метода 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% от реальных значений.