currently the experiment handles different sorts of experiments by different functions. Better would be to have a consistent way of interacting with the experiment objects by creating separate experiment child class for different experiments. Each experiment should have a run function which runs the experiment type of that class, rather than different functions such as run_single_experiment.
based on the current implementation, we should the following classes:
ExperimentBase - for common stuff
SingleExperiment - for training one classifier and evaluating
CrossValidateExperiment - for training and evalating using cross-validation
CvhptExperiment - For training and evaluating using cross-validation and hyperparameter tuning.
In addition, the AzureML in #9 would suggest new classes.
AzmlBase - additional common stuff for the AzureML platform
AzmlCluster - for running a single experiment on a cluster
This should allows us to expand functionality more easily to new platforms and libraries, following the open/closed architectural principle.
There should probably be another issue for breaking up the dataset class into a preprocessing class and a loader class.
currently the experiment handles different sorts of experiments by different functions. Better would be to have a consistent way of interacting with the experiment objects by creating separate experiment child class for different experiments. Each experiment should have a
run
function which runs the experiment type of that class, rather than different functions such asrun_single_experiment
.based on the current implementation, we should the following classes:
In addition, the AzureML in #9 would suggest new classes.
This should allows us to expand functionality more easily to new platforms and libraries, following the open/closed architectural principle.
There should probably be another issue for breaking up the dataset class into a preprocessing class and a loader class.