КлассификаторОдинПротивОстальных
- классsklearn.multiclass.OneVsOneClassifier(estimator, *, n_jobs=None)[source]
-
Стратегия «один против одного» для многоклассовой классификации.
Эта стратегия заключается в подгонке одного классификатора для каждой пары классов. Во время предсказания выбирается класс, получивший наибольшее количество голосов. Поскольку для неё требуется подгонять
n_classes * (n_classes - 1) / 2классификаторов, этот метод обычно медленнее, чем метод «один против всех», из-за своей сложности O(n_classes^2). Однако этот метод может быть предпочтительнее для алгоритмов, таких как алгоритмы с ядром, которые плохо масштабируются сn_samples. Это связано с тем, что каждая отдельная задача обучения затрагивает только небольшое подмножество данных, в то время как при методе «один против всех» весь набор данных используетсяn_classesраз.Подробнее см. в Руководстве пользователя.
- Параметры:
-
- estimatorобъект оценщика
-
Регрессор или классификатор, реализующий fit. Если передан классификатор, в приоритете используется decision_function, а в случае отсутствия — predict_proba. Если передан регрессор, используется predict.
- n_jobsint, по умолчанию None
-
Количество задач для вычисления: задачи
n_classes * ( n_classes - 1) / 2OVO вычисляются параллельно.Noneозначает 1, за исключением контекстаjoblib.parallel_backend.-1означает использование всех процессоров. Подробнее см. Словарь.
- Атрибуты:
-
-
estimators_список из
n_classes * (n_classes - 1) / 2оценщиков -
Оценщики, используемые для предсказаний.
- classes_массив numpy формы [n_classes]
-
Массив, содержащий метки.
-
n_classes_int -
Количество классов.
-
pairwise_indices_список, длина =
len(estimators_), илиNone -
Индексы выборок, используемых при обучении оценщиков.
None, когда уestimatorметкаpairwiseравна False. - n_features_in_int
-
Количество признаков, увиденных во время fit.
Добавлена в версии 0.24.
-
feature_names_in_массив numpy формы (
n_features_in_,) -
Имена признаков, увиденные во время fit. Определены только тогда, когда у
Xесть имена признаков, все из которых являются строками.Добавлена в версии 1.0.
-
estimators_список из
См. также
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)[source]
-
Функция принятия решения для 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)[source]
-
Обучение базовых оценщиков.
- Параметры:
-
- X{массив-подобный, разреженная матрица} формы (n_samples, n_features)
-
Данные.
- yмассив-подобный формы (n_samples,)
-
Метки многоклассовой задачи.
- **fit_paramsdict
-
Параметры, передаваемые методу
estimator.fitкаждого под-оценщика.Добавлена в версии 1.4: Доступна только если
enable_metadata_routing=True. См. Руководство пользователя по маршрутизации метаданных для получения дополнительных сведений.
- Возвращает:
-
- selfобъект
-
Обученный базовый оценщик.
- get_metadata_routing()[source]
-
Получить маршрутизацию метаданных этого объекта.
Пожалуйста, ознакомьтесь с Руководством пользователя по тому, как работает механизм маршрутизации.
Добавлена в версии 1.4.
- Возвращает:
-
- routingMetadataRouter
-
MetadataRouterописывающий информацию о маршрутизации.
- get_params(deep=True)[source]
-
Получить параметры этого оценщика.
- Параметры:
-
- deepbool, по умолчанию True
-
Если True, вернёт параметры этого оценщика и вложенных под-объектов, которые являются оценщиками.
- Возвращает:
-
- paramsdict
-
Имена параметров, сопоставленные со значениями.
- свойствоn_classes_
-
Количество классов.
- partial_fit(X, y, classes=None, **partial_fit_params)[source]
-
Частичная подгонка базовых оценок.
Должно использоваться, когда обучение на всех данных неэффективно по памяти. Части данных могут передаваться в несколько итераций, где первый вызов должен содержать массив всех целевых переменных.
- Параметры:
-
- X{array-like, sparse matrix) of shape (n_samples, n_features)
-
Данные.
- yarray-like of shape (n_samples,)
-
Многоклассовые целевые значения.
- 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.
Это реализовано как
argmax(decision_function(X), axis=1), которое вернёт метку класса с наибольшим количеством голосов от оценок, предсказывающих результат решения для каждой пары возможных классов.- Параметры:
-
- X{array-like, sparse matrix} of shape (n_samples, n_features)
-
Данные.
- Возвращает:
-
- ynumpy array of shape [n_samples]
-
Предсказанные многоклассовые целевые значения.
- 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$') OneVsOneClassifier[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. В противном случае он не оказывает никакого влияния.- Параметры:
-
- classesstr, True, False, or None, default=sklearn.utils.metadata_routing.UNCHANGED
-
Маршрутизация метаданных для параметра
classesвpartial_fit.
- Возвращает:
-
- selfobject
-
Обновленный объект.
-
- set_score_request(*, sample_weight:bool|None|str='$UNCHANGED$') OneVsOneClassifier[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
-
Обновлённый объект.
-
Примеры галереи
© 2007–2025 The scikit-learn developers
Licensed under the 3-clause BSD License.
https://scikit-learn.org/1.6/modules/generated/sklearn.multiclass.OneVsOneClassifier.html