cross_val_predict#

sklearn.model_selection.cross_val_predict(estimator, X, y=None, *, группы=None, cv=None, n_jobs=None, verbose=0, params=None, pre_dispatch='2*n_jobs', метод='predict')[источник]#

Генерировать перекрёстно-валидированные оценки для каждой точки входных данных.

Данные разделяются в соответствии с параметром cv. Каждый образец принадлежит ровно одному тестовому набору, и его прогноз вычисляется с помощью оценщика, обученного на соответствующем обучающем наборе.

Передача этих предсказаний в метрику оценки может не быть допустимым способом измерения обобщающей способности. Результаты могут отличаться от cross_validate и cross_val_score если только все тестовые наборы не имеют одинакового размера и метрика раскладывается по выборкам.

Подробнее в Руководство пользователя.

Параметры:
estimatorestimator

Экземпляр оценщика, используемый для обучения данных. Он должен реализовывать fit метод и метод, заданный method параметр.

X{array-like, sparse matrix} формы (n_samples, n_features)

Данные для обучения. Могут быть, например, списком или массивом размерностью не менее 2d.

y{array-like, sparse matrix} формы (n_samples,) или (n_samples, n_outputs), по умолчанию=None

Целевая переменная, которую пытаются предсказать в случае обучения с учителем.

группыarray-like формы (n_samples,), по умолчанию=None

Метки групп для образцов, используемых при разделении набора данных на обучающую/тестовую выборки. Используется только в сочетании с "Group" cv экземпляр (например, GroupKFold).

Изменено в версии 1.4: groups может быть передан только если маршрутизация метаданных не включена через sklearn.set_config(enable_metadata_routing=True). Когда маршрутизация включена, передайте groups наряду с другими метаданными через params аргумента вместо этого. Например: cross_val_predict(..., params={'groups': groups}).

cvint, генератор кросс-валидации или итерируемый объект, по умолчанию=None

Определяет стратегию разделения для перекрестной проверки. Возможные значения для cv:

  • None, чтобы использовать стандартную 5-кратную перекрестную проверку,

  • int, чтобы указать количество фолдов в (Stratified)KFold,

  • CV splitter,

  • Итерируемый объект, генерирующий (обучающие, тестовые) разбиения как массивы индексов.

Для целочисленных/None входов, если оценщик является классификатором и y является либо бинарным, либо многоклассовым, StratifiedKFold используется. Во всех остальных случаях KFold используется. Эти сплиттеры создаются с shuffle=False так что разбиения будут одинаковыми при всех вызовах.

Обратитесь Руководство пользователя для различных стратегий перекрестной проверки, которые можно использовать здесь.

Изменено в версии 0.22: cv значение по умолчанию, если None изменено с 3-кратного на 5-кратное.

n_jobsint, default=None

Количество задач для параллельного выполнения. Обучение оценщика и предсказание распараллеливаются по разбиениям кросс-валидации. None означает 1, если только не в joblib.parallel_backend контекст. -1 означает использование всех процессоров. См. Глоссарий для получения дополнительной информации.

verboseint, по умолчанию=0

Уровень подробности вывода.

paramsdict, по умолчанию=None

Параметры для передачи в базовый оценщик fit и разделитель перекрестной проверки.

Добавлено в версии 1.4.

pre_dispatchint или str, по умолчанию=’2*n_jobs’

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

  • None, в этом случае все задачи немедленно создаются и запускаются. Используйте это для легковесных и быстро выполняемых задач, чтобы избежать задержек из-за запуска задач по требованию

  • Целое число, указывающее точное количество создаваемых заданий

  • Строка, дающая выражение как функцию от n_jobs, например, '2*n_jobs'

метод{'predict', 'predict_proba', 'predict_log_proba', 'decision_function'}, по умолчанию='predict'

Метод, который должен быть вызван estimator.

Возвращает:
предсказанияndarray

Это результат вызова method. Форма:

  • Когда method — это ‘predict’ и в особом случае, когда method равно 'decision_function' и цель бинарная: (n_samples,)

  • Когда method является одним из {'predict_proba', 'predict_log_proba', 'decision_function'} (если не особый случай выше): (n_samples, n_classes)

  • Если estimator является multioutput, дополнительное измерение 'n_outputs' добавляется в конец каждой из указанных выше форм.

Смотрите также

cross_val_score

Рассчитать оценку для каждого разделения CV.

cross_validate

Вычислить одно или несколько оценок и времени для каждого разбиения перекрестной проверки.

Примечания

В случае, если один или несколько классов отсутствуют в обучающей части, необходимо присвоить оценку по умолчанию всем экземплярам для этого класса, если method создает столбцы для каждого класса, как в {‘decision_function’, ‘predict_proba’, ‘predict_log_proba’}. Для predict_proba это значение равно 0. Чтобы обеспечить конечный вывод, мы аппроксимируем отрицательную бесконечность минимальным конечным значением с плавающей точкой для типа данных в других случаях.

Примеры

>>> from sklearn import datasets, linear_model
>>> from sklearn.model_selection import cross_val_predict
>>> diabetes = datasets.load_diabetes()
>>> X = diabetes.data[:150]
>>> y = diabetes.target[:150]
>>> lasso = linear_model.Lasso()
>>> y_pred = cross_val_predict(lasso, X, y, cv=3)

Для подробного примера использования cross_val_predict для визуализации ошибок прогнозирования, пожалуйста, смотрите Построение перекрестно проверенных предсказаний.