Цель исследования
Разработать модель, позволяющую классифицировать музыкальные произведения по жанрам.
Задачи:
- загрузка и ознакомление с данными;
- предварительная обработка;
- EDA;
- разработка новых синтетических признаков,
- проверка на мультиколлинеарность,
- отбор финального набора обучающих признаков,
- выбор и обучение моделей,
- итоговая оценка качества предсказания лучшей модели,
- анализ важности ее признаков.
Подготовка данных
Выполнено преобразование типов данных, синтезирован новый признак который использовался в моделе duration_class
, а также произведено явное преобразование данных. Выявлены явные и неявные дубликаты, выполнен анализ аномальных значений в данных.
Мультиколлениарность
Выполнено исследование исходных данных на наличие мультиколлениарности среди имеющихся регрессоров. Найденые регрессоры по средством оценки вздутия дисперсии и значений корреляций Пирсона и Спирмана, которые в последствие не вошли в обучающую выборку (loudness
, danceability
, acousticness
, valence
energy
и duration_ms
)
Выбор модели
Для базовых моделей использовались LogisticRegression
и RandomForestClassifier
, эти модели выбраны для обзора распределения признаков. Основной моделью была модель градиентного бустинга CatBoost
, как одна из лучших моделей для решения задачи мультиклассификации.
Метрика
F (F beta)
В данной задаче была выбрана метрика F beta, так как она лучше всего подходит для оценки качества модели при решении задачи мультиклассификации.
Формула для метрики F beta ниже
F β = ( 1 + β 2 ) precision × recall β 2 precision + recall .Обучение моделей
Показатели метрик для валидационной выборки:
LogisticRegression
- F-beta 0.05
RandomForestClassifier
- F-beta 0.46
CatBoostClassifier
- F-beta 0.94