TunedThresholdClassifierCV
- classsklearn.model_selection.TunedThresholdClassifierCV(estimator, *, scoring='balanced_accuracy', response_method='auto', thresholds=100, cv=None, refit=True, n_jobs=None, random_state=None, store_cv_results=False)[источник]
-
Классификатор, который настраивает порог принятия решения с помощью кросс-валидации.
Этот оцениватель настраивает порог принятия решения (точку отсечения), используемый для преобразования апостериорных оценок вероятностей (т. е. результата
predict_proba) или оценок принятия решения (т. е. результатаdecision_function) в метку класса. Настройка выполняется путём оптимизации бинарной метрики, которая при необходимости может быть ограничена другой метрикой.Подробнее см. в Руководстве пользователя.
Добавлено в версии 1.5.
- Параметры:
-
- estimatorэкземпляр оценивателя
-
Классификатор, обученный или нет, для которого требуется оптимизировать порог принятия решения, используемый при
predict. - scoringстрока или вызываемый объект, по умолчанию “balanced_accuracy”
-
Целевая метрика для оптимизации. Может быть одним из следующих значений:
- str: строка, соответствующая функции оценки для бинарной классификации; варианты см. в разделе Строковые имена оценивателей.
- callable: вызываемый объект-оцениватель (например, функция) с сигнатурой
scorer(estimator, X, y). Подробности см. в разделе Вызываемые оцениватели.
- response_method{“auto”, “decision_function”, “predict_proba”}, по умолчанию “auto”
-
Методы классификатора
estimator, соответствующие функции принятия решения, для которой требуется найти порог. Возможны следующие значения:- если
"auto", для каждого классификатора будет предпринята попытка вызвать"predict_proba"или"decision_function"именно в таком порядке. - в противном случае — одно из значений
"predict_proba"или"decision_function". Если классификатор не реализует этот метод, будет вызвана ошибка.
- если
- thresholdsцелое число или массивоподобный объект, по умолчанию 100
-
Количество порогов принятия решения, используемых при дискретизации выходных данных классификатора
method. Передайте массивоподобный объект, чтобы вручную задать используемые пороги. - cvцелое число, число с плавающей точкой, генератор кросс-валидации, итерируемый объект или “prefit”, по умолчанию=None
-
Определяет стратегию разбиения на обучающие и проверочные выборки для обучения классификатора. Возможные значения cv:
-
None, чтобы использовать стратифицированную кросс-валидацию K-fold с 5 фолдами по умолчанию; - целое число, задающее количество фолдов в стратифицированном k-fold;
- число с плавающей точкой, задающее одно разбиение с перемешиванием. Это число должно находиться в диапазоне (0, 1) и обозначать размер проверочной выборки;
- объект, используемый в качестве генератора кросс-валидации;
- итерируемый объект, возвращающий разбиения на обучающую и проверочную выборки;
-
"prefit", чтобы пропустить кросс-валидацию.
Сведения о различных стратегиях кросс-валидации, доступных здесь, см. в Руководстве пользователя.
Предупреждение
Использование
cv="prefit"и передача одного и того же набора данных для обученияestimatorи настройки точки отсечения может привести к нежелательному переобучению. Пример см. в разделе Особенности повторного обучения модели и кросс-валидации.Этот параметр следует использовать, только если набор данных для обучения
estimatorотличается от набора, используемого для настройки точки отсечения (при вызовеTunedThresholdClassifierCV.fit). -
- refitbool, по умолчанию=True
-
Следует ли повторно обучить классификатор на всём обучающем наборе после нахождения порога принятия решения. Обратите внимание: принудительная установка
refit=Falseпри кросс-валидации с более чем одним разбиением вызовет ошибку. Аналогично, сочетаниеrefit=Trueиcv="prefit"вызовет ошибку. - n_jobsцелое число, по умолчанию=None
-
Количество задач, выполняемых параллельно. Если
cvзадаёт стратегию кросс-валидации, обучение и оценка для каждого разбиения данных выполняются параллельно. ЗначениеNoneозначает 1, если только оно не задано в контекстеjoblib.parallel_backend. Значение-1означает использование всех процессоров. Подробнее см. в глоссарии. - random_stateцелое число, экземпляр RandomState или None, по умолчанию=None
-
Управляет случайностью кросс-валидации, если
cvявляется числом с плавающей точкой. См. глоссарий. - store_cv_resultsbool, по умолчанию=False
-
Сохранять ли все оценки и пороги, вычисленные в процессе кросс-валидации.
- Атрибуты:
-
- estimator_экземпляр оценивателя
-
Обученный классификатор, используемый при предсказании.
- best_threshold_число с плавающей точкой
-
Новый порог принятия решения.
- best_score_число с плавающей точкой или None
-
Оптимальное значение целевой метрики, вычисленное при
best_threshold_. - cv_results_словарь или None
-
Словарь с оценками и порогами, вычисленными в процессе кросс-валидации. Существует только при
store_cv_results=True. Ключи —"thresholds"и"scores". -
classes_ndarray формы (n_classes,) -
Метки классов.
- n_features_in_целое число
-
Количество признаков, встреченных во время обучения. Определён только в том случае, если базовый оцениватель предоставляет такой атрибут после обучения.
-
feature_names_in_ndarray формы (
n_features_in_,) -
Имена признаков, встреченных во время обучения. Определён только в том случае, если базовый оцениватель предоставляет такой атрибут после обучения.
См. также
sklearn.model_selection.FixedThresholdClassifier-
Классификатор, использующий постоянный порог.
sklearn.calibration.CalibratedClassifierCV-
Оцениватель, калибрующий вероятности.
Примеры
>>> from sklearn.datasets import make_classification >>> from sklearn.ensemble import RandomForestClassifier >>> from sklearn.metrics import classification_report >>> from sklearn.model_selection import TunedThresholdClassifierCV, train_test_split >>> X, y = make_classification( ... n_samples=1_000, weights=[0.9, 0.1], class_sep=0.8, random_state=42 ... ) >>> X_train, X_test, y_train, y_test = train_test_split( ... X, y, stratify=y, random_state=42 ... ) >>> classifier = RandomForestClassifier(random_state=0).fit(X_train, y_train) >>> print(classification_report(y_test, classifier.predict(X_test))) precision recall f1-score support 0 0.94 0.99 0.96 224 1 0.80 0.46 0.59 26 accuracy 0.93 250 macro avg 0.87 0.72 0.77 250 weighted avg 0.93 0.93 0.92 250 >>> classifier_tuned = TunedThresholdClassifierCV( ... classifier, scoring="balanced_accuracy" ... ).fit(X_train, y_train) >>> print( ... f"Cut-off point found at {classifier_tuned.best_threshold_:.3f}" ... ) Cut-off point found at 0.342 >>> print(classification_report(y_test, classifier_tuned.predict(X_test))) precision recall f1-score support 0 0.96 0.95 0.96 224 1 0.61 0.65 0.63 26 accuracy 0.92 250 macro avg 0.78 0.80 0.79 250 weighted avg 0.92 0.92 0.92 250- decision_function(X)[источник]
-
Функция принятия решения для выборок из
Xс использованием обученного оценивателя.- Параметры:
-
- X{array-like, разреженная матрица} формы (n_samples, n_features)
-
Обучающие векторы, где
n_samples— количество выборок, аn_features— количество признаков.
- Возвращает:
-
- decisionsndarray формы (n_samples,)
-
Функция принятия решения, вычисленная обученным оценивателем.
- fit(X, y, **params)[источник]
-
Обучить классификатор.
- Параметры:
-
- X{array-like, разреженная матрица} формы (n_samples, n_features)
-
Обучающие данные.
- yarray-like формы (n_samples,)
-
Целевые значения.
- **paramsdict
-
Параметры, передаваемые методу
fitбазового классификатора.
- Возвращает:
-
- selfобъект
-
Возвращает экземпляр self.
- get_metadata_routing()[источник]
-
Получить настройки маршрутизации метаданных этого объекта.
О том, как работает механизм маршрутизации, см. в Руководстве пользователя.
- Возвращает:
-
- routingMetadataRouter
-
Объект
MetadataRouter, содержащий сведения о маршрутизации.
- get_params(deep=True)[источник]
-
Получить параметры этого оценивателя.
- Параметры:
-
- deepbool, по умолчанию=True
-
Если значение True, будут возвращены параметры этого оценивателя и содержащихся в нём подобъектов, являющихся оценивателями.
- Возвращает:
-
- paramsdict
-
Имена параметров, сопоставленные их значениям.
- predict(X)[источник]
-
Предсказать целевое значение для новых выборок.
- Параметры:
-
- X{array-like, разреженная матрица} формы (n_samples, n_features)
-
Выборки в формате, принимаемом
estimator.predict.
- Возвращает:
-
- class_labelsndarray формы (n_samples,)
-
Предсказанный класс.
- predict_log_proba(X)[источник]
-
Предсказать логарифмы вероятностей классов для
Xс использованием обученного оценивателя.- Параметры:
-
- X{array-like, разреженная матрица} формы (n_samples, n_features)
-
Обучающие векторы, где
n_samples— количество выборок, аn_features— количество признаков.
- Возвращает:
-
- log_probabilitiesndarray формы (n_samples, n_classes)
-
Логарифмы вероятностей классов для входных выборок.
- predict_proba(X)[источник]
-
Предсказать вероятности классов для
Xс использованием обученного оценивателя.- Параметры:
-
- X{array-like, разреженная матрица} формы (n_samples, n_features)
-
Обучающие векторы, где
n_samples— количество выборок, аn_features— количество признаков.
- Возвращает:
-
- probabilitiesndarray формы (n_samples, n_classes)
-
Вероятности классов для входных выборок.
- score(X, y, sample_weight=None)[источник]
-
Возвращает точность на предоставленных данных и метках.
В многометочной классификации это точность подмножества — строгая метрика, поскольку для каждой выборки требуется правильно предсказать все метки.
- Параметры:
-
- Xarray-like формы (n_samples, n_features)
-
Тестовые выборки.
- yarray-like формы (n_samples,) или (n_samples, n_outputs)
-
Истинные метки для
X. - sample_weightarray-like формы (n_samples,), по умолчанию=None
-
Веса выборок.
- Возвращает:
-
- scoreчисло с плавающей точкой
-
Средняя точность
self.predict(X)относительноy.
- set_params(**params)[источник]
-
Задать параметры этого оценивателя.
Метод работает как с простыми оценивателями, так и с вложенными объектами (например,
Pipeline). У последних параметры имеют вид<component>__<parameter>, что позволяет обновлять каждый компонент вложенного объекта.- Параметры:
-
- **paramsdict
-
Параметры оценивателя.
- Возвращает:
-
- selfэкземпляр оценивателя
-
Экземпляр оценивателя.
- set_score_request(*, sample_weight:bool|None|str='$UNCHANGED$') TunedThresholdClassifierCV[источник]
-
Настроить, следует ли запрашивать передачу метаданных в метод
score.Обратите внимание: этот метод актуален только тогда, когда данный оцениватель используется как подоцениватель в составе мета-оценивателя и включена маршрутизация метаданных с помощью
enable_metadata_routing=True(см.sklearn.set_config). О том, как работает механизм маршрутизации, см. в Руководстве пользователя.Для каждого параметра доступны следующие варианты:
-
True: метаданные запрашиваются и передаются вscore, если они предоставлены. Если метаданные не предоставлены, запрос игнорируется. -
False: метаданные не запрашиваются, и мета-оцениватель не передаёт их вscore. -
None: метаданные не запрашиваются; если пользователь их предоставляет, мета-оцениватель вызовет ошибку. -
str: метаданные передаются мета-оценивателю под указанным псевдонимом вместо исходного имени.
Значение по умолчанию (
sklearn.utils.metadata_routing.UNCHANGED) сохраняет существующий запрос. Это позволяет изменить запрос для одних параметров, не меняя его для остальных.Добавлено в версии 1.3.
- Параметры:
-
- sample_weightstr, True, False или None, по умолчанию=sklearn.utils.metadata_routing.UNCHANGED
-
Маршрутизация метаданных для параметра
sample_weightвscore.
- Возвращает:
-
- selfобъект
-
Обновлённый объект.
-
Примеры из галереи
© 2007–2026 The scikit-learn developers
Licensed under the 3-clause BSD License.
https://scikit-learn.org/1.9/modules/generated/sklearn.model_selection.TunedThresholdClassifierCV.html