def __init__( self, pipeline: Union[BaseStep, NamedTupleList], validation_size: int = None, batch_size: int = None, batch_metrics: Dict[str, Callable] = None, shuffle_in_each_epoch_at_train: bool = True, seed: int = None, n_epochs: int = 1, epochs_metrics: Dict[str, Callable] = None, scoring_function: Callable = None, cache_folder: str = None, print_epoch_metrics=False, print_batch_metrics=False ): """ :param pipeline: pipeline to wrap with an epoch repeater, a validation split wrapper, and a mini batch sequential pipeline :param validation_size: ratio for validation size between 0 and 1 :param batch_size: batch size for the mini batch sequential pipeline :param batch_metrics: metrics to calculate for each processed mini batch :param shuffle_in_each_epoch_at_train: :param seed: random seed for the data shuffling that can be done at each epoch when the param shuffle_in_each_epoch_at_train is True :param n_epochs: number of epochs :param epochs_metrics: metrics to calculate for each epoch :param scoring_function: scoring function with two arguments (y_true, y_pred) :param cache_folder: cache folder to be used inside the pipeline :param print_epoch_metrics: whether or not to print epoch metrics :param print_batch_metrics: whether or not to print batch metrics """ if epochs_metrics is None: epochs_metrics = {} if batch_metrics is None: batch_metrics = {} self.final_scoring_metric = scoring_function self.epochs_metrics = epochs_metrics self.n_epochs = n_epochs self.shuffle_in_each_epoch_at_train = shuffle_in_each_epoch_at_train self.batch_size = batch_size self.batch_metrics = batch_metrics self.validation_size = validation_size self.print_batch_metrics = print_batch_metrics self.print_epoch_metrics = print_epoch_metrics wrapped = pipeline wrapped = self._create_mini_batch_pipeline(wrapped) if shuffle_in_each_epoch_at_train: wrapped = TrainShuffled(wrapped=wrapped, seed=seed) wrapped = self._create_validation_split(wrapped) wrapped = self._create_epoch_repeater(wrapped) BaseStep.__init__(self) MetaStepMixin.__init__(self, wrapped) EvaluableStepMixin.__init__(self) ForceHandleMixin.__init__(self, cache_folder)
def __init__(self, wrapped=None, scoring_function=r2_score, joiner=NumpyConcatenateOuterBatch(), cache_folder_when_no_handle=None, split_data_container_during_fit=True, predict_after_fit=True): BaseValidation.__init__(self, wrapped=wrapped, scoring_function=scoring_function) ForceHandleOnlyMixin.__init__(self, cache_folder=cache_folder_when_no_handle) EvaluableStepMixin.__init__(self) self.split_data_container_during_fit = split_data_container_during_fit self.predict_after_fit = predict_after_fit self.joiner = joiner
def __init__(self, scoring_function=r2_score, joiner=NumpyConcatenateOuterBatch(), cache_folder_when_no_handle=None): BaseValidation.__init__(self, scoring_function) ForceHandleOnlyMixin.__init__(self, cache_folder=cache_folder_when_no_handle) EvaluableStepMixin.__init__(self) self.joiner = joiner
def __init__(self, wrapped: BaseStep = None, test_size: float = 0.2, scoring_function=r2_score, run_validation_split_in_test_mode=True, metrics_already_enabled=True, cache_folder_when_no_handle=None): """ :param wrapped: wrapped step :param test_size: ratio for test size between 0 and 1 :param scoring_function: scoring function with two arguments (y_true, y_pred) """ BaseStep.__init__(self) MetaStepMixin.__init__(self, wrapped) ForceHandleOnlyMixin.__init__(self, cache_folder_when_no_handle) EvaluableStepMixin.__init__(self) self.run_validation_split_in_test_mode = run_validation_split_in_test_mode self.test_size = test_size self.scoring_function = scoring_function self.metrics_enabled = metrics_already_enabled