Использование проверки (предопределенной) проверки подлинности для поиска по сетке с помощью sklearn

У меня есть набор данных, который ранее был разделен на 3 набора: поезд, валидация и тест. Эти наборы должны использоваться как заданные для сравнения производительности по различным алгоритмам.

Теперь я хотел бы оптимизировать параметры моего SVM с помощью набора проверки. Тем не менее, я не могу найти способ ввода явно установленного значения в sklearn.grid_search.GridSearchCV() . Ниже приведен код, который я ранее использовал для выполнения кросс-валидации K-набора на обучающем наборе. Однако для этой проблемы мне нужно использовать набор валидаций, как указано. Как я могу это сделать?

 from sklearn import svm, cross_validation from sklearn.grid_search import GridSearchCV # (some code left out to simplify things) skf = cross_validation.StratifiedKFold(y_train, n_folds=5, shuffle = True) clf = GridSearchCV(svm.SVC(tol=0.005, cache_size=6000, class_weight=penalty_weights), param_grid=tuned_parameters, n_jobs=2, pre_dispatch="n_jobs", cv=skf, scoring=scorer) clf.fit(X_train, y_train) 

One Solution collect form web for “Использование проверки (предопределенной) проверки подлинности для поиска по сетке с помощью sklearn”

Использовать PredefinedSplit

 ps = PredefinedSplit(test_fold=your_test_fold) 

затем установите cv=ps в GridSearchCV

test_fold: "array-like, shape (n_samples),

test_fold [i] дает тестовый набор fold образца i. Значение -1 указывает, что соответствующий образец не является частью сложенных наборов тестов, но вместо этого он всегда будет помещен в тренировочную сгиб.

Также см. Здесь

при использовании набора проверки установите для параметра test_fold значение 0 для всех выборок, которые являются частью набора проверки, и -1 для всех других выборок.

  • scikit-learn: одно горячее кодирование строковых категориальных функций
  • Scikit-learn predict_proba дает неправильные ответы
  • Ошибка памяти при установке данных с использованием пакета sklearn
  • Ошибка при вызове scikit-learn с использованием сборки AMD64 для Scipy в Windows
  • многоклассовая классификация в xgboost (python)
  • Как извлечь уравнение из полинома?
  • Травление подготовленного классификатора дает разные результаты по результатам, полученным непосредственно из нового, но идентично обученного классификатора
  • Как получить имена объектов, выбранные путем исключения функций в конвейере sklearn?
  • использовать scikit-learn для классификации по нескольким категориям
  • ImportError: нельзя импортировать выбор имени при импорте sklearn.mixture
  • scikit-learn: случайные параметры class_weight и sample_weight
  • Python - лучший язык программирования в мире.