Невозможно увидеть результаты RandomizedSearchCV - PullRequest
1 голос
/ 18 апреля 2019

Я делаю пример использования конвейера для задачи классификации.Моя проблема в том, что я не могу увидеть результаты 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 ()

Как мне написать параметры?Как я могу увидеть результаты поиска по сетке для оптимальных параметров?

...