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