validation_curve#
- sklearn.model_selection.validation_curve(estimator, X, y, *, param_name, param_range, группы=None, cv=None, оценка=None, n_jobs=None, pre_dispatch='all', verbose=0, error_score=nan, params=None)[источник]#
Кривая валидации.
Определение обучающих и тестовых оценок для различных значений параметров.
Вычисляет оценки для оценщика с разными значениями указанного параметра. Это похоже на поиск по сетке с одним параметром. Однако это также вычисляет обучающие оценки и является лишь утилитой для построения графиков результатов.
Подробнее в Руководство пользователя.
- Параметры:
- estimatorтип object, который реализует метод "fit"
Объект этого типа, который клонируется для каждой проверки. Он также должен реализовывать "predict", если только
scoringэто вызываемый объект, который не зависит от "predict" для вычисления счета.- X{array-like, sparse matrix} формы (n_samples, n_features)
Вектор обучения, где
n_samples— это количество образцов иn_featuresэто количество признаков.- yarray-like формы (n_samples,) или (n_samples, n_outputs) или None
Целевая переменная относительно X для классификации или регрессии; None для обучения без учителя.
- param_namestr
Имя параметра, который будет варьироваться.
- param_rangearray-like формы (n_values,)
Значения параметра, которые будут оценены.
- группыarray-like формы (n_samples,), по умолчанию=None
Метки групп для образцов, используемых при разделении набора данных на обучающую/тестовую выборки. Используется только в сочетании с "Group" cv экземпляр (например,
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,Итерируемый объект, возвращающий (обучающие, тестовые) разбиения в виде массивов индексов.
Для целочисленных/None входов, если оценщик является классификатором и
yявляется либо бинарным, либо многоклассовым,StratifiedKFoldиспользуется. Во всех остальных случаяхKFoldиспользуется. Эти сплиттеры создаются сshuffle=Falseтак что разбиения будут одинаковыми при всех вызовах.Обратитесь Руководство пользователя для различных стратегий перекрестной проверки, которые можно использовать здесь.
Изменено в версии 0.22:
cvзначение по умолчанию, если None изменено с 3-кратного на 5-кратное.- оценкаstr или callable, по умолчанию=None
Метод оценки для использования при оценке обучающих и тестовых наборов.
str: см. Строковые имена скореров для опций.
callable: вызываемый объект scorer (например, функция) с сигнатурой
scorer(estimator, X, y). См. Вызываемые скореры подробности.None:estimator’s критерий оценки по умолчанию используется.
- n_jobsint, default=None
Количество задач для параллельного выполнения. Обучение оценщика и вычисление оценки распараллеливаются по комбинациям каждого значения параметра и каждого разбиения перекрестной проверки.
Noneозначает 1, если только не вjoblib.parallel_backendконтекст.-1означает использование всех процессоров. См. Глоссарий для получения дополнительной информации.- pre_dispatchint или str, по умолчанию='all'
Количество предварительно отправленных заданий для параллельного выполнения (по умолчанию все). Опция может уменьшить выделенную память. Строка может быть выражением типа '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