https://github.com/pmhalvor/music-genre-classifier
An experiment aimed to compare a range of ML-based music classifiers
https://github.com/pmhalvor/music-genre-classifier
Last synced: 3 months ago
JSON representation
An experiment aimed to compare a range of ML-based music classifiers
- Host: GitHub
- URL: https://github.com/pmhalvor/music-genre-classifier
- Owner: pmhalvor
- Created: 2023-11-18T17:25:35.000Z (over 2 years ago)
- Default Branch: main
- Last Pushed: 2024-02-03T07:27:08.000Z (over 2 years ago)
- Last Synced: 2025-03-06T11:51:27.756Z (over 1 year ago)
- Language: HTML
- Size: 46.7 MB
- Stars: 0
- Watchers: 1
- Forks: 0
- Open Issues: 1
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
# music-genre-classifier
An experiment aimed to compare a range of ML-based music classifiers
We test three different types of machine learning classifiers (traditional, simple neural networks, and pre-trained models) on the [GTZAN Dataset - Music Genre Classification](https://www.kaggle.com/datasets/andradaolteanu/gtzan-dataset-music-genre-classification).
# Classifier Types
We want to measure performance between complex models and simpler ones. The experiment aims to ultimately show how much compute resources are needed for good classifications.
## Traditional
We train and briefly tune 3 traditional machine learning models: random forest, support vector machines, and k-nearest neighbors.
Then measure the performance based on their macro F-1 scores. We also review category misclassification rate per category using a confusion matrix.
## Neural networks
We then train three simple neural networks: feed-forward (mlp), cnn, rnn. This is mainly to establish a lower limit for performance of neural architectures. Minimal fine tuning should be done here to save resources and maintain the baseline score.
## Pretrained models
There exists many open-source audio/music classifiers. We will select one publicly available through HuggingFace. When choosing a model here, it is important to have a reproducible preprocessing step. Once this preprocessing is set, then we can re-run the previous experiments, but with the same format of data as used here, for a fair comparison.