Majorproject - Group 23 - First Progress Report
Majorproject - Group 23 - First Progress Report
RECOMMENDER
Major Project - 1
Submitted by:
DHRUV AHUJA (9920103093)
MANAN SINGHAL (9920103086)
SARTHAK CHATURVEDI (9920103127)
Department of CSE/IT
Jaypee Institute of Information Technology University, Noida
Abstract
1. Data Collection
Sources of Music Data
Identify the sources of music data used in the project (e.g., Spotify API, custom
datasets).
2. Sentiment Analysis
Introduction to Sentiment Analysis
Define sentiment analysis and its applications in various domains.
5. User Personalization
Incorporating User Preferences and Feedback
Explain how MoodWave takes into account user feedback and preferences.
6. System Implementation
Technical Details of Implementing MoodWave
Discuss the technical stack, programming languages, and frameworks used in the
project.
3. Model Validation:
scikit-learn (sklearn): Scikit-learn provides essential tools for model validation,
including techniques for model selection, hyperparameter tuning, and evaluation
metrics. It complements the deep learning framework by offering a comprehensive
machine learning toolkit.
4. Data Visualization:
Seaborn and Matplotlib: Seaborn and Matplotlib are used to create visually appealing
and informative data visualizations and plots. They help in presenting insights, model
performance, and results effectively to both technical and non-technical audiences.
5. Spotify Integration:
Spotipy Python Library: The Spotipy Python library is utilized to interact with
Spotify's APIs, allowing MoodWave to access music data directly from Spotify. It
facilitates data acquisition, including song metadata and audio features.
8. Jupyter Notebook:
Jupyter Notebook can be used as an interactive development environment for
experimenting with code, visualizing data, and documenting project progress. It
facilitates an iterative and exploratory approach to development.
Hardware Requirements
Processor (CPU): Describe the recommended CPU specifications. Specify if multi-core processors are
advantageous for faster model training.
Memory (RAM): Indicate the minimum RAM required for data processing and model
training. Mention if larger datasets demand more RAM.
Storage: Specify the disk space requirements for storing datasets, code, and model
checkpoints. Mention whether SSDs or HDDs are preferable for faster data access.
GPU (Graphics Processing Unit): If applicable, specify whether the project benefits from
GPU acceleration for deep learning tasks. Mention the GPU model and VRAM (Video RAM)
requirements.
Operating System: State the compatible operating systems, such as Windows, Linux, or
macOS, and any specific dependencies for each.
Cloud Services: If the project is intended for cloud deployment, mention the cloud service
providers (e.g., AWS, Google Cloud, Azure) and the required configurations for cloud
instances.
Network Requirements: Specify any network connectivity requirements, such as internet
access for data retrieval from external sources.
Progress Updates Till the First Progress Report
To gather the necessary data, we implemented a set of functions using the Spotipy Library. This library
streamlined the process of retrieving technical information about playlists, songs, and artists from Spotify's
extensive music database. For the purpose of this project, we categorized the songs into four distinct
moods: "Energetic," "Calm," "Happy," and "Sad." These mood labels were inspired by research outlined in
the article titled "Music Mood Classification" [source link]. We collected 200 tracks per mood category
from various Spotify playlists and consolidated them into our main dataset, each track being assigned its
corresponding mood label. The dataset can be accessed on our GitHub repository [link].
Our main dataset comprises 800 rows and 18 columns. To simplify the data analysis process, we focused
on ten key features: Length, Danceability, Acousticness, Energy, Instrumentalness, Liveness, Valence,
Loudness, Speechiness, and Tempo. These features were selected because of their significant influence on
track classification.
Upon analyzing the data, we discovered noteworthy trends. For instance, "Happy" tracks tend to be the
most popular, "Sad" songs often have longer durations, "Energetic" tracks are characterized by higher
tempos, and "Calm" songs tend to exhibit more acoustic elements.
2. Model Development:
Before feeding the data into our model, we performed several pre-processing steps. We normalized the
feature values using the MinMaxScaler, ensuring that they fell within the range [0, 1] while preserving the
original data distribution. Additionally, we encoded the mood labels into numerical values as neural
networks require numeric inputs. The dataset was then divided into an 80% training set and a 20% testing
set to facilitate model training and evaluation.
We constructed the model using the Keras library, designed for efficient experimentation with deep neural
networks. Our primary objective was to classify tracks into one of four mood categories: "Calm,"
"Energetic," "Happy," and "Sad." The model we designed is a multi-class neural network with ten input
features, one hidden layer comprising eight nodes, and an output layer with four nodes corresponding to
the four mood categories. The activation function employed is Rectified Linear Unit (Relu), and we used
logistic loss as the loss function with the Adam optimizer.
The code we used to build the Neural Network:
3. Model Evaluation:
To assess the model's performance, we utilized K-Fold Cross Validation with K=10 splits while shuffling
the data. This method allowed us to gauge the model's accuracy across different subsets of the data.
The code we used to evaluate the model:
Finally, we trained the model using the training data and made predictions on the test data. The model was
trained on 80% of the dataset, which amounted to 640 samples.
Some of the output of the last epochs when the model was training:
By following this approach, we were able to achieve an accuracy of 72.75% in classifying music tracks
into their respective mood categories.
Future Scope
Investigate the incorporation of transfer learning and pre-trained models, which may
prove valuable in capturing intricate patterns in music data.
By dedicating our efforts to enhancing the accuracy of our multi-class neural network, we
aim to deliver an increasingly precise and reliable music mood classification experience
to our users.
.
Exploring the Enjoyment of Music Mood Classification:
Beyond the technical aspects, MoodWave aspires to create an engaging and enjoyable
experience for users as they explore and interact with music based on their moods. Our future
vision involves infusing an element of delight into the process of classifying music by mood.
By infusing enjoyment and user engagement into MoodWave, we aim to create a platform that not
only serves as a valuable music discovery tool but also adds a touch of fun and excitement to the
music classification process, making it a joyful journey of musical exploration.
References
Emotional Detection and Music Recommendation System based on User Facial Expression, S
Metilda Florence and M Uma 2020 IOP Conf. Ser.: Mater. Sci. Eng. 912 062007, DOI
10.1088/1757-899X/912/6/062007
Ankita Mahadik, Shambhavi Milgir, Janvi Patel, Vijaya Bharathi Jagan, Vaishali Kavathekar,
2021, Mood based Music Recommendation System, INTERNATIONAL JOURNAL OF
ENGINEERING RESEARCH & TECHNOLOGY (IJERT) Volume 10, Issue 06 (June 2021),