def fine_tune(self, data: InputData, iterations: int, max_lead_time: timedelta = timedelta(minutes=5)): """ This method is used for hyperparameter searching :param data: data used for hyperparameter searching :param iterations: max number of iterations evaluable for hyperparameter optimization :param max_lead_time: max time(seconds) for tuning evaluation """ self._init(data.task) prepared_data = data.prepare_for_modelling(is_for_fit=True) try: fitted_model, tuned_params = self._eval_strategy.fit_tuned( train_data=prepared_data, iterations=iterations, max_lead_time=max_lead_time) if fitted_model is None: raise ValueError(f'{self.model_type} can not be fitted') self.params = tuned_params if not self.params: self.params = DEFAULT_PARAMS_STUB except Exception as ex: print(f'Tuning failed because of {ex}') fitted_model = self._eval_strategy.fit(train_data=data) self.params = DEFAULT_PARAMS_STUB predict_train = self.predict(fitted_model, data) return fitted_model, predict_train
def fit(self, data: InputData): """ This method is used for defining and running of the evaluation strategy to train the model with the data provided :param data: data used for model training :return: tuple of trained model and prediction on train data """ self._init(data.task) prepared_data = data.prepare_for_modelling(is_for_fit=True) fitted_model = self._eval_strategy.fit(train_data=prepared_data) predict_train = self.predict(fitted_model, data) return fitted_model, predict_train
def predict(self, fitted_model, data: InputData, output_mode: str = 'default'): """ This method is used for defining and running of the evaluation strategy to predict with the data provided :param fitted_model: trained model object :param data: data used for prediction """ self._init(data.task, output_mode=output_mode) prepared_data = data.prepare_for_modelling(is_for_fit=False) prediction = self._eval_strategy.predict(trained_model=fitted_model, predict_data=prepared_data) prediction = _post_process_prediction_using_original_input( prediction=prediction, input_data=data) return prediction