Home

Awesome

Genre Classification: A Transductive, Inductive and Deep Approach

Main Dependencies

Installation

Clone this repository and install all required packages.

pip install -r requirements.txt

How to use?

The different arguments that can be passed to main.py:

Note that you should apply at least one of the two types of learning (Transductive or Inductive)

Graph Statistics

Training and Testing

To only calculate and save the features and labels with default arguments:

python main.py --only-features --threshold 0.9  --dataset-size medium --remove-disconnected --num-classes 8 --with-PCA --PCA-dim 120

To run genre classification only by loading previously saved features:

python main.py --threshold 0.9  --dataset-size medium --inductive-learning --remove-disconnected --num-classes 8 --with-PCA --PCA-dim 120 --additional-models --train

To calculate and save the features and then train classifiers:

python main.py --threshold 0.9  --dataset-size medium --inductive-learning --remove-disconnected --num-classes 8 --with-PCA --PCA-dim 120 --additional-models --train --recalculate-features --gcn --gcn_khop

To test trained classifiers using test set:

python main.py --threshold 0.9  --dataset-size medium --inductive-learning --remove-disconnected --num-classes 8 --with-PCA --PCA-dim 120 --additional-models --gcn --gcn_khop

Using MLP Features to get better features and adjacency

First, train an MLP on the training dataset:

python main.py --threshold 0.9  --dataset-size large --inductive-learning --mlp-nn --train --remove-disconnected --num-classes 8 --prefix mlpFeatures --recalculate-features --with-PCA --PCA-dim 120

Test your trained MLP:

python main.py --threshold 0.9  --dataset-size large --inductive-learning --mlp-nn --remove-disconnected --num-classes 8 --prefix mlpFeatures --with-PCA --PCA-dim 120

Second, get new features by passing them through trained MLP and train the classification using them

python main.py --threshold 0.9  --dataset-size large --inductive-learning --use-mlp-features --remove-disconnected --num-classes 8 --prefix mlpFeatures --with-PCA --PCA-dim 120 --train --recalculate-features --additional-models --gcn --gcn_khop

Test the trained methods using test set:

python main.py --threshold 0.9  --dataset-size large --inductive-learning --use-mlp-features --remove-disconnected --num-classes 8 --prefix mlpFeatures --with-PCA --PCA-dim 120 --additional-models --gcn --gcn_khop

Transductive Learning Methods

This type of learning contains 'Graph-Based Semi-Supervised Learning' algorithms

Algorithms

<!--* Local and Global Consistency (LGC) [NIPS04][[paper](https://papers.nips.cc/paper/2506-learning-with-local-and-global-consistency.pdf)] * Modified Adsorption (MAD) [PKDD09][[paper](http://talukdar.net/papers/adsorption_ecml09.pdf)]--> <!--* Confidence-Aware Modulated Label Propagation (CAMLP) [SDM16][[paper](https://epubs.siam.org/doi/pdf/10.1137/1.9781611974348.58)]-->

License

Please, see the license for further details.