本文整理汇总了Python中sklearn.model_selection.RandomizedSearchCV方法的典型用法代码示例。如果您正苦于以下问题:Python model_selection.RandomizedSearchCV方法的具体用法?Python model_selection.RandomizedSearchCV怎么用?Python model_selection.RandomizedSearchCV使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类sklearn.model_selection
的用法示例。
在下文中一共展示了model_selection.RandomizedSearchCV方法的15个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Python代码示例。
示例1: getTunedModel
# 需要导入模块: from sklearn import model_selection [as 别名]
# 或者: from sklearn.model_selection import RandomizedSearchCV [as 别名]
def getTunedModel( self, baseModel ):
n_estimators = [100, 200, 300, 400, 500]
max_features = ['auto', 'sqrt']
max_depth = [5, 10, 20, 30, 40, 50]
min_samples_split = [2, 5, 10]
min_samples_leaf = [1, 2, 4]
bootstrap = [True, False]
random_grid = {'n_estimators': n_estimators,
'max_features': max_features,
'max_depth': max_depth,
'min_samples_split': min_samples_split,
'min_samples_leaf': min_samples_leaf,
'bootstrap': bootstrap}
#print(random_grid)
model_tuned = RandomizedSearchCV(estimator = baseModel, param_distributions = random_grid, n_iter = 2, cv = 2, verbose=0, random_state=100 , n_jobs = -1)
return model_tuned
######################################################################################################################################
示例2: fit
# 需要导入模块: from sklearn import model_selection [as 别名]
# 或者: from sklearn.model_selection import RandomizedSearchCV [as 别名]
def fit(self, X, y=None, groups=None):
"""Run fit on the estimator with randomly drawn parameters.
Parameters
----------
X : array-like, shape=(n_samples, n_features)
Training vector, where n_samples is the number of samples and
n_features is the number of features.
y : array-like, shape=(n_samples,) or (n_samples, n_output), optional (default=None)
Target relative to X for classification or regression;
None for unsupervised learning.
groups : array-like, shape=(n_samples,), optional (default=None)
Group labels for the samples used while splitting the dataset into
train/test set.
"""
return super(RandomizedSearchCV, self).fit(X, _as_numpy(y), groups)
示例3: _prepare_classifier
# 需要导入模块: from sklearn import model_selection [as 别名]
# 或者: from sklearn.model_selection import RandomizedSearchCV [as 别名]
def _prepare_classifier(self, params, n_jobs=1):
X_train, y_train = params
tuned_parameters = [{
'kernel': ['rbf'],
'gamma': [1e-4,1e-3,1e-2,1e-1,1e+0,1e+1,1e+2,1e+3,1e+4],
'C': [1e+0,1e+1,1e+2,1e+3,1e+4,1e+5,1e+6,1e+7,1e+8,1e+9]
}]
clf=RandomizedSearchCV(svm.SVC(random_state=self.random_state),
tuned_parameters[0],
n_iter=self.n_randomized_search_iter,
n_jobs=n_jobs, random_state=self.random_state)
clf.fit(X_train, y_train)
params=clf.best_params_
clf=svm.SVC(kernel=params['kernel'], C=params['C'],
gamma=params['gamma'], probability=True,
random_state=self.random_state)
clf.fit(X_train, y_train)
return clf
示例4: test_empty_cv_iterator_error
# 需要导入模块: from sklearn import model_selection [as 别名]
# 或者: from sklearn.model_selection import RandomizedSearchCV [as 别名]
def test_empty_cv_iterator_error():
# Use global X, y
# create cv
cv = KFold(n_splits=3).split(X)
# pop all of it, this should cause the expected ValueError
[u for u in cv]
# cv is empty now
train_size = 100
ridge = RandomizedSearchCV(Ridge(), {'alpha': [1e-3, 1e-2, 1e-1]},
cv=cv, n_jobs=-1)
# assert that this raises an error
with pytest.raises(ValueError,
match='No fits were performed. '
'Was the CV iterator empty\\? '
'Were there no candidates\\?'):
ridge.fit(X[:train_size], y[:train_size])
示例5: test_random_search_bad_cv
# 需要导入模块: from sklearn import model_selection [as 别名]
# 或者: from sklearn.model_selection import RandomizedSearchCV [as 别名]
def test_random_search_bad_cv():
# Use global X, y
class BrokenKFold(KFold):
def get_n_splits(self, *args, **kw):
return 1
# create bad cv
cv = BrokenKFold(n_splits=3)
train_size = 100
ridge = RandomizedSearchCV(Ridge(), {'alpha': [1e-3, 1e-2, 1e-1]},
cv=cv, n_jobs=-1)
# assert that this raises an error
with pytest.raises(ValueError,
match='cv.split and cv.get_n_splits returned '
'inconsistent results. Expected \\d+ '
'splits, got \\d+'):
ridge.fit(X[:train_size], y[:train_size])
示例6: randomized_search
# 需要导入模块: from sklearn import model_selection [as 别名]
# 或者: from sklearn.model_selection import RandomizedSearchCV [as 别名]
def randomized_search(self, **kwargs):
"""Randomized search using sklearn.model_selection.RandomizedSearchCV.
Any parameters typically associated with RandomizedSearchCV (see
sklearn documentation) can be passed as keyword arguments to this
function.
The final dictionary used for the randomized search is saved to
`self.randomized_search_params`. This is updated with any parameters
that are passed.
Examples
--------
# Passing kwargs.
self.randomized_search(param_distributions={'max_depth':[2,3,5,10]}, refit=True)
"""
self.randomized_search_params.update(kwargs)
self.rand_search_ = RandomizedSearchCV(**self.randomized_search_params)
self.rand_search_.fit(self.x_train, self.transformed_y_train)
return self.rand_search_
示例7: fit
# 需要导入模块: from sklearn import model_selection [as 别名]
# 或者: from sklearn.model_selection import RandomizedSearchCV [as 别名]
def fit(self, X, y):
"""Deploys `fit` jobs to each worker in the cluster.
"""
timestamp = str(int(time.time()))
self.task_name = self.task_name or '{}.{}.{}'.format(self.cluster_id, self.image_name, timestamp)
self._done = False
self._cancelled = False
X_uri, y_uri, _ = self._upload_data(X, y)
if type(self.search) == GridSearchCV:
handler = self._handle_grid_search
elif type(self.search) == RandomizedSearchCV:
handler = self._handle_randomized_search
elif type(self.search) == BayesSearchCV:
handler = self._handle_bayes_search
print('Fitting {}'.format(type(self.search)))
handler(X_uri, y_uri)
self.persist()
示例8: random_forest
# 需要导入模块: from sklearn import model_selection [as 别名]
# 或者: from sklearn.model_selection import RandomizedSearchCV [as 别名]
def random_forest(verbose: int = 0, n_jobs: int = 1):
"""Setup a random forest pipeline with cross-validation."""
rf = ensemble.RandomForestClassifier()
n_estimators = [100]
max_features = ['auto', 'sqrt']
max_depth = [5, 10, 20]
max_depth.append(None)
min_samples_split = [2, 5, 10]
min_samples_leaf = [1, 2, 4]
random_grid = {'n_estimators': n_estimators,
'max_features': max_features,
'max_depth': max_depth,
'min_samples_split': min_samples_split,
'min_samples_leaf': min_samples_leaf}
pipe = model_selection.RandomizedSearchCV(
rf, param_distributions=random_grid, n_iter=7, cv=3, n_jobs=n_jobs,
iid=False, verbose=verbose)
return pipe
示例9: test_with_randomizedsearchcv
# 需要导入模块: from sklearn import model_selection [as 别名]
# 或者: from sklearn.model_selection import RandomizedSearchCV [as 别名]
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)
示例10: _select_classifier_from_sk_search
# 需要导入模块: from sklearn import model_selection [as 别名]
# 或者: from sklearn.model_selection import RandomizedSearchCV [as 别名]
def _select_classifier_from_sk_search(estimator, X, A):
"""Return best model from a scikit-learn Search-estimator model.
Args:
estimator (GridSearchCV | RandomizedSearchCV): An initialized sklearn SearchCV classifier.
X (np.ndarray): Covariate matrix size (num_samples, num_features)
A (np.ndarray): binary labels indicating the source and target populations (num_samples,)
Returns:
classifier: model.best_estimator_ - best-performing classifier.
See scikit-learn's GridSearchCV and RandomizedSearchCV documentation for details on their return
values.
"""
estimator.fit(X, A)
best_estimator = clone(estimator.best_estimator_)
return best_estimator
示例11: learn
# 需要导入模块: from sklearn import model_selection [as 别名]
# 或者: from sklearn.model_selection import RandomizedSearchCV [as 别名]
def learn(self):
X, y = self.__get_data()
feature_names =list(X.columns.values)
if self._undersampling:
X, y = self.__undersample(feature_names, X, y)
if self._feature_selection:
X = self.__select_features(X, y, feature_names)
if self._scaling:
logging.info("Scaling...")
X = preprocessing.scale(X)
rgs = RandomizedSearchCV(estimator=self._classifier[1], param_distributions=self._classifier[2],
error_score=0, cv=QuincyConfig.CV, n_iter=QuincyConfig.ITERS, refit=True,
n_jobs=-1, scoring=QuincyConfig.METRIC, iid=False)
rgs.fit(X, y)
logging.info("Best SCORE: %s" % str(rgs.best_score_))
logging.info("Best Params: %s" % str(rgs.best_params_))
self._optimized_model = rgs
示例12: test_search_cv_timing
# 需要导入模块: from sklearn import model_selection [as 别名]
# 或者: from sklearn.model_selection import RandomizedSearchCV [as 别名]
def test_search_cv_timing():
svc = LinearSVC(random_state=0)
X = [[1, ], [2, ], [3, ], [4, ]]
y = [0, 1, 1, 0]
gs = GridSearchCV(svc, {'C': [0, 1]}, cv=2, error_score=0)
rs = RandomizedSearchCV(svc, {'C': [0, 1]}, cv=2, error_score=0, n_iter=2)
for search in (gs, rs):
search.fit(X, y)
for key in ['mean_fit_time', 'std_fit_time']:
# NOTE The precision of time.time in windows is not high
# enough for the fit/score times to be non-zero for trivial X and y
assert_true(np.all(search.cv_results_[key] >= 0))
assert_true(np.all(search.cv_results_[key] < 1))
for key in ['mean_score_time', 'std_score_time']:
assert_true(search.cv_results_[key][1] >= 0)
assert_true(search.cv_results_[key][0] == 0.0)
assert_true(np.all(search.cv_results_[key] < 1))
示例13: get_algorithm
# 需要导入模块: from sklearn import model_selection [as 别名]
# 或者: from sklearn.model_selection import RandomizedSearchCV [as 别名]
def get_algorithm(estimator,
scoring_metric,
hyperparameter_grid,
randomized_search,
number_iteration_samples=10,
**non_randomized_estimator_kwargs):
"""
Given an estimator and various params, initialize an algorithm with optional randomized search.
Args:
estimator (sklearn.base.BaseEstimator): a scikit-learn estimator (for example: KNeighborsClassifier)
scoring_metric (str): The scoring metric to optimized for if using random search. See
http://scikit-learn.org/stable/modules/model_evaluation.html
hyperparameter_grid (dict): An object containing key value pairs of the specific hyperparameter space to search
through.
randomized_search (bool): Whether the method should return a randomized search estimator (as opposed to a
simple algorithm).
number_iteration_samples (int): If performing randomized search, this is the number of samples that are run in
the hyperparameter space. Higher numbers will be slower, but end up with better results, since it is more
likely that the true optimal hyperparameter is found.
**non_randomized_estimator_kwargs: Keyword arguments that you can pass directly to the algorithm. Only used when
radomized_search is False
Returns:
sklearn.base.BaseEstimator: a scikit learn algorithm ready to `.fit()`
"""
if randomized_search:
algorithm = RandomizedSearchCV(estimator=estimator(),
scoring=scoring_metric,
param_distributions=hyperparameter_grid,
n_iter=number_iteration_samples,
verbose=0,
n_jobs=1)
else:
algorithm = estimator(**non_randomized_estimator_kwargs)
return algorithm
示例14: test_randomgridsearch_slm
# 需要导入模块: from sklearn import model_selection [as 别名]
# 或者: from sklearn.model_selection import RandomizedSearchCV [as 别名]
def test_randomgridsearch_slm(make_gaus_data):
X, y, Xs, ys = make_gaus_data
slm = StandardLinearModel(LinearBasis(onescol=True))
param_dict = {
'var': [Parameter(1.0 / v, Positive()) for v in range(1, 6)]
}
estimator = RandomizedSearchCV(slm, param_dict, n_jobs=-1, n_iter=2)
estimator.fit(X, y)
Ey = estimator.predict(Xs)
assert len(ys) == len(Ey) # we just want to make sure this all runs
示例15: test_randomgridsearch_glm
# 需要导入模块: from sklearn import model_selection [as 别名]
# 或者: from sklearn.model_selection import RandomizedSearchCV [as 别名]
def test_randomgridsearch_glm(make_gaus_data):
X, y, Xs, ys = make_gaus_data
glm = GeneralizedLinearModel(Gaussian(), LinearBasis(onescol=True),
random_state=1, maxiter=100)
param_dict = {'batch_size': range(1, 11)}
estimator = RandomizedSearchCV(glm, param_dict, verbose=1, n_jobs=-1,
n_iter=2)
estimator.fit(X, y)
Ey = estimator.predict(Xs)
assert len(ys) == len(Ey) # we just want to make sure this all runs