Я делаю пример использования конвейера для задачи классификации.Моя проблема в том, что я не могу увидеть результаты RandomizedSearchCV
из scikit-learn
в python
.
Я ранее использовал GridSearchCV
с этими параметрами (оценщик, param_grid, scoring, cv) и я смог увидеть оптимальную комбинацию гиперпараметров.Моя scikit-learn
версия - 0.20.0
import sklearn
print('The scikit-learn version is {}.'.format(sklearn.__version__))
X, y = make_classification(n_classes=2, class_sep=0, weights=[0.05,0.95],n_clusters_per_class=2,
n_features=2, n_samples=10000, n_informative=2, n_redundant=0, n_repeated=0)
#Repeated ENN
renn = RepeatedEditedNearestNeighbours( n_neighbors = 5, n_jobs= 2, max_iter = 100)
#Oversampling after have undersampled
smote_enn = SMOTEENN()
#Classifier
classifier = LogisticRegression(random_state = 0)
# Make the splits
n = 2
kf = StratifiedKFold(n_splits = n, random_state = 0)
# Create regularization penalty space
penalty = ['l1', 'l2']
# Create regularization hyperparameter space
C = np.logspace(0, 4, 10)
# Create hyperparameter options
parameters = dict(C=C, penalty=penalty)
random_search = RandomizedSearchCV(pipeline, param_distributions=parameters, n_iter=1000, cv = kf, return_train_score = True)
gg = random_search.fit(X, y)
gg .best_estimator_
random_search.cv_results_
Я получаю эту ошибку
ValueError: Неверный штраф параметра для конвейера оценки (память = нет, шаги= [('logisticregression', LogisticRegression (C = 1.0, class_weight = Нет,> dual = False, fit_intercept = True, intercept_scaling = 1, max_iter = 100, multi_class = 'warn', n_jobs = None, штраф = 'l2',random_state = 0, solver = 'warn', tol = 0,0001, подробный = 0, warm_start = False))]).Проверьте список> доступных параметров с помощью `estimator.get_params (). Keys ()
Как мне написать параметры?Как я могу увидеть результаты поиска по сетке для оптимальных параметров?