def test_with_randomizedsearchcv(self): from sklearn.model_selection import RandomizedSearchCV from sklearn.datasets import load_iris from sklearn.metrics import accuracy_score, make_scorer from scipy.stats.distributions import uniform import numpy as np lr = LogisticRegression() parameters = {'solver': ('liblinear', 'lbfgs'), 'penalty': ['l2']} ranges, cat_idx = lr.get_param_ranges() min_C, max_C, default_C = ranges['C'] # specify parameters and distributions to sample from #the loguniform distribution needs to be taken care of properly param_dist = { "solver": ranges['solver'], "C": uniform(min_C, np.log(max_C)) } # run randomized search n_iter_search = 5 with warnings.catch_warnings(): warnings.simplefilter("ignore") random_search = RandomizedSearchCV( lr, param_distributions=param_dist, n_iter=n_iter_search, cv=5, scoring=make_scorer(accuracy_score)) iris = load_iris() random_search.fit(iris.data, iris.target)
def test_with_randomizedsearchcv(self): import numpy as np from scipy.stats.distributions import uniform from sklearn.metrics import accuracy_score, make_scorer from sklearn.model_selection import RandomizedSearchCV lr = LogisticRegression() ranges, cat_idx = lr.get_param_ranges() # specify parameters and distributions to sample from # the loguniform distribution needs to be taken care of properly param_dist = { "solver": ranges["solver"], "C": uniform(0.03125, np.log(32768)) } # run randomized search n_iter_search = 5 with warnings.catch_warnings(): warnings.simplefilter("ignore") random_search = RandomizedSearchCV( lr, param_distributions=param_dist, n_iter=n_iter_search, cv=5, scoring=make_scorer(accuracy_score), ) iris = load_iris() random_search.fit(iris.data, iris.target)
def test_logisticregression(self): from lale.lib.sklearn import LogisticRegression ranges, dists = LogisticRegression.get_param_ranges() expected_ranges = { "solver": ["newton-cg", "liblinear", "sag", "saga", "lbfgs"], "dual": (False, True, False), "tol": (1e-08, 0.01, 0.0001), "fit_intercept": (False, True, True), "intercept_scaling": (0.0, 1.0, 1.0), "max_iter": (10, 1000, 100), "multi_class": ["ovr", "multinomial", "auto"], } expected_dists = {"solver": (0, 4, 4), "multi_class": (0, 2, 2)} self.maxDiff = None self.assertEqual(ranges, expected_ranges) self.assertEqual(dists, expected_dists)