Spec-Zone.ru › scikit-learn

OneVsOneClassifier

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

Стратегия классификации «один против одного» для нескольких классов.

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

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

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

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

n_jobsцелое число, по умолчанию None

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

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

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

Оцениватели, используемые для прогнозирования.

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

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

n_classes_целое число

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

pairwise_indices_список длины len(estimators_) или None

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

n_features_in_целое число

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

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

feature_names_in_ndarray формы (n_features_in_,)

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

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

См. также

OneVsRestClassifier

Стратегия классификации «один против всех» для нескольких классов.

OutputCodeClassifier

Стратегия классификации «кодирование выходных данных» для нескольких классов с коррекцией ошибок.

Примеры

>>> 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.

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

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

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

Возвращает:
Yмассивоподобный объект формы (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,)

Целевые значения для нескольких классов.

**fit_paramsсловарь

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

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

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

Обученный базовый оцениватель.

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

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

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

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

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

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

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

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

Параметры:
deepлогическое значение, по умолчанию True

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

Возвращает:
paramsсловарь

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

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

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

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

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

Данные.

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

Целевые значения для нескольких классов.

classesмассив, форма (n_classes, )

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

**partial_fit_paramsсловарь

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

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

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

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

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

Оценивает наиболее вероятную метку класса для каждого образца в X.

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

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

Данные.

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

Предсказанные целевые значения для нескольких классов.

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

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

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

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

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

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

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

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

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

Возвращает:
scoreчисло с плавающей точкой

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

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

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

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

Параметры:
**paramsсловарь

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

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

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

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

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

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

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

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

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.

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

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

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

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

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

Spec-Zone.ru

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