<jupyter_start><jupyter_text>Прогнозирование временного ряда выработки электроэнергииИмеются два временных ряда: первый — это среднесуточная выработка электроэнергии ветряной установкой. Другой — среднесуточная выработка электроэнергии при помощи дизельного генератора. Оба показателя измеряются в кВт⋅ч.Помимо данных двух временных рядов имеются временные ряды дополнительных параметров, таких как скорость ветра, температура воздуха и т.д.Расшифровка представлена ниже (целевая переменная выделена жирным начертанием):* datetime - День* **diesel_fuel_kWh - Выработка эл.энергии ДЭС,  кВтч** * wind_power_kWh - Выработка эл.энергии ВЭУ,  кВтч* diesel_time_h - Время работы дизельной электростанции (ДЭС),  ч* wind_time_h - Время работы ветряной электроустановки (ВЭУ),  ч * velocity_max_msec - Скорость ветра (мах), м/с * velocity_mean_msec - Скорость ветра (ср), м/с* tmp_grad - Температура окр. среды (ср), градЗадача: построить модель, которая позволяет предсказывать значения временного ряда diesel_fuel_kWh на заданное количество суток вперёд. Таким образом, решается задача предсказания временного ряда.Для решения задачи используется AutoML фреймворк FEDOT.<jupyter_code>import numpy as np
import pandas as pd

# Additional custom functions
from processing import prepare_unimodal_for_validation, plot_diesel_and_wind, \
    advanced_validation, automl_fit_forecast

from pylab import rcParams
rcParams['figure.figsize'] = 15, 7<jupyter_output><empty_output><jupyter_text>Горизонт прогнозирования 20 элементовОпределим длину прогноза и прочитаем исходный файл<jupyter_code># Define forecast horizon and read dataframe
forecast_length = 20
validation_blocks = 2
df = pd.read_csv('pw_dataset.csv', parse_dates=['datetime'])<jupyter_output><empty_output><jupyter_text>Посмотрим на то, как выглядит датасет<jupyter_code># Make visualisation
plot_diesel_and_wind(df)
# Wrap time series data into InputData class
ts = np.array(df['diesel_fuel_kWh'])
# Get data for time series implementation
train_input, validation_input = prepare_unimodal_for_validation(ts, forecast_length,
                                                                validation_blocks)<jupyter_output><empty_output><jupyter_text>Ниже мы не приводим вывод ячейки, так как в jupyter notebook выводятся все логи<jupyter_code># Prepare parameters for algorithm launch
timeout = 1.
composer_params = {'max_depth': 4,
                   'max_arity': 3,
                   'pop_size': 20,
                   'num_of_generations': 100,
                   'preset': 'light_tun',
                   'metric': 'rmse',
                   'cv_folds': 2,
                   'validation_blocks': 2}
forecast, obtained_pipeline = automl_fit_forecast(train_input, validation_input, 
                                                  timeout, composer_params,
                                                  vis=False, in_sample_forecasting=True,
                                                  horizon=forecast_length * validation_blocks)
obtained_pipeline.show()
# Perform in-sample validation and display metrics
advanced_validation(forecast, forecast_length, validation_blocks, ts)<jupyter_output>MAE - 192.90
RMSE - 277.10<jupyter_text>Если требуется экспртировать полученный пайплайн, то можно воспользоваться следующим методом<jupyter_code># Save obtained pipeline
obtained_pipeline.save('')<jupyter_output><empty_output><jupyter_text>В данном случае пайплайн был сохранён в файл "September-15-2021,13-33-28,PM"Загрузить пайплайн можно при помощи следующих строк кода:<jupyter_code>from fedot.core.pipelines.pipeline import Pipeline

load_pipeline = Pipeline()
load_pipeline.load('September-15-2021,13-33-28,PM\.json')<jupyter_output>The pipeline was imported from the path: September-15-2021,13-33-28,PM\.json.
{'fraction_non_alphanumeric': 0.0716931216931217, 'fraction_numerical': 0.016931216931216932, 'mean_word_length': 4.095687331536388, 'pattern_counts': {'":': 0, '<': 23, '<?xml version=': 0, '>': 23, 'https://': 0, 'lorem ipsum': 0, 'www.': 0, 'xml': 0}, 'pii_count': 0, 'substrings_counts': 0, 'word_list_counts': {'cursed_substrings.json': 8, 'profanity_word_list.json': 0, 'sexual_word_list.json': 0, 'zh_pornsignals.json': 0}}
{'chain_length': '6', 'dir': 'jupyter-structured-clean-dedup', 'id': '82587', 'license': 'BSD-3-Clause', 'n_tokens_mistral': 1363, 'n_tokens_neox': 1444, 'n_words': 299, 'path': 'cases/industrial/univariate_forecasting_advanced.ipynb', 'repo_name': 'vishalbelsare/FEDOT', 'size': '3780'}