Spec-Zone.ru › scikit-learn

CalibratedClassifierCV

classsklearn.calibration.CalibratedClassifierCV(estimator=None, *, method='sigmoid', cv=None, n_jobs=None, ensemble='auto')[source]

Калибровка вероятностей с помощью изотонической регрессии или логистической регрессии.

Этот класс использует перекрёстную проверку для оценки параметров классификатора и последующей калибровки классификатора. По умолчанию ensemble=True, для каждого разбиения перекрёстной проверки он подгоняет копию базового оценочного значения к подмножеству обучающей выборки и калибрует его, используя подмножество тестовой выборки. Для предсказания предсказанные вероятности усредняются по этим отдельным откалиброванным классификаторам. Когда ensemble=False, перекрёстная проверка используется для получения несмещённых предсказаний, через cross_val_predict, которые затем используются для калибровки. Для предсказания используется базовый оценочный показатель, обученный на всех данных. Это метод предсказания, реализованный, когда probabilities=True для SVC и NuSVC оценочных значений (подробности см. в Руководстве пользователя).

Уже обученные классификаторы могут быть откалиброваны путем обертывания модели в FrozenEstimator. В этом случае все предоставленные данные используются для калибровки. Пользователь должен вручную позаботиться о том, чтобы данные для обучения модели и калибровки были различными.

Калибровка основана на методе decision_function estimator, если он существует, в противном случае на predict_proba.

Подробнее см. в Руководстве пользователя. Для получения дополнительной информации о классе CalibratedClassifierCV, см. следующие примеры калибровки: Калибровка вероятностей классификаторов, Кривые калибровки вероятностей и Калибровка вероятностей для 3-классовой классификации.

Параметры:
estimatorэкземпляр оценочного значения, по умолчанию=None

Классификатор, выход которого необходимо откалибровать, чтобы получить более точные predict_proba выходные данные. По умолчанию используется классификатор LinearSVC.

Добавлен в версии 1.2.

method{‘sigmoid’, ‘isotonic’}, по умолчанию=’sigmoid’

Метод, используемый для калибровки. Может быть ‘sigmoid’, соответствующий методу Платта (т.е. модели логистической регрессии), или ‘isotonic’, который является непараметрическим методом. Не рекомендуется использовать изотоническую калибровку с слишком малым количеством образцов калибровки (<<1000), так как она имеет тенденцию к переобучению.

cvцелое число, генератор перекрёстной проверки или итерируемый объект, по умолчанию=None

Определяет стратегию разбиения перекрёстной проверки. Возможные входные данные для cv:

  • None, чтобы использовать стандартную 5-кратную перекрёстную проверку,
  • целое число, чтобы указать количество слоёв.
  • разделитель CV,
  • Итерируемый объект, возвращающий разбиения (train, test) как массивы индексов.

Для целочисленных/None входных данных, если y является бинарным или многоклассовым, используется StratifiedKFold. Если y не является бинарным и не многоклассовым, используется KFold.

См. Руководство пользователя для различных стратегий перекрёстной проверки, которые могут быть здесь использованы.

Изменено в версии 0.22: cv значение по умолчанию, если None, изменено с 3-кратной на 5-кратную.

Изменено в версии 1.6: "prefit" устарело. Используйте FrozenEstimator вместо этого.

n_jobsцелое число, по умолчанию=None

Количество задач для выполнения параллельно. None означает 1, за исключением контекста joblib.parallel_backend. -1 означает использование всех процессоров.

Клоны базового оценочного значения подгоняются параллельно по итерациям перекрёстной проверки. Поэтому параллелизм происходит только тогда, когда cv != "prefit".

См. Словарь для получения более подробной информации.

Добавлен в версии 0.24.

ensemblebool или “auto”, по умолчанию=”auto”

Определяет, как подгоняется калибратор.

“auto” будет использовать False, если estimator является FrozenEstimator, и True в противном случае.

Если True, estimator подгоняется, используя данные обучения, и калибруется, используя данные тестирования, для каждого cv разбиения. Окончательный оценочный показатель является ансамблем пар n_cv обученного классификатора и калибратора, где n_cv является количеством разбиений перекрёстной проверки. Выход представляет собой средние предсказанные вероятности всех пар.

Если False, используется cv для вычисления несмещённых предсказаний, через cross_val_predict, которые затем используются для калибровки. При предсказании используется классификатор estimator, обученный на всех данных. Обратите внимание, что этот метод также реализован внутри sklearn.svm оценочные значения с параметром probabilities=True.

Добавлен в версии 0.24.

Изменено в версии 1.6: "auto" опция добавлена и является значением по умолчанию.

Атрибуты:
classes_массив формы (n_classes,)

Метки классов.

n_features_in_целое число

