OneVsRestClassifier#

класс sklearn.multiclass.OneVsRestClassifier(estimator, *, n_jobs=None, verbose=0)[источник]#

Стратегия многоклассовой классификации "один против всех" (OvR).

Также известная как "один против всех", эта стратегия заключается в обучении одного классификатора на каждый класс. Для каждого классификатора класс обучается против всех остальных классов. В дополнение к своей вычислительной эффективности (только n_classes классификаторы необходимы), одним из преимуществ этого подхода является его интерпретируемость. Поскольку каждый класс представлен одним и только одним классификатором, можно получить знания о классе, исследуя соответствующий ему классификатор. Это наиболее часто используемая стратегия для многоклассовой классификации и является разумным выбором по умолчанию.

OneVsRestClassifier также может использоваться для многометочной классификации. Чтобы использовать эту функцию, предоставьте индикаторную матрицу для целевой переменной y при вызове .fit. Другими словами, целевые метки должны быть отформатированы как 2D бинарная (0/1) матрица, где [i, j] == 1 указывает на наличие метки j в образце i. Этот оценщик использует метод бинарной релевантности для выполнения многометочной классификации, который включает обучение одного бинарного классификатора независимо для каждой метки.

Подробнее в Руководство пользователя.

Параметры:
estimatorобъект оценщика

Регрессор или классификатор, реализующий fit. Когда передаётся классификатор, decision_function будет использоваться в приоритете, и он вернется к predict_proba если он не доступен. Когда регрессор передан, predict используется.

n_jobsint, default=None

Количество заданий для вычисления: n_classes задачи one-vs-rest вычисляются параллельно.

None означает 1, если только не в joblib.parallel_backend контекст. -1 означает использование всех процессоров. См. Глоссарий для получения дополнительной информации.

Изменено в версии 0.20: n_jobs значение по умолчанию изменено с 1 на None

verboseint, по умолчанию=0

Уровень детализации, если не ноль, печатаются сообщения о прогрессе. Ниже 50 вывод отправляется в stderr. В противном случае вывод отправляется в stdout. Частота сообщений увеличивается с уровнем детализации, отчитываясь обо всех итерациях на уровне 10. См. joblib.Parallel для более подробной информации.

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

Атрибуты:
estimators_список n_classes оценщики

Оценщики, используемые для предсказаний.

classes_массив, форма = [n_classes]

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

n_classes_int

Количество классов.

label_binarizer_Объект LabelBinarizer

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

multilabel_логический

Является ли это многометочным классификатором.

n_features_in_int

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

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

feature_names_in_ndarray формы (n_features_in_,)

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

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

Смотрите также

OneVsOneClassifier

Многоклассовая стратегия "один против одного".

OutputCodeClassifier

(Error-Correcting) Output-Code стратегия многоклассовой классификации.

sklearn.multioutput.MultiOutputClassifier

Альтернативный способ расширения оценщика для многоклассовой классификации.

sklearn.preprocessing.MultiLabelBinarizer

Преобразование итерируемого объекта из итерируемых объектов в бинарную индикаторную матрицу.

Примеры

>>> import numpy as np
>>> from sklearn.multiclass import OneVsRestClassifier
>>> from sklearn.svm import SVC
>>> X = np.array([
...     [10, 10],
...     [8, 10],
...     [-5, 5.5],
...     [-5.4, 5.5],
...     [-20, -20],
...     [-15, -20]
... ])
>>> y = np.array([0, 0, 1, 1, 2, 2])
>>> clf = OneVsRestClassifier(SVC()).fit(X, y)
>>> clf.predict([[-19, -20], [9, 9], [-5, 5]])
array([2, 0, 1])
decision_function(X)[источник]#

Решающая функция для OneVsRestClassifier.

Возвращает расстояние каждого образца от границы принятия решений для каждого класса. Это можно использовать только с оценщиками, которые реализуют decision_function метод.

Параметры:
Xarray-like формы (n_samples, n_features)

Входные данные.

Возвращает:
Tмассивоподобный формы (n_samples, n_classes) или (n_samples,) для бинарной классификации.

Результат вызова decision_function на финальном оценщике.

Изменено в версии 0.19: форма вывода изменена на (n_samples,) чтобы соответствовать соглашениям scikit-learn для бинарной классификации.

