Кривая обучения
- 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