Spec-Zone.ru › scikit-learn

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

sklearn.model_selection.learning_curve(estimator, X, y, *, groups=None, train_sizes=array([0.1, 0.33, 0.55, 0.78, 1.]), cv=None, scoring=None, exploit_incremental_learning=False, n_jobs=None, pre_dispatch='all', verbose=0, shuffle=False, random_state=None, error_score=nan, return_times=False, fit_params=None, params=None)[source]

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

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

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

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

Параметры:
estimatorтип объекта, реализующего метод “fit”

Объект этого типа, который клонируется для каждой проверки. Он также должен реализовывать “predict”, если scoring — это вызываемый объект, который не полагается на “predict” для вычисления оценки.

X{массив, разреженная матрица} формы (n_samples, n_features)

Вектор обучения, где n_samples — количество выборок, а n_features — количество признаков.

yмассив формы (n_samples,) или (n_samples, n_outputs) или None

Цель, относящаяся к X, для классификации или регрессии; None для обучения без учителя.

groupsмассив формы (n_samples,), по умолчанию=None

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

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

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

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

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

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

  • None, для использования по умолчанию 5-кратной перекрёстной проверки,
  • int, для указания количества сгибов в (Stratified)KFold,
  • разделитель cv,
  • Итерируемый объект, возвращающий (train, test) разбиения в виде массивов индексов.

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

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

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

scoringстрока или вызываемый объект, по умолчанию=None

Строка (см. Параметр scoring: определение правил оценки модели) или вызываемый объект/функция с сигнатурой scorer(estimator, X, y).

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

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

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

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

pre_dispatchint или строка, по умолчанию=’all’

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

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

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

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

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

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

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

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

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

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

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

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

fit_paramsсловарь, по умолчанию=None

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

Устарело начиная с версии 1.6: Этот параметр устарел и будет удален в версии 1.8. Используйте params вместо него.

paramsсловарь, по умолчанию=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.

Примеры

>>> 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

Примеры из галереи

Построение кривых обучения и проверка масштабируемости моделей

© 2007–2025 The scikit-learn developers
Licensed under the 3-clause BSD License.
https://scikit-learn.org/1.6/modules/generated/sklearn.model_selection.learning_curve.html

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API