fit(X, y, **fit_params)[источник]#

Обучение базовых оценщиков.

Параметры:
X{array-like, sparse matrix} формы (n_samples, n_features)

Данные.

y{array-like, sparse matrix} формы (n_samples,) или (n_samples, n_classes)

Многоклассовые цели. Матрица индикаторов включает многометочную классификацию.

**fit_paramsdict

Параметры, передаваемые в estimator.fit метод каждого подоценщика.

Добавлено в версии 1.4: Доступно только если enable_metadata_routing=True. См. Руководство по маршрутизации метаданных для получения дополнительной информации.

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

Экземпляр обученного оценщика.

6332()[источник]#

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

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

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

Возвращает:
маршрутизацияMetadataRouter

A MetadataRouter Инкапсуляция информации о маршрутизации.

get_params(глубокий=True)[источник]#

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

Параметры:
глубокийbool, по умолчанию=True

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

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

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

partial_fit(X, y, классы=None, **partial_fit_params)[источник]#

Частичное обучение базовых оценщиков.

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

Параметры:
X{array-like, sparse matrix} формы (n_samples, n_features)

Данные.

y{array-like, sparse matrix} формы (n_samples,) или (n_samples, n_classes)

Многоклассовые цели. Матрица индикаторов включает многометочную классификацию.

классымассив, форма (n_classes, )

Классы во всех вызовах partial_fit. Можно получить через np.unique(y_all), где y_all — целевой вектор всего набора данных. Этот аргумент требуется только при первом вызове partial_fit и может быть опущен в последующих вызовах.

**partial_fit_paramsdict

Параметры, передаваемые в estimator.partial_fit метод каждого подоценщика.

Добавлено в версии 1.4: Доступно только если enable_metadata_routing=True. См. Руководство по маршрутизации метаданных для получения дополнительной информации.

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

Экземпляр частично обученного оценщика.

predict(X)[источник]#

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

Параметры:
X{array-like, sparse matrix} формы (n_samples, n_features)

Данные.

Возвращает:
y{array-like, sparse matrix} формы (n_samples,) или (n_samples, n_classes)

Предсказанные многоклассовые цели.

predict_proba(X)[источник]#

Оценки вероятностей.

Возвращаемые оценки для всех классов упорядочены по меткам классов.

Обратите внимание, что в случае многометочной классификации каждый образец может иметь любое количество меток. Это возвращает маргинальную вероятность того, что данный образец имеет рассматриваемую метку. Например, вполне возможно, что две метки обе имеют 90% вероятность применения к данному образцу.

В случае однозначной многоклассовой классификации строки возвращаемой матрицы суммируются до 1.

Параметры:
X{array-like, sparse matrix} формы (n_samples, n_features)

Входные данные.

Возвращает:
Tarray-like формы (n_samples, n_classes)

Возвращает вероятность выборки для каждого класса в модели, где классы упорядочены так, как они находятся в self.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

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

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

Средняя точность self.predict(X) относительно y.

set_params(**params)[источник]#

Установить параметры этого оценщика.

Метод работает как на простых оценщиках, так и на вложенных объектах (таких как Pipeline). Последние имеют параметры вида __ чтобы можно было обновить каждый компонент вложенного объекта.

Параметры:
**paramsdict

Параметры оценщика.

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

Экземпляр оценщика.

set_partial_fit_request(*, классы: bool | None | str = '$UNCHANGED$') OneVsRestClassifier[источник]#

Настроить, следует ли запрашивать передачу метаданных в partial_fit метод.

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

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

  • True: запрашиваются метаданные и передаются partial_fit если предоставлено. Запрос игнорируется, если метаданные не предоставлены.

  • False: метаданные не запрашиваются, и мета-оценщик не передаст их в partial_fit.

  • None: метаданные не запрашиваются, и мета-оценщик выдаст ошибку, если пользователь предоставит их.

  • str: метаданные должны передаваться мета-оценщику с этим заданным псевдонимом вместо исходного имени.

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

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

Параметры:
классыstr, True, False или None, по умолчанию=sklearn.utils.metadata_routing.UNCHANGED

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

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

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

set_score_request(*, sample_weight: bool | None | str = '$UNCHANGED$') OneVsRestClassifier[источник]#

Настроить, следует ли запрашивать передачу метаданных в 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.

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

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