In the training graph above, we compared the accuracy of our model against the dataset size. We can see that as the dataset size increased, the training accuracy also increased and began to plateau.
Summary of Results
We experimented with ZeroR, k nearest neighbor, decision tree (J48), random forest, multilayer perceptron, logistic regression, BayesNets, and naive Bayes. As inputs to these algorithms, we used the following attributes in our classification task: danceability, energy, key, loudness, mode, speechiness, acousticness, instrumentalness, liveness, valence, tempo, duration, timbre, and pitch.
We ultimately found that random forests yielded the best results with a 10-fold cross-validation accuracy of 73.5%. Random forests are an ensemble learning method that involves constructing a number of individual decision trees and averaging their results. They implicitly determine which features are important and generalize well to new data, thus proving to be an effective classifier for our task. We found key, mode and energy to be the most important attributes in determining classification.