Skip to content

lakshdeep25/music_recommendation

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

2 Commits
 
 
 
 
 
 
 
 

Repository files navigation

Music Recommendation System

Overview

This Music Recommendation System is designed to provide personalized song recommendations using collaborative filtering techniques. The system leverages the Surprise library in Python, utilizing algorithms such as Singular Value Decomposition (SVD) to predict user preferences and suggest songs they are likely to enjoy.

Features

Personalized Recommendations: Suggests songs tailored to each user's preferences.

Efficient Prediction: Implements the SVD algorithm for accurate rating predictions.

Cross-Validation: Evaluates model performance using metrics like RMSE and MAE.

Dynamic Recommendations: Generates top recommendations for any user based on their interaction history.

Installation

Clone this repository:

git clone

Install the required dependencies:

pip install scikit-surprise pandas

How It Works

Load Dataset: The system reads a dataset containing user interactions with songs, including user IDs, song IDs, and play counts.

Data Preparation: Formats the data for compatibility with the Surprise library.

Model Training: Splits the dataset into training and testing sets, then trains an SVD model.

Evaluation: Measures model accuracy using RMSE and performs cross-validation.

Recommendations: Generates top song recommendations for a specified user.

Usage

Dataset

The dataset should be a CSV file with the following columns:

user_id: Unique identifier for users.

song_id: Unique identifier for songs.

play_count: Number of times a user played a song.

Running the Script

Place your dataset in the project directory and update the file_path variable:

file_path = "music_dataset.csv"

Run the script:

python Music_Suggestion_System.py

View the sample dataset, model accuracy, and song recommendations in the console output.

Example

Recommend songs for a specific user

random_user = uploaded_data['user_id'].sample().iloc[0] recommendations = recommend_songs(random_user, uploaded_data, model) for song, score in recommendations: print(f"Song: {song}, Predicted Score: {score}")

Dependencies

Python 3.7+

pandas

scikit-surprise

Results

The system evaluates performance using Root Mean Square Error (RMSE) and Mean Absolute Error (MAE), ensuring robust and reliable recommendations.

Future Enhancements

Integrate with streaming platforms for real-time recommendations.

Expand dataset to include user demographics and song metadata for hybrid recommendations.

Implement a user interface for seamless interaction.

License

This project is open-source and available under the MIT License.

Acknowledgments

Special thanks to the developers of the Surprise library for enabling easy implementation of recommendation algorithms.

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages