Be able to express constraints between parameters more easily
The configuration file is the interface between users and iota2. It is important to ensure the coherence between them before launching iota2. However, parameters are stacking together and expressing constraints between them is becoming more and more difficult (with the actual methods we have to perform checks).
Currently some check are perform at builder level :
and the same kind of functions can be found for different builder (ie: i2_obia.py#L387).
The constraints would be more easily expressed if coded at the same place, near (or in) the parameter definition (default_config_parameters.py).
maybe by adding a new attribute "self.builders_constraints"
class init_cross_validation_folds(generic_parameters):
""" Init cross_validation_folds parameter"""
def __init__(self):
super().__init__()
self.name = "cross_validation_folds"
self.desc = ("The number of k-folds")
self.value = 5
self.type_exp = int
self.section = "scikit_models_parameters"
self.builders = {"i2_classification": False}
self.incompatible_params = {"i2_classification" : [("param_name", values), (...),... (...)]}
All other suggestions are welcome