Spec-Zone.ru › scikit-learn

Классификатор Один-против-Остальных

classsklearn.multiclass.OneVsRestClassifier(estimator, *, n_jobs=None, verbose=0)[source]

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

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

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

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

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

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

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

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

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_boolean

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

n_features_in_int

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

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

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

Названия признаков, увиденные во время метода fit. Определено только в том случае, если соответствующий атрибут доступен в базовом оценщике при вызове метода 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)[source]

Функция принятия решения для 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)[source]

Подгонка базовых оценщиков.

Параметры:
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()[source]

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

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

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

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

A MetadataRouter encapsulating routing information.

get_params(deep=True)[source]

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

Параметры:
deepbool, default=True

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

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

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

propertymultilabel_

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

propertyn_classes_

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

partial_fit(X, y, classes=None, **partial_fit_params)[source]

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

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

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

Данные.

y{array-like, sparse matrix} of shape (n_samples,) or (n_samples, n_classes)

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

classesarray, shape (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)[source]

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

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

Данные.

Возвращает:
y{array-like, sparse matrix} of shape (n_samples,) or (n_samples, n_classes)

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

predict_proba(X)[source]

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

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

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

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

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

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

Возвращает:
Tarray-like of shape (n_samples, n_classes)

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

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

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

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

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

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

yarray-like of shape (n_samples,) or (n_samples, n_outputs)

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

sample_weightarray-like of shape (n_samples,), default=None

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

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

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

set_params(**params)[source]

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

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

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

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

Возвращает:
selfestimator instance

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

set_partial_fit_request(*, classes:bool|None|str='$UNCHANGED$') → OneVsRestClassifier[source]

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

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

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

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

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

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

Примечание

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

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

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

Returns:
selfobject

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

set_score_request(*, sample_weight:bool|None|str='$UNCHANGED$') → OneVsRestClassifier[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

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

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

График вероятности классификации

Границы решений для многономиальной и однопротивоположной логистической регрессии

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

Многомечевая классификация

Многоклассовая кривая ROC

Точность-полнота

Обзор мета-оценщиков для многоклассовой классификации

Многомечевая классификация с помощью цепочки классификаторов

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

Spec-Zone.ru

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