validation_curve
- sklearn.model_selection.validation_curve(estimator, X, y, *, param_name, param_range, groups=None, cv=None, scoring=None, n_jobs=None, pre_dispatch='all', verbose=0, error_score=nan, params=None)[исходный код]
-
Кривая валидации.
Определяет оценки на обучающих и тестовых данных для различных значений параметра.
Вычисляет оценки для оценивателя с различными значениями указанного параметра. Это похоже на поиск по сетке с одним параметром. Однако здесь также вычисляются оценки на обучающих данных; эта функция предназначена лишь для построения графика результатов.
Подробнее см. в руководстве пользователя.
- Параметры:
-
- estimatorобъект типа, реализующего метод “fit”
-
Объект этого типа, который клонируется для каждой валидации. Он также должен реализовывать метод “predict”, если только
scoringне является вызываемым объектом, которому для вычисления оценки не требуется “predict”. - X{массивоподобный объект, разреженная матрица} формы (n_samples, n_features)
-
Обучающий вектор, где
n_samples— количество образцов, аn_features— количество признаков. - yмассивоподобный объект формы (n_samples,) или (n_samples, n_outputs), или None
-
Целевые значения относительно X для классификации или регрессии; None для обучения без учителя.
- param_namestr
-
Имя параметра, значения которого будут варьироваться.
- param_rangeмассивоподобный объект формы (n_values,)
-
Значения параметра, которые будут оцениваться.
- groupsмассивоподобный объект формы (n_samples,), по умолчанию None
-
Метки групп для образцов, используемые при разделении набора данных на обучающую и тестовую выборки. Используется только совместно с объектом cv типа «Group» (например,
GroupKFold).Изменено в версии 1.6:
groupsможно передать, только если маршрутизация метаданных не включена черезsklearn.set_config(enable_metadata_routing=True). Если маршрутизация включена, передавайтеgroupsвместе с другими метаданными через аргументparams. Например:validation_curve(..., params={'groups': groups}). - cvint, генератор перекрёстной проверки или итерируемый объект, по умолчанию None
-
Определяет стратегию разбиения для перекрёстной проверки. Возможные значения cv:
- None — использовать перекрёстную проверку по умолчанию с 5 фолдами;
- int — указать количество фолдов в
(Stratified)KFold; - разделитель для перекрёстной проверки;
- итерируемый объект, возвращающий разбиения (train, test) в виде массивов индексов.
Для значений int/None, если оцениватель является классификатором, а
yимеет бинарный или многоклассовый тип, используетсяStratifiedKFold. Во всех остальных случаях используетсяKFold. Эти разделители создаются с параметромshuffle=False, поэтому при каждом вызове разбиения будут одинаковыми.Сведения о стратегиях перекрёстной проверки, которые можно использовать здесь, см. в руководстве пользователя.
Изменено в версии 0.22: значение
cvпо умолчанию при None изменено с 3 фолдов на 5. - scoringstr или вызываемый объект, по умолчанию None
-
Метод оценки, используемый для вычисления качества на обучающей и тестовой выборках.
- str: варианты см. в разделе оцениватели с именами в виде строк.
- вызываемый объект: вызываемый объект-оцениватель (например, функция) с сигнатурой
scorer(estimator, X, y). Подробнее см. в разделе вызываемые оцениватели. -
None: используется критерий оценки по умолчанию дляestimator.
- n_jobsint, по умолчанию None
-
Количество параллельно выполняемых задач. Обучение оценивателя и вычисление оценки выполняются параллельно для комбинаций каждого значения параметра и каждого разбиения перекрёстной проверки.
Noneозначает 1, если только не используется контекстjoblib.parallel_backend.-1означает использование всех процессоров. Подробнее см. в глоссарии. - pre_dispatchint или str, по умолчанию ’all’
-
Количество заранее отправляемых задач для параллельного выполнения (по умолчанию — все). Этот параметр может уменьшить объём выделяемой памяти. В качестве str можно указать выражение, например ‘2*n_jobs’.
- verboseint, по умолчанию 0
-
Управляет подробностью вывода: чем выше значение, тем больше сообщений.
- error_score‘raise’ или числовое значение, по умолчанию np.nan
-
Значение, присваиваемое оценке при возникновении ошибки во время обучения оценивателя. Если задано значение ‘raise’, ошибка будет вызвана. Если задано числовое значение, возникает предупреждение FitFailedWarning.
Добавлено в версии 0.20.
- paramsdict, по умолчанию None
-
Параметры, передаваемые оценивателю, оценщику и объекту перекрёстной проверки.
- Если
enable_metadata_routing=False(по умолчанию): параметры передаются непосредственно методуfitоценивателя. - Если
enable_metadata_routing=True: параметры безопасно маршрутизируются методуfitоценивателя, оценщику и объекту перекрёстной проверки. Подробнее см. в руководстве пользователя по маршрутизации метаданных.
Добавлено в версии 1.6.
- Если
- Возвращает:
-
- train_scoresмассив формы (n_ticks, n_cv_folds)
-
Оценки на обучающих выборках.
- test_scoresмассив формы (n_ticks, n_cv_folds)
-
Оценки на тестовой выборке.
См. также
ValidationCurveDisplay.from_estimator-
Построить кривую валидации по оценивателю, данным и параметру, значения которого нужно варьировать.
Примечания
См. Влияние регуляризации модели на ошибку обучения и тестирования
Примеры
>>> import numpy as np >>> from sklearn.datasets import make_classification >>> from sklearn.model_selection import validation_curve >>> from sklearn.linear_model import LogisticRegression >>> X, y = make_classification(n_samples=1_000, random_state=0) >>> logistic_regression = LogisticRegression() >>> param_name, param_range = "C", np.logspace(-8, 3, 10) >>> train_scores, test_scores = validation_curve( ... logistic_regression, X, y, param_name=param_name, param_range=param_range ... ) >>> print(f"The average train accuracy is {train_scores.mean():.2f}") The average train accuracy is 0.81 >>> print(f"The average test accuracy is {test_scores.mean():.2f}") The average test accuracy is 0.81
Примеры из галереи
© 2007–2026 The scikit-learn developers
Licensed under the 3-clause BSD License.
https://scikit-learn.org/1.9/modules/generated/sklearn.model_selection.validation_curve.html