-
Популярный музыкальный стриминговый сервис "МиФаСоль" расширяет работу с новыми артистами и музыкантами, в связи с чем возникла задача - правильно классифицировать новые музыкальные треки, чтобы улучшить работу рекомендательной системы. Сотрудники отдела работы со звуком подготовили датасет, в котором собраны некоторые характеристики музыкальных произведений и их жанры. Наша задача - разработать модель, позволяющую классифицировать музыкальные произведения по жанрам.
-
Проект реализуется в форме соревнования на платформе Kaggle: требуется показать лучшую метрику F1 на скрытой тестовой выборке.
Библиотеки:
- pandas
- sklearn
- numpy
- matplotlib
- scipy
- phik
- xgboost
- catboost
Модели:
- RandomForestClassifier
- svm
- xgboost
- CatBoostClassifier
-
Загрузили и изучили данные, провели предобработку и EDA, создали и добавили новые признаки, проверили признаки на мультиколлинеарность, выбрали и обучили модели, подобрав для них лучшие гиперпараметры методом HalvingGridSearchCV, после чего оценили качество предсказаний кросс-валидацией и проанализировали важность признаков лучшей модели.
-
Лучше всего с поставленной задачей справилась модель CatBoost с количеством итераций (iterations) 2000, и 'learning_rate' - 0.03. Модель показала на валидационной выборке значение метрики F1 - 0.480479, это значит, что модель правильно предсказала жанр (один из десяти) трека почти в половине случаев.
-
Наиболее важным признаком для модели является 'instrumentalness'.
-
В финальном тесте модель показала значение метрики F1 - 0,49764.