>>> from sklearn.model_selection import RandomizedSearchCV
>>> pipe_svc = make_pipeline(StandardScaler(),
... SVC(random_state=1))
>>> param_grid = [{'svc__C': param_range,
... 'svc__kernel': ['linear']},
... {'svc__C': param_range,
... 'svc__gamma': param_range,
... 'svc__kernel': ['rbf']}]
>>> rs = RandomizedSearchCV(estimator=pipe_svc,
... param_distributions=param_grid,
... scoring='accuracy',
... refit=True,
... n_iter=20,
... cv=10,
... random_state=1,
... n_jobs=-1)
>>> rs = rs.fit(X_train, y_train)
>>> print(rs.best_score_)
0.9670531400966184
>>> print(rs.best_params_)
{'svc__C': 0.05971247755848464, 'svc__kernel': 'linear'}
코드를 보면 GridSearchCV와 사용법이 매우 비슷합니다. 분포를 사용하여 파라미터 범위를 지정하고 n_iter=20으로 반복 횟수를 20으로 지정한 것만 다릅니다.