IIS_2023_1/istyukov_timofey_lab_6/README.md
2024-01-12 02:15:48 +04:00

96 lines
5.9 KiB
Markdown
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# Лабораторная работа №6. Нейронная сеть
## 12 вариант
___
### Задание:
Использовать регрессию по варианту для своих данных по варианту,
самостоятельно сформулировав задачу. Оценить, насколько хорошо она
подходит для решения сформулированной вами задачи.
### Вариант:
- Модель нейронной сети: **MLPRegressor**
### Вариант набора данных по курсовой работе:
- Прогнозирование музыкальных жанров ("Prediction of music genre")
___
### Запуск
- Запустить файл lab6.py
### Используемые технологии
- Язык программирования **Python**
- Среда разработки **PyCharm**
- Библиотеки:
* pandas
* sklearn
* matplotlib
* seaborn
### Описание программы
**Набор данных (Kaggle):** Полный список жанров, включенных в CSV:
«Электронная музыка», «Аниме», «Джаз», «Альтернатива», «Кантри», «Рэп»,
«Блюз», «Рок», «Классика», «Хип-хоп».
**Задача, решаемая нейронной сетью:**
Предсказание популярности нового музыкального трека на основе его
определённых характеристик.
**Задача оценки:**
Анализ с помощью коэффициента детерминации и потери регрессии
среднеквадратичной логарифмической ошибке, плюсом к ним график сравнения
реальных и предсказанных значений.
---
### Пример работы
*Датасет, сформированный из случайных строк csv-файла.*
![Graphics](2_dataset.jpg)
---
***Коэффициент детерминации** используется для оценки эффективности модели
линейной регрессии. Он показывает, насколько хорошо наблюдаемые результаты
воспроизводятся моделью, в зависимости от соотношения суммарных отклонений
результатов, описываемых моделью. По выводу можно отметить, что 33,4%
изменчивости зависимого выходного атрибута можно объяснить с помощью модели,
в то время как остальные 66,6% изменчивости все ещё не учтены.*
***Потери регрессии среднеквадратичной логарифмической ошибки (MSLE)** использует
тот же подход, что и **MSE**, но использует логарифм для компенсации больших
выбросов в наборе данных и обрабатывает их так, как если бы они были в одном
масштабе. Это наиболее ценно в стремлении к сбалансированной модели с
одинаковым процентом ошибок.*
![Graphics](3_score.jpg)
---
*График нейронной сети MLPRegressor, показывающий сравнение реальных
(ось абсцисс) и предсказанных (ось ординат) данных.*
![Graphics](1_plot_result.png)
---
### Вывод
Итак, нейронная сеть с поставленной задачей по сути не справилась. Работа
со скрытыми слоями смогла улучшить результат, но лишь на значение, равное 0,100.
Использование слишком малого количества нейронов в скрытых слоях приведет к
недообучению. Недообучение происходит, когда в скрытых слоях слишком мало
нейронов для адекватного обнаружения сигналов в сложном наборе данных.
Использование же слишком большого количества нейронов в скрытых слоях может
привести к переобучению. Очевидно, должен быть достигнут некоторый компромисс
между слишком большим и слишком малым количеством нейронов в скрытых слоях.
Я пришёл к тому, что использовал 4 скрытых слоя с 50 нейронов в каждом.
Можно сделать заключение, что целевая переменная (процент популярности
музыкального трека) выбрана неудачно, либо же требуется более детальная
обработка данных и другой подход к оцениваемым признакам. Как вариант,
можно рассмотреть StandardScaler или MinMaxScaler на этапе предварительной
обработки данных. Но как упоминалось в прошлой лабораторной работе,
популярность музыкального трека слишком неоднозначная величина, которую
саму по себе предсказать не просто, так как нет точной формулы песни,
которая взлетит в чартах. Искусство само по себе коварное :)