Spec-Zone.ru › scikit-learn

learning_curve

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, params=None)[исходный код]

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

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

Генератор перекрёстной проверки 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]. В противном случае оно интерпретируется как абсолютный размер обучающих выборок. Обратите внимание: при классификации число образцов обычно должно быть достаточно большим, чтобы содержать хотя бы один образец каждого класса.

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

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

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

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

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

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

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

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

  • строка: варианты см. в разделе Оценщики с именами в виде строк.
  • вызываемый объект: вызываемый объект-оценщик (например, функция) с сигнатурой scorer(estimator, X, y). Подробнее см. в разделе Вызываемые оценщики.
  • None: используется критерий оценки по умолчанию для estimator.
exploit_incremental_learningbool, по умолчанию=False

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

n_jobsцелое число, по умолчанию=None

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

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

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

verboseцелое число, по умолчанию=0

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

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

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

random_stateцелое число, экземпляр 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

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

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

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

Spec-Zone.ru

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