GithubHelp home page GithubHelp logo

bernatespinet / predictig-music-genere-of-songs Goto Github PK

View Code? Open in Web Editor NEW
0.0 1.0 0.0 52.92 MB

Anàlisi de dades exhaustiu, amb el dataset :https://www.kaggle.com/purumalgi/music-genre-classification

Jupyter Notebook 100.00%

predictig-music-genere-of-songs's Introduction

Cas-Kaggle

Anàlisi de dades exhaustiu, amb el dataset :https://www.kaggle.com/purumalgi/music-genre-classification

Pràctica Kaggle APC UAB 2021-22

Nom: Bernat Espinet Torrescassana

DATASET: Music Genre Classification

URL: kaggle

Resum

El dataset conté informació de cançons com ara el nom de l'autor, el nom de la cançó, la instrumentalitat i el tempo d'entre d'altres. Tenim 17996 dades amb 17 atributs. Un 11% d'ells és categòric i els altres són numèrics. Les dades no estan normalitzades i hi ha un 24.3% de mostres amb NA

Objectius del dataset

Volem crear un classificador bo per determinar el gènere musical d'una cançó donades les seves característiques.

Experiments

Primer vàrem aplicar un preprocessat bàsic i vam generar els models i després, vam aplicar hyperparameter tunning pels millors models per veure si érem capaços de millorar el accuracy. Després vam tornar al preprocessament per trobar quina configuració era l'òptima per la nostra base de dades i vam tornar a crear els models.

Preprocessat

Per preparar el dataset, hem codificat el nom de l'artista, eliminat el nom de la cançó, omplert els NA amb -1 i estandarditzant les dades. Amb aquest preprocessament és amb el que hem aconseguit els millors resultats.

Model

Model Hiperparametres Mètrica Temps
OneVsOneClassifier LogisticRegression() 49.4% 1.467s
OneVsRestClassifier LogisticRegression() 49.1% 0.816s
OutputCodeClassifier LogisticRegression() 42.0% 0.950s
KNeighborsClassifier n_neighbors=45 49.6% 0.177s
KNeighborsClassifier n_neighbors=45, weights="distance" 44.9% 0.209s
DecisionTreeClassifier criterion= 'entropy', max_depth= None, max_features= 14, min_samples_leaf= 61, splitter= 'best' 48.3% 0.625s
RandomForestClassifier criterion= 'entropy', max_depth= 10, max_features= 'sqrt', n_estimators= 1000 53.1% 123.250s
XGBClassifier colsample_bytree= 0.8011935532275019, gamma= 0.0967861901103601, learning_rate= 0.06881623529678811, max_depth= 3, n_estimators= 114, objective= 'o', subsample= 0.8160718933070602 69.3% 7.347s
Stacked Model creat a partir del OneVsOneClassifier, RandomForestClassifier, KNeighborsClassifier i XGBClassifier 55.3% 31.735s

Demo

Per tal de fer una prova, primer hem d'executar el codi principal per generar el .db i després l'arxiu Demo.ipynb. Aquest arxiu ens permet classificar noves cançons que no tenen un gènere associat.

Conclusions

El millor model basant-nos amb l'accuracy és el XGBClassifier però, un cop fem la Cross Validation, ens adonem que el Stacked és millor, ja que no comet overfitting. Hi ha pocs treballs sobre aquest dataset, però tots aconsegueixen entorn el 50% de accuracy.

Idees per treballar en un futur

En un futur seria interessant classificar més mostres d'entrenament dels gèneres amb menys mostres. Això permetria crear un model més generalitzat i robust.

predictig-music-genere-of-songs's People

Contributors

bernatespinet avatar

Watchers

 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.