def test__get_seeded_model(self): # randomized models that are initialized without seeds, can be seeded randomized_clfs = [ BaggingClassifier(), RandomizedSearchCV(RandomForestClassifier(), { "max_depth": [3, None], "max_features": [1, 2, 3, 4], "bootstrap": [True, False], "criterion": ["gini", "entropy"], "random_state": [-1, 0, 1, 2] }, cv=StratifiedKFold(n_splits=2, shuffle=True)), DummyClassifier() ] for idx, clf in enumerate(randomized_clfs): const_probe = 42 all_params = clf.get_params() params = [ key for key in all_params if key.endswith('random_state') ] self.assertGreater(len(params), 0) # before param value is None for param in params: self.assertIsNone(all_params[param]) # now seed the params clf_seeded = _get_seeded_model(clf, const_probe) new_params = clf_seeded.get_params() randstate_params = [ key for key in new_params if key.endswith('random_state') ] # afterwards, param value is set for param in randstate_params: self.assertIsInstance(new_params[param], int) self.assertIsNotNone(new_params[param]) if idx == 1: self.assertEqual(clf.cv.random_state, 56422)
def test__get_seeded_model(self): # randomized models that are initialized without seeds, can be seeded randomized_clfs = [ BaggingClassifier(), RandomizedSearchCV(RandomForestClassifier(), {"max_depth": [3, None], "max_features": [1, 2, 3, 4], "bootstrap": [True, False], "criterion": ["gini", "entropy"], "random_state" : [-1, 0, 1, 2]}, cv=StratifiedKFold(n_splits=2, shuffle=True)), DummyClassifier() ] for idx, clf in enumerate(randomized_clfs): const_probe = 42 all_params = clf.get_params() params = [key for key in all_params if key.endswith('random_state')] self.assertGreater(len(params), 0) # before param value is None for param in params: self.assertIsNone(all_params[param]) # now seed the params clf_seeded = _get_seeded_model(clf, const_probe) new_params = clf_seeded.get_params() randstate_params = [key for key in new_params if key.endswith('random_state')] # afterwards, param value is set for param in randstate_params: self.assertIsInstance(new_params[param], int) self.assertIsNotNone(new_params[param]) if idx == 1: self.assertEqual(clf.cv.random_state, 56422)