/Masterskaya_1

Разработка модели классификации музыкальных жанров на реальных данных.

Primary LanguageJupyter Notebook

Music genre prediction [M1_26DS+]

Описание проекта

  • Популярный музыкальный стриминговый сервис "МиФаСоль" расширяет работу с новыми артистами и музыкантами, в связи с чем возникла задача - правильно классифицировать новые музыкальные треки, чтобы улучшить работу рекомендательной системы. Сотрудники отдела работы со звуком подготовили датасет, в котором собраны некоторые характеристики музыкальных произведений и их жанры. Наша задача - разработать модель, позволяющую классифицировать музыкальные произведения по жанрам.

  • Проект реализуется в форме соревнования на платформе 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.