Ejemplo n.º 1
0
    def _fit(self):
        seed = self.random_state.randint(1000000)
        for outer_fold in range(self.outer_cv_folds):
            # First perform the fit for the outer cross validation
            outer_train_indices, outer_test_indices = \
                get_CV_fold(self.X_train, self.Y_train, fold=outer_fold,
                            folds=self.outer_cv_folds, shuffle=True,
                            random_state=seed)
            self.outer_indices[outer_fold] = ((outer_train_indices,
                                               outer_test_indices))

            model = self.model_class(self.configuration, self.random_state)
            self.outer_models[outer_fold] = model
            self._fit_and_suppress_warnings(self.outer_models[outer_fold],
                                            self.X_train[outer_train_indices],
                                            self.Y_train[outer_train_indices])

            # Then perform the fit for the inner cross validation
            for inner_fold in range(self.inner_cv_folds):
                X_train = self.X_train[outer_train_indices]
                Y_train = self.Y_train[outer_train_indices]
                inner_train_indices, inner_test_indices = \
                    get_CV_fold(X_train, Y_train,
                                fold=inner_fold, folds=self.inner_cv_folds,
                                shuffle=True, random_state=seed)
                inner_train_indices = outer_train_indices[inner_train_indices]
                inner_test_indices = outer_train_indices[inner_test_indices]
                X_train = self.X_train[inner_train_indices]
                Y_train = self.Y_train[inner_train_indices]

                self.inner_indices[outer_fold][inner_fold] = \
                    ((inner_train_indices, inner_test_indices))
                model = self.model_class(self.configuration, self.random_state)
                model = self._fit_and_suppress_warnings(model, X_train, Y_train)
                self.inner_models[outer_fold][inner_fold] = model
Ejemplo n.º 2
0
    def _fit(self):
        seed = self.random_state.randint(1000000)
        for outer_fold in range(self.outer_cv_folds):
            # First perform the fit for the outer cross validation
            outer_train_indices, outer_test_indices = \
                get_CV_fold(self.X_train, self.Y_train, fold=outer_fold,
                            folds=self.outer_cv_folds, shuffle=True,
                            random_state=seed)
            self.outer_indices[outer_fold] = ((outer_train_indices,
                                               outer_test_indices))

            model = self.model_class(self.configuration, self.random_state)
            self.outer_models[outer_fold] = model
            self.outer_models[outer_fold].fit(
                self.X_train[outer_train_indices],
                self.Y_train[outer_train_indices])

            # Then perform the fit for the inner cross validation
            for inner_fold in range(self.inner_cv_folds):
                X_train = self.X_train[outer_train_indices]
                Y_train = self.Y_train[outer_train_indices]
                inner_train_indices, inner_test_indices = \
                    get_CV_fold(X_train, Y_train,
                                fold=inner_fold, folds=self.inner_cv_folds,
                                shuffle=True, random_state=seed)
                inner_train_indices = outer_train_indices[inner_train_indices]
                inner_test_indices = outer_train_indices[inner_test_indices]
                X_train = self.X_train[inner_train_indices]
                Y_train = self.Y_train[inner_train_indices]

                self.inner_indices[outer_fold][inner_fold] = \
                    ((inner_train_indices, inner_test_indices))
                model = self.model_class(self.configuration, self.random_state)
                model = model.fit(X_train, Y_train)
                self.inner_models[outer_fold][inner_fold] = model
Ejemplo n.º 3
0
 def get_train_test_split(self, fold):
     return get_CV_fold(self.X_train,
                        self.Y_train,
                        fold=fold,
                        folds=self.cv_folds,
                        shuffle=True,
                        random_state=self.seed)
Ejemplo n.º 4
0
    def _partial_fit_and_predict(self, fold):
        model = self.model_class(self.configuration, self.seed)

        train_indices, test_indices = \
            get_CV_fold(self.X_train, self.Y_train, fold=fold,
                        folds=self.cv_folds, shuffle=True,
                        random_state=self.seed)

        self.indices[fold] = ((train_indices, test_indices))
        model.fit(self.X_train[train_indices],
                  self.Y_train[train_indices])

        train_indices, test_indices = self.indices[fold]
        self.Y_targets[fold] = self.Y_train[test_indices]

        opt_pred = self.predict_function(self.X_train[test_indices],
                                         model, self.task_type,
                                         self.Y_train[train_indices])

        X_valid = self.X_valid.copy()
        valid_pred = self.predict_function(X_valid, model,
                                           self.task_type,
                                           self.Y_train[train_indices])

        X_test = self.X_test.copy()
        test_pred = self.predict_function(X_test, model,
                                          self.task_type,
                                          self.Y_train[train_indices])

        return opt_pred, valid_pred, test_pred
Ejemplo n.º 5
0
    def _partial_fit_and_predict(self, fold):
        model = self.model_class(self.configuration, self.seed)

        train_indices, test_indices = \
            get_CV_fold(self.X_train, self.Y_train, fold=fold,
                        folds=self.cv_folds, shuffle=True,
                        random_state=self.seed)

        self.indices[fold] = ((train_indices, test_indices))
        model.fit(self.X_train[train_indices], self.Y_train[train_indices])

        train_indices, test_indices = self.indices[fold]
        self.Y_targets[fold] = self.Y_train[test_indices]

        opt_pred = self.predict_function(self.X_train[test_indices], model,
                                         self.task_type,
                                         self.Y_train[train_indices])

        X_valid = self.X_valid.copy()
        valid_pred = self.predict_function(X_valid, model, self.task_type,
                                           self.Y_train[train_indices])

        X_test = self.X_test.copy()
        test_pred = self.predict_function(X_test, model, self.task_type,
                                          self.Y_train[train_indices])

        return opt_pred, valid_pred, test_pred
Ejemplo n.º 6
0
    def partial_fit(self, fold):
        model = self.model_class(self.configuration, self.seed)

        train_indices, test_indices = \
            get_CV_fold(self.X_train, self.Y_train, fold=fold,
                        folds=self.cv_folds, shuffle=True,
                        random_state=self.seed)

        self.indices[fold] = ((train_indices, test_indices))

        self.models[fold] = model
        self.models[fold].fit(self.X_train[train_indices],
                              self.Y_train[train_indices])
Ejemplo n.º 7
0
    def partial_fit(self, fold):
        model = self.model_class(self.configuration, self.seed)

        train_indices, test_indices = \
            get_CV_fold(self.X_train, self.Y_train, fold=fold,
                        folds=self.cv_folds, shuffle=True,
                        random_state=self.seed)

        self.indices[fold] = ((train_indices, test_indices))

        self.models[fold] = model
        self.models[fold].fit(self.X_train[train_indices],
                              self.Y_train[train_indices])
Ejemplo n.º 8
0
 def get_train_test_split(self, fold):
     return get_CV_fold(self.X_train, self.Y_train, fold=fold,
                         folds=self.cv_folds, shuffle=True,
                         random_state=self.seed)