def setUp(self): super(InnerFoldTests, self).setUp() self.pipe = PhotonPipeline([ ("StandardScaler", PipelineElement("StandardScaler")), ("PCA", PipelineElement("PCA")), ("RidgeClassifier", PipelineElement("RidgeClassifier")), ]) self.config = { "PCA__n_components": 5, "RidgeClassifier__solver": "svd", "RidgeClassifier__random_state": 42, } self.outer_fold_id = "TestID" self.inner_cv = KFold(n_splits=4) self.X, self.y = load_breast_cancer(True) self.cross_validation = Hyperpipe.CrossValidation( self.inner_cv, None, True, 0.2, True, False) self.cross_validation.inner_folds = { self.outer_fold_id: { i: FoldInfo(i, i + 1, train, test) for i, (train, test) in enumerate(self.inner_cv.split(self.X, self.y)) } } self.optimization = Hyperpipe.Optimization( "grid_search", {}, ["accuracy", "recall", "specificity"], "accuracy", None)
def setUp(self): super(InnerFoldTests, self).setUp() self.pipe = PhotonPipeline([ ('StandardScaler', PipelineElement('StandardScaler')), ('PCA', PipelineElement('PCA')), ('RidgeClassifier', PipelineElement('RidgeClassifier')) ]) self.config = { 'PCA__n_components': 5, 'RidgeClassifier__solver': 'svd', 'RidgeClassifier__random_state': 42 } self.outer_fold_id = 'TestID' self.inner_cv = KFold(n_splits=4) self.X, self.y = load_breast_cancer(return_X_y=True) self.cross_validation = Hyperpipe.CrossValidation( self.inner_cv, None, True, 0.2, True, False, False, None) self.cross_validation.inner_folds = { self.outer_fold_id: { i: FoldInfo(i, i + 1, train, test) for i, (train, test) in enumerate(self.inner_cv.split(self.X, self.y)) } } self.optimization = Hyperpipe.Optimization( 'grid_search', {}, ['accuracy', 'recall', 'specificity'], 'accuracy', None)
def setUp(self): super(OuterFoldTests, self).setUp() self.fold_nr_inner_cv = 5 self.inner_cv = ShuffleSplit(n_splits=self.fold_nr_inner_cv, random_state=42) self.outer_cv = ShuffleSplit(n_splits=1, test_size=0.2, random_state=42) self.cv_info = Hyperpipe.CrossValidation( inner_cv=self.inner_cv, outer_cv=self.outer_cv, eval_final_performance=True, test_size=0.2, calculate_metrics_per_fold=True, calculate_metrics_across_folds=False, learning_curves=False, learning_curves_cut=None) self.X, self.y = load_boston(return_X_y=True) self.outer_fold_id = "TestFoldOuter1" self.cv_info.outer_folds = { self.outer_fold_id: FoldInfo(0, 1, train, test) for train, test in self.outer_cv.split(self.X, self.y) } self.config_num = 2 self.optimization_info = Hyperpipe.Optimization( metrics=['mean_absolute_error', 'mean_squared_error'], best_config_metric='mean_absolute_error', optimizer_input='grid_search', optimizer_params={}, performance_constraints=None) self.elements = [ PipelineElement('StandardScaler'), PipelineElement('PCA', {'n_components': [4, 7]}), PipelineElement('DecisionTreeRegressor', random_state=42) ] self.pipe = PhotonPipeline([(p.name, p) for p in self.elements])
def test_CrossValidation_outer_folds(): test_value = None assert (Hyperpipe.CrossValidation( 3, 1, True, 0.3, 4, test_value).calculate_metrics_across_folds == test_value)
def test_CrossValidation_calculate_metrics_per_fold(): test_value = 3 assert (Hyperpipe.CrossValidation( test_value, 1, True, 0.3, test_value, True).calculate_metrics_per_fold == test_value)
def test_CrossValidation_test_size(): test_value = 0.37 assert (Hyperpipe.CrossValidation(test_value, 1, True, test_value, 4, True).test_size == test_value)
def test_CrossValidation_eval_final_performance(): test_value = True assert (Hyperpipe.CrossValidation( test_value, 1, test_value, 0.3, 4, True).eval_final_performance == test_value)
def test_CrossValidation_outer_cv(): test_value = 3 assert (Hyperpipe.CrossValidation(test_value, test_value, True, 0.3, 4, True).outer_cv == test_value)
def test_CrossValidation_inner_cv(): test_value = 3 assert (Hyperpipe.CrossValidation(test_value, 1, True, 0.3, 4, True).inner_cv == test_value)
def test_CrossValidation_inner_folds(): test_value = dict() assert (Hyperpipe.CrossValidation(3, 1, True, 0.3, 4, test_value).inner_folds == test_value)