OneVsOneClassifier#

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

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

Эта стратегия заключается в обучении одного классификатора для каждой пары классов. При прогнозировании выбирается класс, получивший наибольшее количество голосов. Поскольку требуется обучить n_classes * (n_classes - 1) / 2 классификаторов, этот метод обычно медленнее, чем one-vs-the-rest, из-за его сложности O(n_classes^2). Однако этот метод может быть преимуществом для алгоритмов, таких как ядерные алгоритмы, которые плохо масштабируются с n_samples. Это связано с тем, что каждая отдельная задача обучения включает только небольшое подмножество данных, тогда как при подходе «один против всех» используется полный набор данных n_classes раз.

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

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

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

n_jobsint, default=None

Количество заданий для вычисления: n_classes * ( n_classes - 1) / 2 Задачи OVO вычисляются параллельно.

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

Атрибуты:
estimators_список n_classes * (n_classes - 1) / 2 оценщики

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

classes_массив numpy формы [n_classes]

Массив, содержащий метки.

n_classes_int

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

pairwise_indices_list, length = len(estimators_), или None

Индексы выборок, использованных при обучении оценщиков. None когда estimator’s pairwise тег равен False.

n_features_in_int

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

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

feature_names_in_ndarray формы (n_features_in_,)

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

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

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

OneVsRestClassifier

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

OutputCodeClassifier

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

Примеры

>>> from sklearn.datasets import load_iris
>>> from sklearn.model_selection import train_test_split
>>> from sklearn.multiclass import OneVsOneClassifier
>>> from sklearn.svm import LinearSVC
>>> X, y = load_iris(return_X_y=True)
>>> X_train, X_test, y_train, y_test = train_test_split(
...     X, y, test_size=0.33, shuffle=True, random_state=0)
>>> clf = OneVsOneClassifier(
...     LinearSVC(random_state=0)).fit(X_train, y_train)
>>> clf.predict(X_test[:10])
array([2, 1, 0, 2, 0, 2, 0, 1, 1, 1])
decision_function(X)[источник]#

Функция принятия решений для OneVsOneClassifier.

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

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

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

Возвращает:
Yarray-like формы (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)

Данные.

yarray-like формы (n_samples,)

Многоклассовые целевые переменные.

**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)

Данные.

yarray-like формы (n_samples,)

Многоклассовые целевые переменные.

классымассив, форма (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.

Это реализовано как argmax(decision_function(X), axis=1) который будет возвращать метку класса с наибольшим количеством голосов от оценщиков, предсказывающих исход решения для каждой возможной пары классов.

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

Данные.

Возвращает:
yмассив numpy формы [n_samples]

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

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$') OneVsOneClassifier[источник]#

Настроить, следует ли запрашивать передачу метаданных в 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$') OneVsOneClassifier[источник]#

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

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