Скрипт на Python для прогнозирования временных рядов с Random Forest
10 000 руб. за проект
Техническое задание (ТЗ) на разработку программы для прогнозирования временных рядов потребления электроэнергии
Цель проекта:
Разработать программу для прогнозирования потребления электроэнергии на основе временных рядов с использованием метода Random Forest. Программа должна принимать исторические данные потребления електрической энэргии, обучать модель, сохранять модель и масштабировщик, а также использовать натренированную модель для прогнозирования будущего потребления и сохранять результаты в файле.
Входные данные:
Файл CSV с историческими данными, который содержит следующие колонки:
year: Год наблюдения.
month: Месяц наблюдения.
day: День наблюдения.
hour: Час наблюдения.
weekday: День недели.
temp: Температура воздуха (°C).
function: Потребление электрической энергии (МВт/ч).
Целевая переменная:
Целевой переменной является потребление электрической энергии (колонка function).
Основные этапы программы:
Цель проекта:
Разработать программу для прогнозирования потребления электроэнергии на основе временных рядов с использованием метода Random Forest. Программа должна принимать исторические данные потребления електрической энэргии, обучать модель, сохранять модель и масштабировщик, а также использовать натренированную модель для прогнозирования будущего потребления и сохранять результаты в файле.
Входные данные:
Файл CSV с историческими данными, который содержит следующие колонки:
year: Год наблюдения.
month: Месяц наблюдения.
day: День наблюдения.
hour: Час наблюдения.
weekday: День недели.
temp: Температура воздуха (°C).
function: Потребление электрической энергии (МВт/ч).
Целевая переменная:
Целевой переменной является потребление электрической энергии (колонка function).
Основные этапы программы:
- Загрузка данных:
- Импорт данных из CSV-файлов.
- Разделение данных на признаки и целевую переменную (потребление электроэнергии).
- Масштабирование данных:
- Использование масштабировщика (например, StandardScaler) для приведения данных в единый масштаб (нормализация или стандартизация).
- Создание временных окон:
- Формирование наборов признаков и целевых значений для каждого временного окна (например, 24 часа).
- Признаки: year, month, day, hour, weekday, temp.
- Целевая переменная: function (потребление электроэнергии).
- Обучение модели:
- Использование модели RandomForestRegressor для обучения на данных временных рядов.
- Разделение данных на обучающую и тестовую выборки для оценки модели.
- Оценка модели по метрике RMSE или другим подходящим метрикам.
- Сохранение модели и масштабировщика:
- Сохранение обученной модели и масштабировщика в файлы для дальнейшего использования.
- Использование временных окон для прогнозирования:
- Использование модели для прогнозирования будущих значений на основе новых данных.
- Сохранение результатов прогнозирования:
- Прогнозируемые значения должны быть сохранены в CSV-файл для дальнейшего анализа
- Технические требования:
- Язык
программирования: Python 3.x. - Используемые
библиотеки:- pandas
- scikit-learn
- numpy
Критерии успешности выполнения:
- Программа
корректно обучает модель на исторических данных и сохраняет её в файл. - Программа
использует обученную модель для прогнозирования на новых данных и
сохраняет результаты. - Программа
ведет логирование всех ключевых процессов (обучение, прогнозирование,
ошибки). - Структура
программы и код хорошо документированы, есть инструкции по запуску и
использованию программы. - Программа
должна выдавать прогноз с общим отклонением не более 5%. Это означает, что
средняя ошибка между фактическими данными (в тестовой выборке) и прогнозом
не должна превышать 5% от реальных значений.
- Язык
- Файлы
В заказе есть исполнитель
При переводе заказа из архивного в актуальный, текущий исполнитель будет снят с задачи.
Выберите тип сделки
С безопасной сделкой вы всегда сможете вернуть средства, если что-то пойдет не так. С простой сделкой вы самостоятельно договариваетесь с исполнителем об оплате и берете на себя решение конфликтов.