Implementation:Scikit learn Scikit learn OneVsRestClassifier
| Knowledge Sources | |
|---|---|
| Domains | Machine Learning, Classification, Meta-Estimators |
| Last Updated | 2026-02-08 15:00 GMT |
Overview
Concrete meta-estimator for multiclass and multilabel classification strategies provided by scikit-learn.
Description
The multiclass module provides meta-estimators that extend binary classifiers to handle multiclass and multilabel classification. OneVsRestClassifier fits one binary classifier per class, OneVsOneClassifier fits one classifier per pair of classes, and OutputCodeClassifier uses error-correcting output codes. These meta-estimators support predict_proba, decision_function, and metadata routing.
Usage
Use these meta-estimators when you want to apply custom multiclass strategies, particularly when the base classifier is binary-only. For most cases scikit-learn classifiers handle multiclass natively, but these are useful for experimentation or specialized strategies.
Code Reference
Source Location
- Repository: scikit-learn
- File: sklearn/multiclass.py
Signature
class OneVsRestClassifier(
MultiOutputMixin, ClassifierMixin, MetaEstimatorMixin, BaseEstimator
):
def __init__(self, estimator, *, n_jobs=None, verbose=0):
...
def fit(self, X, y, **fit_params):
...
def predict(self, X):
...
def predict_proba(self, X):
...
class OneVsOneClassifier(MetaEstimatorMixin, ClassifierMixin, BaseEstimator):
def __init__(self, estimator, *, n_jobs=None):
...
class OutputCodeClassifier(MetaEstimatorMixin, ClassifierMixin, BaseEstimator):
def __init__(self, estimator, *, code_size=1.5, random_state=None, n_jobs=None):
...
Import
from sklearn.multiclass import OneVsRestClassifier, OneVsOneClassifier, OutputCodeClassifier
I/O Contract
Inputs
| Name | Type | Required | Description |
|---|---|---|---|
| estimator | estimator instance | Yes | Base classifier (binary or multiclass) |
| X | array-like of shape (n_samples, n_features) | Yes | Training input samples |
| y | array-like of shape (n_samples,) | Yes | Target values (multiclass or multilabel) |
| n_jobs | int | No | Number of parallel jobs for fitting |
Outputs
| Name | Type | Description |
|---|---|---|
| predictions | ndarray of shape (n_samples,) | Predicted class labels |
| probabilities | ndarray of shape (n_samples, n_classes) | Class probability estimates (if available) |
Usage Examples
Basic Usage
from sklearn.multiclass import OneVsRestClassifier
from sklearn.svm import SVC
from sklearn.datasets import make_classification
X, y = make_classification(n_classes=3, n_informative=3, random_state=42)
clf = OneVsRestClassifier(SVC()).fit(X, y)
predictions = clf.predict(X)
print(predictions[:5])