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’spairwiseтег равен False.- n_features_in_int
Количество признаков, замеченных во время fit.
Добавлено в версии 0.24.
- feature_names_in_ndarray формы (
n_features_in_,) Имена признаков, наблюдаемых во время fit. Определено только когда
Xимеет имена признаков, которые все являются строками.Добавлено в версии 1.0.
- estimators_список
Смотрите также
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
Обновленный объект.