learning_curve#

sklearn.model_selection.learning_curve(estimator, X, y, *, группы=None, train_sizes=array([0.1, 0.33, 0.55, 0.78, 1.], cv=None, оценка=None, exploit_incremental_learning=False, n_jobs=None, pre_dispatch='all', verbose=0, перемешивание=False, random_state=None, error_score=nan, return_times=False, params=None)[источник]#

Кривая обучения.

Определяет перекрёстно проверенные оценки обучения и тестирования для разных размеров обучающего набора.

Генератор перекрестной проверки разбивает весь набор данных k раз на обучающие и тестовые данные. Подмножества обучающего набора разного размера будут использоваться для обучения оценивателя, и будет вычисляться оценка для каждого размера обучающего подмножества и тестового набора. Затем оценки будут усреднены по всем k запускам для каждого размера обучающего подмножества.

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

Параметры:
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 для обучения без учителя.

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

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

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

train_sizesarray-like формы (n_ticks,), по умолчанию=np.linspace(0.1, 1.0, 5)

Относительные или абсолютные числа обучающих примеров, которые будут использоваться для построения кривой обучения. Если тип данных — float, это рассматривается как доля от максимального размера обучающего набора (который определяется выбранным методом валидации), т.е. должно быть в пределах (0, 1]. В противном случае интерпретируется как абсолютные размеры обучающих наборов. Обратите внимание, что для классификации количество выборок обычно должно быть достаточно большим, чтобы содержать хотя бы одну выборку из каждого класса.

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

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

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

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

  • CV splitter,

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

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

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

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

оценкаstr или callable, по умолчанию=None

Метод оценки для использования при оценке обучающих и тестовых наборов.

exploit_incremental_learningbool, по умолчанию=False

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

n_jobsint, default=None

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

pre_dispatchint или str, по умолчанию='all'

Количество предварительно отправленных заданий для параллельного выполнения (по умолчанию все). Опция может уменьшить выделенную память. Строка может быть выражением типа '2*n_jobs'.

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

Управляет подробностью вывода: чем выше, тем больше сообщений.

перемешиваниеbool, по умолчанию=False

Перемешивать ли обучающие данные перед взятием префиксов на основе ``train_sizes``.

random_stateint, экземпляр RandomState или None, по умолчанию=None

Используется, когда shuffle равно True. Передайте целое число для воспроизводимого результата при множественных вызовах функции. См. Глоссарий.

error_score'raise' или числовое, по умолчанию=np.nan

Значение, присваиваемое оценке, если возникает ошибка при обучении оценщика. Если установлено 'raise', ошибка вызывается. Если задано числовое значение, вызывается FitFailedWarning.

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

return_timesbool, по умолчанию=False

Возвращать ли время обучения и оценки.

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

Параметры для передачи в fit методу оценщика и оценщику.

  • Если enable_metadata_routing=False (по умолчанию): Параметры, напрямую передаваемые в fit метод оценщика.

  • Если enable_metadata_routing=True: Параметры, безопасно перенаправляемые в fit методе оценщика. См. Руководство по маршрутизации метаданных для получения дополнительной информации.

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

Возвращает:
train_sizes_absмассив формы (n_unique_ticks,)

Количество обучающих примеров, использованных для построения кривой обучения. Обратите внимание, что количество делений может быть меньше n_ticks, так как повторяющиеся записи будут удалены.

train_scoresмассив формы (n_ticks, n_cv_folds)

Оценки на обучающих наборах.

test_scoresмассив формы (n_ticks, n_cv_folds)

Оценки на тестовом наборе.

fit_timesмассив формы (n_ticks, n_cv_folds)

Время, затраченное на обучение, в секундах. Присутствует только если return_times равно True.

score_timesмассив формы (n_ticks, n_cv_folds)

Время, затраченное на оценку, в секундах. Присутствует только если return_times равно True.

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

LearningCurveDisplay.from_estimator

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

Примеры

>>> from sklearn.datasets import make_classification
>>> from sklearn.tree import DecisionTreeClassifier
>>> from sklearn.model_selection import learning_curve
>>> X, y = make_classification(n_samples=100, n_features=10, random_state=42)
>>> tree = DecisionTreeClassifier(max_depth=4, random_state=42)
>>> train_size_abs, train_scores, test_scores = learning_curve(
...     tree, X, y, train_sizes=[0.3, 0.6, 0.9]
... )
>>> for train_size, cv_train_scores, cv_test_scores in zip(
...     train_size_abs, train_scores, test_scores
... ):
...     print(f"{train_size} samples were used to train the model")
...     print(f"The average train accuracy is {cv_train_scores.mean():.2f}")
...     print(f"The average test accuracy is {cv_test_scores.mean():.2f}")
24 samples were used to train the model
The average train accuracy is 1.00
The average test accuracy is 0.85
48 samples were used to train the model
The average train accuracy is 1.00
The average test accuracy is 0.90
72 samples were used to train the model
The average train accuracy is 1.00
The average test accuracy is 0.93