permutation_test_score
- sklearn.model_selection.permutation_test_score(estimator, X, y, *, groups=None, cv=None, n_permutations=100, n_jobs=None, random_state=0, verbose=0, scoring=None, fit_params=None, params=None)[source]
-
Оцените значимость перекрестно-валидированного результата с помощью перестановок.
Переставляет целевые значения, чтобы получить «случайные данные», и вычисляет эмпирическое значение p относительно нулевой гипотезы, что признаки и целевые значения независимы.
Значение p представляет собой долю случайных наборов данных, где оценщик работал так же хорошо или лучше, чем в исходных данных. Малое значение p указывает на то, что существует реальная зависимость между признаками и целевыми значениями, которая была использована оценщиком для получения хороших предсказаний. Большое значение p может быть связано с отсутствием реальной зависимости между признаками и целевыми значениями или оценщик не смог использовать зависимость для получения хороших предсказаний.
Подробнее см. в Руководстве пользователя.
- Параметры:
-
- estimatorобъект оценщика, реализующий метод ‘fit’
-
Объект для обучения данных.
- Xмассив-подобный объект с размерностью как минимум 2D
-
Обучающие данные.
- yмассив-подобный объект формы (n_samples,) или (n_samples, n_outputs) или None
-
Целевая переменная, которую нужно предсказать в случае задач обучения с учителем.
- groupsмассив-подобный объект формы (n_samples,), по умолчанию=None
-
Метки для ограничения перестановок внутри групп, т.е. значения
yпереставляются среди образцов с одним и тем же идентификатором группы. Если не указано, значенияyпереставляются среди всех образцов.Когда используется группирующий валидатор, метки групп также передаются методу
splitвалидатора. Валидатор использует их для группировки образцов при разделении набора данных на обучающую и тестовую выборки.Изменено в версии 1.6:
groupsможет быть передан только в том случае, если маршрутизация метаданных не включена черезsklearn.set_config(enable_metadata_routing=True). Если маршрутизация включена, передайтеgroupsвместе с другими метаданными через аргументparamsвместо этого. Например:permutation_test_score(..., params={'groups': groups}). - cvцелое число, генератор перекрестной проверки или итерируемый объект, по умолчанию=None
-
Определяет стратегию разделения набора данных для перекрестной проверки. Возможные входные данные для cv:
-
None, чтобы использовать стандартную 5-кратную перекрестную проверку, - целое число, чтобы указать количество сгибов в
(Stratified)KFold, - разделитель для перекрестной проверки,
- Итерируемый объект, возвращающий (train, test) разбиения в виде массивов индексов.
Для
int/Noneвходных данных, если оценщик является классификатором иyявляется либо двоичным, либо многоклассовым, используетсяStratifiedKFold. Во всех остальных случаях используетсяKFold. Эти разделители инициализируютсяshuffle=False, поэтому разбиения будут одинаковыми при каждом вызове.См. Руководство пользователя для различных стратегий перекрестной проверки, которые могут быть использованы здесь.
Изменено в версии 0.22:
cvзначение по умолчанию, еслиNoneизменилось с 3-кратной на 5-кратную перекрестную проверку. -
- n_permutationsцелое число, по умолчанию=100
-
Количество раз для перестановки
y. - n_jobsцелое число, по умолчанию=None
-
Количество задач, выполняемых параллельно. Обучение оценщика и вычисление перекрестно-валидированного результата выполняются параллельно по всем перестановкам.
Noneозначает 1, за исключением контекстаjoblib.parallel_backend.-1означает использование всех процессоров. См. Глоссарий для получения дополнительной информации. - random_stateцелое число, экземпляр RandomState или None, по умолчанию=0
-
Передайте целое число для воспроизводимых результатов для перестановки
yзначений среди образцов. См. Глоссарий. - verboseцелое число, по умолчанию=0
-
Уровень подробности.
- scoringстрока или вызываемая функция, по умолчанию=None
-
Одиночная строка (см. Параметр scoring: определение правил оценки модели) или вызываемая функция (см. Вызываемые функции-оценщики) для оценки предсказаний на тестовой выборке.
Если
Noneиспользуется метод score оценщика. - fit_paramsсловарь, по умолчанию=None
-
Параметры, передаваемые в метод fit оценщика.
Устарело начиная с версии 1.6: Этот параметр устарел и будет удален в версии 1.6. Используйте
paramsвместо него. - paramsсловарь, по умолчанию=None
-
Параметры, передаваемые в метод
fitоценщика, оценщика и разделителя перекрестной проверки.- Если
enable_metadata_routing=False(по умолчанию): параметры напрямую передаются в методfitоценщика. - Если
enable_metadata_routing=True: параметры безопасно маршрутизируются в методfitоценщика,cvобъект иscorer. См. Руководство пользователя по маршрутизации метаданных для получения дополнительной информации.
Добавлен в версии 1.6.
- Если
- Возвращает:
-
- scoreчисло с плавающей точкой
-
Истинное значение результата без перестановки целевых значений.
- permutation_scoresмассив формы (n_permutations,)
-
Значения результатов, полученные для каждой перестановки.
- pvalueчисло с плавающей точкой
-
Значение p, приближающее вероятность того, что результат будет получен случайно. Это вычисляется следующим образом:
(C + 1) / (n_permutations + 1)Где C — количество перестановок, для которых результат >= истинного результата.
Наилучшее возможное значение p — 1/(n_permutations + 1), наихудшее — 1,0.
Примечания
Эта функция реализует тест 1 в:
Ojala и Garriga. Permutation Tests for Studying Classifier Performance. Журнал машинного обучения (2010) т. 11
Примеры
>>> from sklearn.datasets import make_classification >>> from sklearn.linear_model import LogisticRegression >>> from sklearn.model_selection import permutation_test_score >>> X, y = make_classification(random_state=0) >>> estimator = LogisticRegression() >>> score, permutation_scores, pvalue = permutation_test_score( ... estimator, X, y, random_state=0 ... ) >>> print(f"Original Score: {score:.3f}") Original Score: 0.810 >>> print( ... f"Permutation Scores: {permutation_scores.mean():.3f} +/- " ... f"{permutation_scores.std():.3f}" ... ) Permutation Scores: 0.505 +/- 0.057 >>> print(f"P-value: {pvalue:.3f}") P-value: 0.010
Галерея примеров
© 2007–2025 The scikit-learn developers
Licensed under the 3-clause BSD License.
https://scikit-learn.org/1.6/modules/generated/sklearn.model_selection.permutation_test_score.html