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
-
Обновленный объект.
-
Примеры галереи
© 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