Количество признаков, увиденных во время fit. Определяется только в том случае, если базовое оценочное значение имеет такой атрибут после подгонки.

Добавлен в версии 0.24.

feature_names_in_массив формы (n_features_in_,)

Имена признаков, увиденные во время fit. Определяется только в том случае, если базовое оценочное значение имеет такой атрибут после подгонки.

Добавлен в версии 1.0.

calibrated_classifiers_список (длина равна cv или 1, если ensemble=False)

Список пар классификатора и калибратора.

  • Когда ensemble=True, n_cv подгоняет estimator и калибраторные пары. n_cv равно количеству разбиений перекрёстной проверки.
  • Когда ensemble=False, используется estimator, обученный на всех данных, и калибратор.

Изменено в версии 0.24: Случай одного откалиброванного классификатора, когда ensemble=False.

См. также

calibration_curve

Вычислить истинные и предсказанные вероятности для кривой калибровки.

Литература

[1]

Получение откалиброванных оценок вероятностей из решающих деревьев и наивных байесовских классификаторов, Б. Задрозный и К. Элкан, ICML 2001

[2]

Преобразование оценок классификатора в точные оценки вероятностей для нескольких классов, Б. Задрозный и К. Элкан, (KDD 2002)

[3]

Вероятностные выходы для опорных векторных машин и сравнения с методами регуляризованного правдоподобия, Дж. Платт, (1999)

[4]

Предсказание хороших вероятностей с помощью контролируемого обучения, А. Никулеску-Мизил и Р. Каруана, ICML 2005

Примеры

>>> from sklearn.datasets import make_classification
>>> from sklearn.naive_bayes import GaussianNB
>>> from sklearn.calibration import CalibratedClassifierCV
>>> X, y = make_classification(n_samples=100, n_features=2,
...                            n_redundant=0, random_state=42)
>>> base_clf = GaussianNB()
>>> calibrated_clf = CalibratedClassifierCV(base_clf, cv=3)
>>> calibrated_clf.fit(X, y)
CalibratedClassifierCV(...)
>>> len(calibrated_clf.calibrated_classifiers_)
3
>>> calibrated_clf.predict_proba(X)[:5, :]
array([[0.110..., 0.889...],
       [0.072..., 0.927...],
       [0.928..., 0.071...],
       [0.928..., 0.071...],
       [0.071..., 0.928...]])
>>> from sklearn.model_selection import train_test_split
>>> X, y = make_classification(n_samples=100, n_features=2,
...                            n_redundant=0, random_state=42)
>>> X_train, X_calib, y_train, y_calib = train_test_split(
...        X, y, random_state=42
... )
>>> base_clf = GaussianNB()
>>> base_clf.fit(X_train, y_train)
GaussianNB()
>>> from sklearn.frozen import FrozenEstimator
>>> calibrated_clf = CalibratedClassifierCV(FrozenEstimator(base_clf))
>>> calibrated_clf.fit(X_calib, y_calib)
CalibratedClassifierCV(...)
>>> len(calibrated_clf.calibrated_classifiers_)
1
>>> calibrated_clf.predict_proba([[-0.5, 0.5]])
array([[0.936..., 0.063...]])
fit(X, y, sample_weight=None, **fit_params)[source]

Обучить откалиброванную модель.

Параметры:
Xмассив-подобный формы (n_samples, n_features)

Данные обучения.

yмассив-подобный формы (n_samples,)

Целевые значения.

sample_weightмассив-подобный формы (n_samples,), по умолчанию=None

Веса выборок. Если None, то все выборки имеют одинаковый вес.

**fit_paramsсловарь

Параметры для передачи методу fit базового классификатора.

Возвращает:
selfобъект

Возвращает экземпляр self.

get_metadata_routing()[source]

Получить маршрутизацию метаданных этого объекта.

Пожалуйста, проверьте Руководство пользователя о том, как работает механизм маршрутизации.

Возвращает:
routingMetadataRouter

MetadataRouter, содержащий информацию о маршрутизации.

get_params(deep=True)[source]

Получить параметры этого оценщика.

Параметры:
deepbool, по умолчанию=True

Если True, возвращает параметры для этого оценщика и вложенных подобъектов, которые являются оценщиками.

Возвращает:
paramsсловарь

Имена параметров, сопоставленные со значениями.

predict(X)[source]

Предсказать целевое значение новых выборок.

Предсказанный класс — это класс с наибольшей вероятностью, и он может отличаться от предсказания неоткалиброванного классификатора.

Параметры:
Xмассив-подобный формы (n_samples, n_features)

Выборки, как принимаются estimator.predict.

Возвращает:
Cмассив-подобный формы (n_samples,)

Предсказанный класс.

predict_proba(X)[source]

Откалиброванные вероятности классификации.

