With nkululeko since version 0.98.0 there is a new module that allows for the run of several classifier / feature combinations in one go, it's called flags.
Here is an example how to run this on a Polish emotional database:
[EXP]
root = /tmp/results/
name = exp_polish_flags1
[DATA]
databases = ['train', 'dev', 'test']
train = ./data/polish/polish_train.csv
train.type = csv
train.absolute_path = False
train.split_strategy = train
; train.audio_path = ./POLISH
dev = ./data/polish/polish_dev.csv
dev.type = csv
dev.absolute_path = False
dev.split_strategy = train
; dev.audio_path = ./POLISH
test = ./data/polish/polish_test.csv
test.type = csv
test.absolute_path = False
test.split_strategy = test
target = emotion
[FLAGS]
models = ['xgb', 'svm']
features = ['praat', 'os']
balancing = ['none', 'ros', 'smote']
scale = ['none', 'standard', 'robust', 'minmax']
You run this with the python command
python -m nkululeko.flags --config examples/exp_polish_flags.ini
and then would get the output
...
=== BEST CONFIGURATION ===
Best Result: 0.4666666666666666
Best Parameters:
models: xgb
features: praat
balancing: none
scale: none
To use these parameters, set in your config file:
[MODEL]
type = xgb
[FEATS]
type = ['praat']
balancing = none
scale = none
Flags experiments time: 65.32 seconds (1.09 minutes)
DONE