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,Итерируемый объект, возвращающий (обучающие, тестовые) разбиения в виде массивов индексов.
Для целочисленных/None входов, если оценщик является классификатором и
yявляется либо бинарным, либо многоклассовым,StratifiedKFoldиспользуется. Во всех остальных случаяхKFoldиспользуется. Эти сплиттеры создаются сshuffle=Falseтак что разбиения будут одинаковыми при всех вызовах.Обратитесь Руководство пользователя для различных стратегий перекрестной проверки, которые можно использовать здесь.
Изменено в версии 0.22:
cvзначение по умолчанию, если None изменено с 3-кратного на 5-кратное.- оценкаstr или callable, по умолчанию=None
Метод оценки для использования при оценке обучающих и тестовых наборов.
str: см. Строковые имена скореров для опций.
callable: вызываемый объект scorer (например, функция) с сигнатурой
scorer(estimator, X, y). См. Вызываемые скореры подробности.None:estimator’s критерий оценки по умолчанию используется.
- 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
Примеры галереи#
Построение кривых обучения и проверка масштабируемости моделей