Эта функция возвращает откалиброванные вероятности классификации для каждого класса на наборе тестовых векторов X.

Параметры:
Xмассив-подобный формы (n_samples, n_features)

Выборки, как принимаются estimator.predict_proba.

Возвращает:
Cмассив-подобный формы (n_samples, n_classes)

Предсказанные вероятности.

score(X, y, sample_weight=None)[source]

Возвращает среднюю точность на заданных тестовых данных и метках.

В многоклассовой классификации это точность подмножества, которая является жёстким метрикой, так как для каждой выборки требуется, чтобы каждый набор меток был предсказан правильно.

Параметры:
Xмассив-подобный формы (n_samples, n_features)

Тестовые выборки.

yмассив-подобный формы (n_samples,) или (n_samples, n_outputs)

Истинные метки для X.

sample_weightмассив-подобный формы (n_samples,), по умолчанию=None

Веса выборок.

Возвращает:
scoreчисло с плавающей точкой

Средняя точность self.predict(X) по отношению к y.

set_fit_request(*, sample_weight:bool|None|str='$UNCHANGED$') → CalibratedClassifierCV[source]

Запрос метаданных, переданных в метод fit.

Обратите внимание, что этот метод актуален только если enable_metadata_routing=True (см. sklearn.set_config). Пожалуйста, ознакомьтесь с Руководством пользователя, чтобы понять, как работает механизм маршрутизации.

Варианты для каждого параметра:

  • True: метаданные запрашиваются и передаются в fit, если они предоставлены. Запрос игнорируется, если метаданные не предоставлены.
  • False: метаданные не запрашиваются, и мета-эстиматор не передаст их в fit.
  • None: метаданные не запрашиваются, и мета-эстиматор выведет ошибку, если пользователь предоставит их.
  • str: метаданные должны быть переданы мета-эстиматору с этим псевдонимом вместо оригинального имени.

По умолчанию (sklearn.utils.metadata_routing.UNCHANGED) сохраняется существующий запрос. Это позволяет изменить запрос для некоторых параметров, а не для других.

Добавлен в версии 1.3.

Примечание

Этот метод актуален только если этот эстиматор используется как подэстиматор мета-эстиматора, например, внутри Pipeline. В противном случае он не имеет эффекта.

Parameters:
sample_weightstr, True, False, or None, default=sklearn.utils.metadata_routing.UNCHANGED

Маршрутизация метаданных для параметра sample_weight в fit.

Returns:
selfobject

Обновленный объект.

set_params(**params)[source]

Устанавливает параметры этого эстиматора.

Метод работает как с простыми эстиматорами, так и с вложенными объектами (такими как Pipeline). Последние имеют параметры в формате <component>__<parameter>, что позволяет обновлять каждый компонент вложенного объекта.

Parameters:
**paramsdict

Параметры эстиматора.

Returns:
selfestimator instance

Экземпляр эстиматора.

set_score_request(*, sample_weight:bool|None|str='$UNCHANGED$') → CalibratedClassifierCV[source]

Запрос метаданных, переданных в метод score.

Обратите внимание, что этот метод актуален только если enable_metadata_routing=True (см. sklearn.set_config). Пожалуйста, ознакомьтесь с Руководством пользователя, чтобы понять, как работает механизм маршрутизации.

Варианты для каждого параметра:

  • True: метаданные запрашиваются и передаются в score, если они предоставлены. Запрос игнорируется, если метаданные не предоставлены.
  • False: метаданные не запрашиваются, и мета-эстиматор не передаст их в score.
  • None: метаданные не запрашиваются, и мета-эстиматор выведет ошибку, если пользователь предоставит их.
  • str: метаданные должны быть переданы мета-эстиматору с этим псевдонимом вместо оригинального имени.

По умолчанию (sklearn.utils.metadata_routing.UNCHANGED) сохраняется существующий запрос. Это позволяет изменить запрос для некоторых параметров, а не для других.

Добавлен в версии 1.3.

Примечание

Этот метод актуален только если этот эстиматор используется как подэстиматор мета-эстиматора, например, внутри Pipeline. В противном случае он не имеет эффекта.

Parameters:
sample_weightstr, True, False, or None, default=sklearn.utils.metadata_routing.UNCHANGED

Маршрутизация метаданных для параметра sample_weight в score.

Returns:
selfobject

Обновленный объект.

Примеры галереи

Кривые калибровки вероятности

Калибровка вероятности для классификации с 3 классами

Калибровка вероятности классификаторов

Примеры использования FrozenEstimator

© 2007–2025 The scikit-learn developers
Licensed under the 3-clause BSD License.
https://scikit-learn.org/1.6/modules/generated/sklearn.calibration.CalibratedClassifierCV.html

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API