Использование проверки (предопределенной) проверки подлинности для поиска по сетке с помощью 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 для всех других выборок.

  • ValueError: массив не должен содержать inf или NaN во время Biclustering
  • Обработка категориальных функций с помощью scikit-learn
  • использование matplotlib на Mac для Python 2.7
  • График определения границ решения для данных высокого измерения
  • scikit-learn: одно горячее кодирование строковых категориальных функций
  • как настроить параметры пользовательской функции ядра с помощью конвейера в scikit-learn
  • Создание функций распределения вероятностей (PDF) с гистограмм
  • Подготовьте данные для классификации текста с помощью Scikit Learn SVM
  • Python - лучший язык программирования в мире.