OneVsRestClassifier
- classsklearn.multiclass.OneVsRestClassifier(estimator, *, n_jobs=None, verbose=0)[исходный код]
-
Многоклассовая стратегия «один против остальных» (OvR).
Эта стратегия, также известная как «один против всех», заключается в обучении одного классификатора для каждого класса. Каждый классификатор обучается отличать соответствующий класс от всех остальных. Помимо вычислительной эффективности (требуется всего
n_classesклассификаторов), одним из преимуществ этого подхода является его интерпретируемость. Поскольку каждый класс представлен только одним классификатором, информацию о классе можно получить, изучив соответствующий классификатор. Это наиболее распространённая стратегия многоклассовой классификации и хороший вариант по умолчанию.OneVsRestClassifier также можно использовать для многометочной классификации. Чтобы воспользоваться этой возможностью, при вызове
.fitпередайте для целевогоyматрицу индикаторов. Иными словами, целевые метки должны быть представлены в виде двумерной двоичной матрицы (0/1), где [i, j] == 1 означает наличие метки j у образца i. Для многометочной классификации этот оцениватель использует метод бинарной релевантности, при котором для каждой метки независимо обучается отдельный бинарный классификатор.Подробнее см. в руководстве пользователя.
- Параметры:
-
- estimatorобъект-оцениватель
-
Регрессор или классификатор, реализующий fit. Если передан классификатор, в первую очередь будет использоваться decision_function; если он недоступен, будет использоваться predict_proba. Если передан регрессор, используется predict.
- n_jobsint, по умолчанию=None
-
Количество заданий для вычислений:
n_classesзадач «один против остальных» вычисляются параллельно.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_логическое значение -
Является ли этот классификатор многометочным.
- n_features_in_int
-
Количество признаков, обнаруженных при вызове fit. Определён только в том случае, если нижележащий оцениватель предоставляет такой атрибут при обучении.
Добавлено в версии 0.24.
-
feature_names_in_ndarray формы (
n_features_in_,) -
Названия признаков, обнаруженных при вызове fit. Определён только в том случае, если нижележащий оцениватель предоставляет такой атрибут при обучении.
Добавлено в версии 1.0.
-
estimators_список оценивателей
См. также
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)[исходный код]
-
Функция принятия решения для 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)[исходный код]
-
Обучает нижележащие оцениватели.
- Параметры:
-
- 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()[исходный код]
-
Возвращает настройки маршрутизации метаданных этого объекта.
О том, как работает механизм маршрутизации, см. в руководстве пользователя.
Добавлено в версии 1.4.
- Возвращает:
-
- routingMetadataRouter
-
Объект
MetadataRouter, содержащий сведения о маршрутизации.
- get_params(deep=True)[исходный код]
-
Возвращает параметры этого оценивателя.
- Параметры:
-
- deepbool, по умолчанию=True
-
Если True, возвращает параметры этого оценивателя и содержащихся в нём объектов-оценивателей.
- Возвращает:
-
- paramsdict
-
Имена параметров и соответствующие им значения.
- partial_fit(X, y, classes=None, **partial_fit_params)[исходный код]
-
Частично обучает нижележащие оцениватели.
Используйте этот метод, если обучение на всех данных требует слишком много памяти. Данные можно передавать частями за несколько итераций.
- Параметры:
-
- X{массивоподобный объект, разреженная матрица} формы (n_samples, n_features)
-
Данные.
- y{массивоподобный объект, разреженная матрица} формы (n_samples,) или (n_samples, n_classes)
-
Целевые значения для многоклассовой классификации. Матрица индикаторов включает режим многометочной классификации.
- classesмассив формы (n_classes, )
-
Классы для всех вызовов partial_fit. Их можно получить с помощью
np.unique(y_all), где y_all — целевой вектор всего набора данных. Этот аргумент требуется только при первом вызове partial_fit; в последующих вызовах его можно опустить. - **partial_fit_paramsdict
-
Параметры, передаваемые методу
estimator.partial_fitкаждого подчинённого оценивателя.Добавлено в версии 1.4: Доступно только при условии
enable_metadata_routing=True. Подробнее см. в руководстве пользователя по маршрутизации метаданных.
- Возвращает:
-
- selfобъект
-
Экземпляр частично обученного оценивателя.
- predict(X)[исходный код]
-
Предсказывает значения для многоклассовой классификации с помощью нижележащих оценивателей.
- Параметры:
-
- X{массивоподобный объект, разреженная матрица} формы (n_samples, n_features)
-
Данные.
- Возвращает:
-
- y{массивоподобный объект, разреженная матрица} формы (n_samples,) или (n_samples, n_classes)
-
Предсказанные значения для многоклассовой классификации.
- predict_proba(X)[исходный код]
-
Оценки вероятностей.
Возвращаемые оценки для всех классов упорядочены по меткам классов.
Обратите внимание, что в многометочном случае у каждого образца может быть любое количество меток. Этот метод возвращает маргинальную вероятность того, что данный образец имеет рассматриваемую метку. Например, вполне допустимо, что две метки одновременно имеют вероятность 90% для одного и того же образца.
В случае многоклассовой классификации с одной меткой сумма элементов каждой строки возвращаемой матрицы равна 1.
- Параметры:
-
- X{массивоподобный объект, разреженная матрица} формы (n_samples, n_features)
-
Входные данные.
- Возвращает:
-
- Tмассивоподобный объект формы (n_samples, n_classes)
-
Возвращает вероятность принадлежности образца к каждому классу модели; порядок классов соответствует
self.classes_.
- score(X, y, sample_weight=None)[исходный код]
-
Возвращает точность на переданных данных и метках.
В многометочной классификации используется точность по подмножествам. Это строгая метрика: для каждого образца необходимо правильно предсказать весь набор меток.
- Параметры:
-
- Xмассивоподобный объект формы (n_samples, n_features)
-
Тестовые образцы.
- yмассивоподобный объект формы (n_samples,) или (n_samples, n_outputs)
-
Истинные метки для
X. - sample_weightмассивоподобный объект формы (n_samples,), по умолчанию=None
-
Веса образцов.
- Возвращает:
-
- scorefloat
-
Средняя точность
self.predict(X)относительноy.
- set_params(**params)[исходный код]
-
Задаёт параметры этого оценивателя.
Метод работает как с простыми оценивателями, так и со вложенными объектами (например,
Pipeline). Параметры последних имеют вид<component>__<parameter>, что позволяет обновлять каждый компонент вложенного объекта.- Параметры:
-
- **paramsdict
-
Параметры оценивателя.
- Возвращает:
-
- selfэкземпляр оценивателя
-
Экземпляр оценивателя.
- set_partial_fit_request(*, classes:bool|None|str='$UNCHANGED$') OneVsRestClassifier[исходный код]
-
Настраивает запрос на передачу метаданных методу
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$') OneVsRestClassifier[исходный код]
-
Настраивает запрос на передачу метаданных методу
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.OneVsRestClassifier.html