Spec-Zone.ru › scikit-learn

OneVsRestClassifier

classsklearn.multiclass.OneVsRestClassifier(estimator, *, n_jobs=None, verbose=0)[исходный код]

Многоклассовая стратегия «один против остальных» (OvR).

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

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

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

Параметры:
estimatorобъект-оцениватель

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

n_jobsint, по умолчанию=None

Количество заданий для вычислений: n_classes задач «один против остальных» вычисляются параллельно.

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

Многоклассовая стратегия выходного кодирования (с коррекцией ошибок).

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.

Параметры:
Xмассивоподобный объект формы (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{массивоподобный объект, разреженная матрица} формы (n_samples, n_features)

Данные.

y{массивоподобный объект, разреженная матрица} формы (n_samples,) или (n_samples, n_classes)

Целевые значения для многоклассовой классификации. Матрица индикаторов включает режим многометочной классификации.

**fit_paramsdict

Параметры, передаваемые методу estimator.fit каждого подчинённого оценивателя.

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

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

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

get_metadata_routing()[исходный код]

Возвращает настройки маршрутизации метаданных этого объекта.

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

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

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

Объект MetadataRouter, содержащий сведения о маршрутизации.

get_params(deep=True)[исходный код]

Возвращает параметры этого оценивателя.

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

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

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

Имена параметров и соответствующие им значения.

partial_fit(X, y, classes=None, **partial_fit_params)[исходный код]

Частично обучает нижележащие оцениватели.

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

Параметры:
X{массивоподобный объект, разреженная матрица} формы (n_samples, n_features)

Данные.

y{массивоподобный объект, разреженная матрица} формы (n_samples,) или (n_samples, n_classes)

Целевые значения для многоклассовой классификации. Матрица индикаторов включает режим многометочной классификации.

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. Подробнее см. в руководстве пользователя по маршрутизации метаданных.

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

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

predict(X)[исходный код]

Предсказывает значения для многоклассовой классификации с помощью нижележащих оценивателей.

Параметры:
X{массивоподобный объект, разреженная матрица} формы (n_samples, n_features)

Данные.

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

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

predict_proba(X)[исходный код]

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

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

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

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

Параметры:
X{массивоподобный объект, разреженная матрица} формы (n_samples, n_features)

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

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

Возвращает вероятность принадлежности образца к каждому классу модели; порядок классов соответствует self.classes_.

score(X, y, sample_weight=None)[исходный код]

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

В многометочной классификации используется точность по подмножествам. Это строгая метрика: для каждого образца необходимо правильно предсказать весь набор меток.

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

Тестовые образцы.

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

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

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

Веса образцов.

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

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

set_params(**params)[исходный код]

Задаёт параметры этого оценивателя.

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

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

Параметры оценивателя.

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

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

set_partial_fit_request(*, classes: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.

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

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

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

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

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.

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

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

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

Границы решений мультиномиальной логистической регрессии и логистической регрессии «один против остальных»

Разреженная многоклассовая логистическая регрессия на наборе данных 20newsgroups

Классификация с несколькими метками

Precision-Recall

Многоклассовая характеристика Receiver Operating Characteristic (ROC)

Обзор метаоценщиков для обучения многоклассовых моделей

Классификация с несколькими метками с использованием цепочки классификаторов

© 2007–2026 The scikit-learn developers
Licensed under the 3-clause BSD License.
https://scikit-learn.org/1.9/modules/generated/sklearn.multiclass.OneVsRestClassifier.html

Spec-Zone.ru

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