IIS_2023_1/istyukov_timofey_lab_6
2024-01-11 15:43:32 +04:00
..
1_plot_result.png commit 4 2024-01-11 15:42:42 +04:00
2_dataset.jpg create README 2024-01-11 15:38:56 +04:00
3_score.jpg create README 2024-01-11 15:38:56 +04:00
lab6.py commit 2 2024-01-11 15:40:25 +04:00
music_genre.csv commit 1 2024-01-11 15:38:48 +04:00
README.md commit 5 2024-01-11 15:43:32 +04:00

Лабораторная работа №5. Регрессия

12 вариант


Задание:

Использовать регрессию по варианту для своих данных по варианту, самостоятельно сформулировав задачу. Оценить, насколько хорошо она подходит для решения сформулированной вами задачи.

Вариант:

  • Модель нейронной сети: MLPRegressor

Вариант набора данных по курсовой работе:

  • Прогнозирование музыкальных жанров ("Prediction of music genre")

Запуск

  • Запустить файл lab6.py

Используемые технологии

  • Язык программирования Python
  • Среда разработки PyCharm
  • Библиотеки:
    • pandas
    • sklearn
    • matplotlib

Описание программы

Набор данных (Kaggle): Полный список жанров, включенных в CSV: «Электронная музыка», «Аниме», «Джаз», «Альтернатива», «Кантри», «Рэп», «Блюз», «Рок», «Классика», «Хип-хоп».

Задача, решаемая нейронной сетью: Предсказание популярности нового музыкального трека на основе его определённых характеристик.

Задача оценки: Анализ с помощью коэффициента детерминации и потери регрессии среднеквадратичной логарифмической ошибке, плюсом к ним график сравнения реальных и предсказанных значений.


Пример работы

Датасет, сформированный из случайных строк csv-файла.

Graphics


Коэффициент детерминации используется для оценки эффективности модели линейной регрессии. Он показывает, насколько хорошо наблюдаемые результаты воспроизводятся моделью, в зависимости от соотношения суммарных отклонений результатов, описываемых моделью. По выводу можно отметить, что 33,4% изменчивости зависимого выходного атрибута можно объяснить с помощью модели, в то время как остальные 66,6% изменчивости все ещё не учтены.

Потери регрессии среднеквадратичной логарифмической ошибки (MSLE) использует тот же подход, что и MSE, но использует логарифм для компенсации больших выбросов в наборе данных и обрабатывает их так, как если бы они были в одном масштабе. Это наиболее ценно в стремлении к сбалансированной модели с одинаковым процентом ошибок.

Graphics


График нейронной сети MLPRegressor, показывающий сравнение реальных (ось абсцисс) и предсказанных (ось ординат) данных.

Graphics


Вывод

Итак, нейронная сеть с поставленной задачей по сути не справилась. Работа со скрытыми слоями смогла улучшить результат, но лишь на значение, равное 0,100.

Использование слишком малого количества нейронов в скрытых слоях приведет к недообучению. Недообучение происходит, когда в скрытых слоях слишком мало нейронов для адекватного обнаружения сигналов в сложном наборе данных. Использование же слишком большого количества нейронов в скрытых слоях может привести к переобучению. Очевидно, должен быть достигнут некоторый компромисс между слишком большим и слишком малым количеством нейронов в скрытых слоях. Я пришёл к тому, что использовал 4 скрытых слоя с 50 нейронов в каждом.

Можно сделать заключение, что целевая переменная (процент популярности музыкального трека) выбрана неудачно, либо же требуется более детальная обработка данных и другой подход к оцениваемым признакам. Как вариант, можно рассмотреть StandardScaler или MinMaxScaler на этапе предварительной обработки данных. Но как упоминалось в прошлой лабораторной работе, популярность музыкального трека слишком неоднозначная величина, которую саму по себе предсказать не просто, так как нет точной формулы песни, которая взлетит в чартах. Искусство само по себе коварное :)