Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
9144.pdf
Скачиваний:
18
Добавлен:
25.11.2023
Размер:
2.34 Mб
Скачать

Построение автокорреляционной функции (АКФ)

plt.figure(figsize=(11,4), dpi= 80) # Инициализация подложки графика

#Построение АКФ средствами библиоткеи pandas (функции plotting и autocorrelation_plot)

#Функция .loc позволяет обратиться к группе строчек или колонок по

#соответствующим названиям индексов или названиям колонок.

#В примере ниже выбирается набор строк колонки 'Consumption' дф data в диапазоне даты

#от '2012-01' до '2013-01' и передается функции вычисления и построения АКФ. pd.plotting.autocorrelation_plot(data.loc['2012-01': '2013-01', 'Consumption']);

9

Блок построения временных трендов с усреднением по 7 и 365 дней по колонке 'Consumption'

data_columns = ['Consumption', 'Wind', 'Solar', 'Wind+Solar']

# data_365d_rol - название дф, в который заносятся колонки с усреднением за

365 дней (функции rolling() и mean())

data_365d_rol = data[data_columns].rolling(window = 365, center = True).mean()

# data_7d_rol - название дф, в который заносятся колонки с усреднением за 7

дней (функции rolling() и mean())

data_7d_rol = data[data_columns].rolling(window = 7, center = True).mean()

data_365d_rol['Consumption'] = data_365d_rol['Consumption'].fillna(method = 'bfill').fillna(method = 'ffill')

# Построение графика с помощью библиотеки matplitlib (plt)

fig, ax = plt.subplots(figsize = (11,4)) # Инициализация графика fig -

подложка (холст), ax - оси

#Построение колонки 'Consumption' дф data, через запятую передаются атрибуты для настройки графика

#marker - маркер точки на графике, markersize - размер маркера, color - цвет,

#linestyle - тип линии (если используется),

#label - подпись графика (не заголовок, отображается функцией legend())

ax.plot(data['Consumption'], marker='.', markersize=2, color='0.6', linestyle='None', label='Daily')

# Построение колонки 'Consumption' дф data_7d_rol ax.plot(data_7d_rol['Consumption'], linewidth=2, label='7-d Rolling Mean')

# Построение колонки 'Consumption' дф data_365d_rol ax.plot(data_365d_rol['Consumption'], color='0.2', linewidth=3, label='Trend (365-d Rolling Mean)')

#Добваление на график таблички (права низ) с названиями графиков ax.legend()

#Добавление названия оси абсцисс

ax.set_xlabel('Year')

#Добавление названия оси ординат ax.set_ylabel('Consumption (GWh)')

#Добавление названия всего графика

ax.set_title('Trends in Electricity Consumption')

Text(0.5, 1.0, 'Trends in Electricity Consumption')

10

Формирование функции вычисления точности прогнозной модели

import sklearn.metrics as metrics # Импорт библиотеки по рассчету метрик ошибки

import numpy as np

#def - инициализация функции, далее идет название и передаваемые атрибуты

#y_true - исходный дф, y_pred - спрогнозированный дф, model - название

#модели машинного обучения

def regression_results(y_true, y_pred, model):

#Метрики регресионных моделей

#Средняя абсолютная ошибка

mean_absolute_error = metrics.mean_absolute_error(y_true, y_pred)

# Средняя квадратичная ошибка

mse = metrics.mean_squared_error(y_true, y_pred)

# Медианная вбсолютная ошибка

median_absolute_error = metrics.median_absolute_error(y_true, y_pred)

#Коэффициент детерминации (R^2) - определяет степень соответствия

#полученной в ходе МО модели исходным данным. (Модели с коэфф. детерм.

#более 0,8 (80%) считаются достаточно точными)

r2 = metrics.r2_score(y_true, y_pred)

# Вывод вычисленных метрик

print(' ') print(model)

#print('explained_variance: ', round(explained_variance,4))

#print('mean_squared_log_error: ', round(mean_squared_log_error,4)) print('r2: ', round(r2,4))

print('MAE: ', round(mean_absolute_error,4))

print('MSE: ', round(mse,4)) print('RMSE: ', round(np.sqrt(mse),4))

11

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]