
ЛР4
.docxГУАП
КАФЕДРА № 41
ОТЧЕТ ЗАЩИЩЕН С ОЦЕНКОЙ
ПРЕПОДАВАТЕЛЬ
старший преподаватель |
|
|
|
В.В. Боженко |
должность, уч. степень, звание |
|
подпись, дата |
|
инициалы, фамилия |
ОТЧЕТ О ЛАБОРАТОРНОЙ РАБОТЕ №4 |
ПРОГНОЗИРОВАНИЕ ВРЕМЕННОГО РЯДА |
по курсу: МАШИННОЕ ОБУЧЕНИЕ |
|
РАБОТУ ВЫПОЛНИЛ
СТУДЕНТ ГР. № |
4116 |
|
|
|
|
|
|
|
подпись, дата |
|
инициалы, фамилия |
Санкт-Петербург 2024
Цель работы: выполнить прогнозирование временного ряда
Ход работы
Импортирован набор данных и нужные библиотеки. (Рисунок 1).
Рисунок 1 – Импортирование датасета
Произведено масштабирование данных с помощью MinMaxScaler. Написана функция create_sequences, которая создает последовательности для обучения модели, где каждая последовательность содержит 12 предыдущих значений временного ряда, а y содержит значение, следующее сразу за этой последовательностью. (Рисунок 2).
Рисунок 2 – Предобработка данных
Данные разделены на обучающую и тестовую выборки. Создана и обучена модель LSTM (разновидность архитектуры рекуррентных нейронных сетей, способная к обучению долговременным зависимостям). Параметр return_sequences=True нужен, чтобы передать выходы слоя в следующий LSTM слой. Для регуляризации добавлен слой Dropout, который обнуляет нейроны на выход случайным образом, чтобы избежать переобучения. Для визуализации процесса обучения построен график потерь. (Рисунок 3-4).
Рисунок 3 – Создание и обучение модели
Рисунок 4 – График потерь
Потери на обучающей и тестовой выборках находятся на очень близком уровне, что говорит о хорошей обобщающей способности модели. Нет явных признаков переобучения, так как тестовые потери не начинают резко расти, а остаются стабильными и низкими.
Построен график аппроксимации, показывающий насколько хорошо модель предсказала зарплату по тестовым данным (Рисунок 5-6).
Рисунок 5 – Построение графика аппроксимации
Рисунок 6 – График аппроксимации
На графике видно, что предсказанные значения не всегда точно совпадают с реальными данными. В некоторых местах расхождения достаточно большие.
Произведены предсказания на краткосрочный (1 месяц), среднесрочный (6 месяцев) и долгосрочный (12 месяцев) периоды (Рисунок 7-8).
Рисунок 7 – Выполнение предсказаний
Рисунок 8 – Результаты предсказаний
По прогнозам на следующие полгода видно, что модель предсказывает уменьшение зарплаты в ближайшие месяцы.
Прогнозы на долгосрочный период также показывают зарплаты в начале прогнозируемого периода, а затем некоторое увеличение к концу года.
Построен график распределения остатков (разницы между фактическими значениями и предсказанными) (Рисунок 9).
Рисунок 9 – Предсказание модели
Распределение остатков не компактное, что говорит о высокой вариативности ошибок, что означает, что модель часто делает значительные ошибки в предсказаниях.
Ссылка на Google Colab:
https://colab.research.google.com/drive/1DS8l6WArJSwL5ZsMVrcO7McMQJFDM-OZ?usp=sharing
Выводы:
В ходе выполнения лабораторной работы создана и обучена нейронная сеть с долгой краткосрочной памятью (LSTM). Произведено предсказание заработной платы программистов в крупной компании. График аппроксимации показал, что предсказанные значения не всегда близки к истинным, но при уменьшении или увеличении истинных данных, также спадают или растут. Гистограмма остатков показала, что остатки распределены по обе стороны от нуля, что указывает на то, что модель может как переоценивать, так и недооценивать значения. В целом модель можно использовать для краткосрочного прогноза