@@ -387,10 +387,17 @@ def _set_seed(self, seed):
387387
388388 @property
389389 def strategy (self ):
390+ """
391+ :return: strategy: "GRID" | "RANDOM" | "BAYESIAN"
392+ :rtype str
393+ """
390394 return self ._raw_settings ["strategy" ]
391395
392396 @strategy .setter
393397 def strategy (self , strategy ):
398+ """
399+ :param str strategy: "GRID" | "RANDOM" | "BAYESIAN"
400+ """
394401 assert strategy in {"GRID" , "RANDOM" , "BAYESIAN" }
395402 self ._raw_settings ["strategy" ] = strategy
396403
@@ -400,6 +407,7 @@ def set_grid_search(self, shuffle=True, seed=0):
400407 :param bool shuffle: if True, the search will iterate over a shuffled grid as opposed to the lexicographical
401408 iteration over the cartesian product of the hyperparameters.
402409 :param int seed:
410+ :return current HyperparameterSearchSettings
403411 """
404412 self ._raw_settings ["strategy" ] = "GRID"
405413 if shuffle is not None :
@@ -415,6 +423,7 @@ def set_random_search(self, seed=0):
415423 """
416424 Sets the search strategy to "RANDOM" to perform a random search on the hyperparameters.
417425 :param int seed:
426+ :return current HyperparameterSearchSettings
418427 """
419428 self ._raw_settings ["strategy" ] = "RANDOM"
420429 self ._set_seed (seed )
@@ -424,13 +433,18 @@ def set_bayesian_search(self, seed=0):
424433 """
425434 Sets the search strategy to "BAYESIAN" to perform a Bayesian search on the hyperparameters.
426435 :param int seed:
436+ :return current HyperparameterSearchSettings
427437 """
428438 self ._raw_settings ["strategy" ] = "BAYESIAN"
429439 self ._set_seed (seed )
430440 return self
431441
432442 @property
433443 def validation_mode (self ):
444+ """
445+ :return mode: "KFOLD" | "SHUFFLE" | "TIME_SERIES_KFOLD" | "TIME_SERIES_SINGLE_SPLIT" | "CUSTOM"
446+ :rtype str
447+ """
434448 return self ._raw_settings ["mode" ]
435449
436450 @validation_mode .setter
@@ -447,7 +461,7 @@ def set_kfold_validation(self, n_folds=5, stratified=True):
447461 is enabled).
448462 :param int n_folds: the number of folds used for the hyperparameter search
449463 :param bool stratified: if True, will keep the same proportion of each target classes in all folds
450- :return:
464+ :return current HyperparameterSearchSettings
451465 """
452466 if self ._raw_settings ["mode" ] == "TIME_SERIES_SINGLE_SPLIT" :
453467 self ._raw_settings ["mode" ] = "TIME_SERIES_KFOLD"
@@ -472,7 +486,7 @@ def set_single_split_validation(self, split_ratio=0.8, stratified=True):
472486 is enabled).
473487 :param float split_ratio: ratio of the data used for the train during hyperparameter search
474488 :param bool stratified: if True, will keep the same proportion of each target classes in both splits
475- :return:
489+ :return current HyperparameterSearchSettings
476490 """
477491 if self ._raw_settings ["mode" ] == "TIME_SERIES_KFOLD" :
478492 self ._raw_settings ["mode" ] = "TIME_SERIES_SINGLE_SPLIT"
@@ -495,6 +509,7 @@ def set_custom_validation(self, code=None):
495509 """
496510 Sets the validation mode to "CUSTOM".
497511 :param str code: definition of the validation
512+ :return current HyperparameterSearchSettings
498513 """
499514 self ._raw_settings ["mode" ] = "CUSTOM"
500515 if code is not None :
@@ -510,13 +525,14 @@ def set_search_distribution(self, distributed=False, n_containers=4):
510525 :param bool distributed: if True, search will be distributed across n_containers containers in the Kubernetes
511526 cluster selected in containerized execution configuration of the runtime environment
512527 :param int n_containers:
513- :return:
528+ :return current HyperparameterSearchSettings
514529 """
515530 assert isinstance (distributed , bool )
516531 if n_containers is not None :
517532 assert isinstance (n_containers , int )
518533 self ._raw_settings ["nContainers" ] = n_containers
519534 self ._raw_settings ["distributed" ] = distributed
535+ return self
520536
521537 @property
522538 def distributed (self ):
@@ -602,6 +618,12 @@ def _get_active_settings_dict(self):
602618
603619 @property
604620 def definition_mode (self ):
621+ """
622+ "EXPLICIT" means that the hyperparameter search is performed over a given set of values (default for grid search)
623+ "RANGE" means that the hyperparameter search is performed over a range of values (default for random and Bayesian
624+ searches)
625+ :return: str mode: "EXPLICIT" | "RANGE"
626+ """
605627 if self ._algo_settings .strategy == "GRID" :
606628 return self ._algo_settings [self .name ]["gridMode" ]
607629 else :
@@ -611,9 +633,6 @@ def definition_mode(self):
611633 @definition_mode .setter
612634 def definition_mode (self , mode ):
613635 """
614- "EXPLICIT" means that the hyperparameter search is performed over a given set of values (default for grid search)
615- "RANGE" means that the hyperparameter search is performed over a range of values (default for random and Bayesian
616- searches)
617636 :param str mode: "EXPLICIT" | "RANGE"
618637 """
619638 assert mode in ["EXPLICIT" , "RANGE" ], "Hyperparameter definition mode must be either \" EXPLICIT\" or \" RANGE\" "
@@ -629,12 +648,18 @@ def set_explicit_values(self, values):
629648 - the explicit values to search over for the current numerical hyperparameter
630649 - the definition mode of the current numerical hyperparameter to "EXPLICIT"
631650 :param list values: the explicit list of numerical values that will be searched for this hyperparameter
651+ :return current NumericalHyperparameterSettings
632652 """
633- self .values ( values )
653+ self .values = values
634654 self .definition_mode = "EXPLICIT"
655+ return self
635656
636657 @property
637658 def values (self ):
659+ """
660+ :return: the explicit list of numerical values that will be searched for this hyperparameter
661+ :rtype: list
662+ """
638663 return self ._algo_settings [self .name ]["values" ]
639664
640665 @values .setter
@@ -695,9 +720,11 @@ def set_range(self, min=None, max=None, nb_values=None):
695720 :param min: the lower bound of the Range that will be searched for this hyperparameter
696721 :param max: the upper bound of the Range that will be searched for this hyperparameter
697722 :param nb_values: for grid-search ("GRID" strategy) only, the number of values between min and max to consider
723+ :return current NumericalHyperparameterSettings
698724 """
699725 self ._set_range (min = min , max = max , nb_values = nb_values )
700726 self .definition_mode = "RANGE"
727+ return self
701728
702729 @property
703730 def range (self ):
@@ -710,8 +737,14 @@ def __init__(self, numerical_hyperparameter_settings):
710737 self ._numerical_hyperparameter_settings = numerical_hyperparameter_settings
711738 self ._range_dict = self ._numerical_hyperparameter_settings ._algo_settings [numerical_hyperparameter_settings .name ]["range" ]
712739
740+ def __repr__ (self ):
741+ return "Range(min={}, max={}, nb_values={})" .format (self .min , self .max , self .nb_values )
742+
713743 @property
714744 def min (self ):
745+ """
746+ :rtype: float | int
747+ """
715748 return self ._range_dict ["min" ]
716749
717750 @min .setter
@@ -723,6 +756,9 @@ def min(self, val):
723756
724757 @property
725758 def max (self ):
759+ """
760+ :rtype: float | int
761+ """
726762 return self ._range_dict ["max" ]
727763
728764 @max .setter
@@ -734,6 +770,9 @@ def max(self, val):
734770
735771 @property
736772 def nb_values (self ):
773+ """
774+ :rtype: int
775+ """
737776 return self ._range_dict ["nbValues" ]
738777
739778 @nb_values .setter
@@ -777,6 +816,7 @@ def enable_categories(self, categories, disable_others=False):
777816 Enables the search over categories listed in the first argument.
778817 :param list categories: will enable the search over the provided categories
779818 :param bool disable_others: if True, will also disable the search over categories not listed in the first argument
819+ :return current CategoricalHyperparameterSettings
780820 """
781821 accepted_categories = self .get_all_categories ()
782822 for category in categories :
@@ -788,12 +828,14 @@ def enable_categories(self, categories, disable_others=False):
788828 self ._set_values ({category : {"enabled" : False }
789829 for category in accepted_categories
790830 if category not in categories })
831+ return self
791832
792833 def disable_categories (self , categories , enable_others = False ):
793834 """
794835 Disables the search over categories listed in the first argument.
795836 :param list categories: will disable the search over the provided categories
796837 :param bool enable_others: if True, will also enable the search over categories not listed in the first argument
838+ :return current CategoricalHyperparameterSettings
797839 """
798840 accepted_categories = self .get_all_categories ()
799841 for category in categories :
@@ -805,6 +847,7 @@ def disable_categories(self, categories, enable_others=False):
805847 self ._set_values ({category : {"enabled" : True }
806848 for category in accepted_categories
807849 if category not in categories })
850+ return self
808851
809852 def get_all_categories (self ):
810853 """
@@ -828,9 +871,14 @@ def __repr__(self):
828871 _pretty_repr = __repr__
829872
830873 def set_value (self , value ):
874+ """
875+ :param bool | int | float value:
876+ :return: current SingleValueHyperparameterSettings
877+ """
831878 if self .accepted_types is not None :
832879 assert any (isinstance (value , accepted_type ) for accepted_type in self .accepted_types ), "Invalid type for hyperparameter {}. Type must be one of: {}" .format (self .name , self .accepted_types )
833880 self ._algo_settings [self .name ] = value
881+ return self
834882
835883
836884class SingleCategoryHyperparameterSettings (HyperparameterSettings ):
@@ -852,9 +900,14 @@ def __repr__(self):
852900 _pretty_repr = __repr__
853901
854902 def set_value (self , value ):
903+ """
904+ :param str value:
905+ :return: current SingleValueHyperparameterSettings
906+ """
855907 if self .accepted_values is not None :
856908 assert value in self .accepted_values , "Invalid value for hyperparameter {}. Must be in {}" .format (self .name , json .dumps (self .accepted_values ))
857909 self ._algo_settings [self .name ] = value
910+ return self
858911
859912
860913class PredictionAlgorithmSettings (dict ):
@@ -902,10 +955,16 @@ def _get_all_hyperparameter_names(self):
902955
903956 @property
904957 def enabled (self ):
958+ """
959+ :rtype: bool
960+ """
905961 return self ["enabled" ]
906962
907963 @enabled .setter
908964 def enabled (self , enabled ):
965+ """
966+ :param bool enabled:
967+ """
909968 assert isinstance (enabled , bool ), "enabled property must be a boolean"
910969 self ["enabled" ] = enabled
911970
0 commit comments