Giter Site home page Giter Site logo

data-science-1's Introduction

Data Science - Spotifier

This is the Data Science portion for an Application that uses Machine Learning to build a Song Recommender based on a audio track analysis.

๐Ÿ‘‰ Go to the app Spotifier

๐Ÿ‘‡ Flowchart

Alt text

๐Ÿ‘‡ Project Info

  • For the Data Science portion of this application, we used this Kaggle Spotify Audio Features Dataset. Dataset has a number of tracks and for every track an artist. You will also find Spotify's Track Id, along with a number of numeric audio features such as acousticness, danceability, tempo, speechiness and several more. We took this information and utilized a KDTree from Scikit Learn in order to model our Song Recommender. This method finds the songs nearest to each other in terms of the numerical audio features previously mentioned. From there we have a list of songs, and along with each song is a number of recommended songs(in the example we use 15). We then push it to AWS RDS PostgreSQL database.

๐Ÿ“น Presentation

Spotifier Presentation Link to YouTube Video

๐Ÿ‘‡ Backend API Endpoint

Endpoints that do not say โ€˜No Auth Requiredโ€™ or Log In/Register/Log Out will all require authentication
Register

POST - https://spotify-song-suggester.herokuapp.com/createnewuser      
--- parameters ---      
- username      
- password 

Log In

GET - https://spotify-song-suggester.herokuapp.com/login   
--- takes in ---   
- username   
- password 

Log Out

GET - https://spotify-song-suggester.herokuapp.com/oauth/revoke-token   

Get All Tracks (for testing) - No Auth Required

GET - https://spotify-song-suggester.herokuapp.com/tracks/tracks  
- Limit 10 per page   

Get Track By Name (trackid) - No Auth Required

GET - https://spotify-song-suggester.herokuapp.com/tracks/track/{name}   

Save/Favorite Track by Name (trackid)

POST - https://spotify-song-suggester.herokuapp.com/tracks/save/{trackid}   

Get Userโ€™s Saved/Favorited Tracks

GET - https://spotify-song-suggester.herokuapp.com/tracks/savedtracks  

Get Suggested/Recommended Tracks by Name (trackid) - No Auth Required

GET - https://spotify-song-suggester.herokuapp.com/tracks/recs/{trackid} 
- returns 10 similar songs with song details  

Remove Song From Saved/Favorited

DELETE - https://spotify-song-suggester.herokuapp.com/tracks/remove/{trackid}   

๐Ÿ“Š Visual Representationss of What Our ML Model is doing

Alt text

Alt text

Alt text

Alt text

๐Ÿ‘‡ Song Selections along with 200 Song Recommendations Based on

Notice how they generally follow the same trajectory along the path across the features, naturally with a few outliers This is helping to Visually convey how Songs are recommended based on songs nearest to it in terms of quantifable Audio Features such as accoustiness, danceability, energy etc. Alt text

Alt text

Alt text

๐Ÿ‘‡ Logs

  • 2019-09-21 - Started explanatory notebooks
  • 2019-09-23 - Re-structured and organized folders, and files

๐Ÿ“œ Contributing

Pull requests are welcome. However for major changes, please open an issue first to discuss what you would like to change.

Please make sure to update tests as appropriate.

๐Ÿ‘ฎ License

MIT

data-science-1's People

Contributors

hurshd0 avatar joshfowlkes avatar nevets615 avatar

Watchers

James Cloos 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.