def test_pipeline_should_update_hyperparams_space(): p = Pipeline([ SomeStep().set_name('step_1'), SomeStep().set_name('step_2') ]) p.set_hyperparams_space({ 'hp': RandInt(1, 2), 'step_1__hp': RandInt(2, 3), 'step_2__hp': RandInt(3, 4) }) p.update_hyperparams_space({ 'hp': RandInt(4, 6), 'step_2__hp': RandInt(6, 8) }) assert isinstance(p.hyperparams_space, HyperparameterSpace) assert p.hyperparams_space['hp'].min_included == 4 assert p.hyperparams_space['hp'].max_included == 6 assert p[0].hyperparams_space['hp'].min_included == 2 assert p[0].hyperparams_space['hp'].max_included == 3 assert p[1].hyperparams_space['hp'].min_included == 6 assert p[1].hyperparams_space['hp'].max_included == 8
def main(): p = Pipeline([ ('step1', MultiplyByN()), ('step2', MultiplyByN()), Pipeline([ Identity(), Identity(), PCA(n_components=4) ]) ]) p.set_hyperparams_space({ 'step1__multiply_by': RandInt(42, 50), 'step2__multiply_by': RandInt(-10, 0), 'Pipeline__PCA__n_components': RandInt(2, 3) }) samples = p.get_hyperparams_space().rvs() p.set_hyperparams(samples) samples = p.get_hyperparams().to_flat_as_dict_primitive() assert 42 <= samples['step1__multiply_by'] <= 50 assert -10 <= samples['step2__multiply_by'] <= 0 assert samples['Pipeline__PCA__n_components'] in [2, 3] assert p['Pipeline']['PCA'].get_wrapped_sklearn_predictor().n_components in [2, 3]
def test_pipeline_should_get_hyperparams_space(): p = Pipeline([ SomeStep().set_name('step_1'), SomeStep().set_name('step_2') ]) p.set_hyperparams_space({ 'hp': RandInt(1, 2), 'step_1__hp': RandInt(2, 3), 'step_2__hp': RandInt(3, 4) }) hyperparams_space = p.get_hyperparams_space() assert isinstance(hyperparams_space, HyperparameterSpace) assert hyperparams_space['hp'].min_included == 1 assert hyperparams_space['hp'].max_included == 2 assert hyperparams_space['step_1__hp'].min_included == 2 assert hyperparams_space['step_1__hp'].max_included == 3 assert hyperparams_space['step_2__hp'].min_included == 3 assert hyperparams_space['step_2__hp'].max_included == 4