IIS_2023_1/istyukov_timofey_lab_5/README.md
2024-01-11 00:25:21 +04:00

108 lines
6.1 KiB
Markdown
Raw 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.

# Лабораторная работа №5. Регрессия
## 12 вариант
___
### Задание:
Использовать регрессию по варианту для своих данных по варианту,
самостоятельно сформулировав задачу. Оценить, насколько хорошо она
подходит для решения сформулированной вами задачи.
### Вариант:
- Тип регрессии: **Логистическая регрессия**
### Вариант набора данных по курсовой работе:
- Прогнозирование музыкальных жанров ("Prediction of music genre")
___
### Запуск
- Запустить файл lab5.py
### Используемые технологии
- Язык программирования **Python**
- Среда разработки **PyCharm**
- Библиотеки:
* pandas
* sklearn
* matplotlib
* warnings
### Описание программы
**Набор данных (Kaggle):** Полный список жанров, включенных в CSV:
«Электронная музыка», «Аниме», «Джаз», «Альтернатива», «Кантри», «Рэп»,
«Блюз», «Рок», «Классика», «Хип-хоп».
**Задача, решаемая регрессией:**
Предсказание популярности нового музыкального трека на основе его
определённых характеристик. Регрессионная модель может предсказывать
числовую оценку популярности трека, что может быть полезно
для музыкальных платформ по типу Spotify.
**Задача оценки:**
- Вычисление 5 важных признаков и удаление из классификации ненужных
- Прогноз на тестовом на наборе и расчёт точности.
- Формирование матрицы путаницы для большего понимания.
- Формирование отчёта классификации
---
### Пример работы
*Датасет, сформированный из случайных строк csv-файла.*
![Graphics](1_dataset.jpg)
---
*Вычисленные характеристики признаков. Меткой True и рангом №1
указаны 5 важных для популярности музыкального трека признаков.*
*Например, danceability (танцевальность) трека оказалось важным признаком,
а duration_ms (длительность в милисекундах) — самый незначительный признак.*
![Graphics](2_features.jpg)
---
*Матрица путаницы — это табличное представление прогнозов, сделанных моделью
классификации, показывающее количество правильных и неправильных прогнозов
для каждого класса. На пересечениях n-строки и n-столба показаны верные прогнозы
признака с индексом i. На данной матрице видно, что на популярности уровня 0 и 3
не было ни одного верного предсказания.*
![Graphics](3_confusion_matrix.jpg)
---
*Оценка точности модели. По матрице путаницы можно было заметить, что оценка
по значению чуть больше 50%, так как количество верных и неверных прогнозов
не сильно отличается.*
![Graphics](4_score.jpg)
---
*На отчёте также можно заметить по нулям у уровней популярности 0 и 3,
что там ни одно значение не было верно предсказано.*
![Graphics](5_report.jpg)
### Вывод
Итак, можно сказать, что с поставленной задачей логистическая регрессия больше
справилась, чем не справилась. Но в то же время популярность трека — неоднозначный
признак. Нельзя по характеристикам музыкального трека точно сказать, насколько
он взлетит в чартах. Считаю, что именно поэтому программа не смогла предсказать
нулевую и высшую популярность, а назначила тестовой выборке лишь средние
значения популярности.
Логистическая регрессия выполняется быстро и относительно несложно, в ней удобно
интерпретировать результаты. Хотя по сути это метод бинарной классификации,
его также можно применять к задачам мультиклассов, что я и сделал (было бы
нелогично обозначать популярность лишь метками True и False, когда можно
её разделить на уровни).
Также логистическая регрессия не готова обрабатывать избыточное количество
категорических признаков. Она подвержена переподбору, что и было сделано в
данной лабораторной работе. Логистическая регрессия не будет хорошо работать
с независимыми признаки трека, которые не коррелируют с популярностью трека.