sklearn.multiclass.OneVsRestClassifier

class sklearn.multiclass.OneVsRestClassifier

Estrategia multiclase «uno contra el resto» (One-vs-the-Rest o OvR).

También conocida como «uno versus todos» (one-vs-all), esta estrategia consiste en ajustar un clasificador por clase. Para cada clasificador, la clase se compara con todas las demás. Además de su eficiencia computacional (sólo se necesitan clasificadores n_classes), una ventaja de este enfoque es su interpretabilidad. Dado que cada clase está representada por un solo clasificador, es posible obtener conocimientos sobre la clase inspeccionando su clasificador correspondiente. Esta es la estrategia más utilizada para la clasificación multiclase y es una elección por defecto justa.

OneVsRestClassifier también puede utilizarse para la clasificación de etiquetas múltiples. Para utilizar esta función, proporciona una matriz indicadora para el objetivo y cuando invoques a .fit. En otras palabras, las etiquetas del objetivo deben tener el formato de una matriz binaria 2D (0/1), donde [i, j] == 1 indica la presencia de la etiqueta j en la muestra i. Este estimador utiliza el método de relevancia binaria para realizar la clasificación multietiqueta, que implica el entrenamiento de un clasificador binario independientemente para cada etiqueta.

Más información en el Manual de usuario.

Parámetros
estimatorestimator object

Un objeto estimador que implementa fit y uno de decision_function o predict_proba.

n_jobsint, default=None

El número de trabajos a utilizar para el cómputo: los problemas n_classes de uno versus el resto (one-vs-rest) se calculan en paralelo.

None significa 1 a menos que esté en un contexto joblib.parallel_backend. -1 significa que se utilizan todos los procesadores. Consulta Glosario para más detalles.

Distinto en la versión v0.20: n_jobs predeterminado cambiado de 1 a None

Atributos
estimators_ : lista de estimadores de n_classeslista de

Estimadores usados para predicciones.

coef_ndarray de forma (1, n_features,) o (n_classes, n_features)

Coeficiente de las características en la función de decisión. Este atributo sólo existe si los estimators_ definen coef_.

Obsoleto desde la versión 0.24: Este atributo está obsoleto en 0.24 y se eliminará en 1.1 (cambio de nombre de 0.26). Si utiliza este atributo en RFE o SelectFromModel, puede pasar un invocable al parámetro importance_getter que extraiga las importaciones de características de estimators_.

intercept_ndarray de forma (1, 1) o (n_classes, 1)

Si y es binario, la forma es (1, 1) sino (n_classes, 1) Este atributo sólo existe si estimators_ define intercept_.

Obsoleto desde la versión 0.24: Este atributo está obsoleto en 0.24 y se eliminará en 1.1 (cambio de nombre de 0.26). Si utiliza este atributo en RFE o SelectFromModel, puede pasar un invocable al parámetro importance_getter que extraiga las importaciones de características de estimators_.

classes_ : arreglo, forma = [n_classes]arreglo, forma = [

Etiquetas de clase.

n_classes_int

Número de clases.

label_binarizer_Objeto LabelBinarizer

Objeto usado para transformar etiquetas multiclase en etiquetas binarias y viceversa.

multilabel_boolean

Indica si se trata de un clasificador multietiqueta

Ver también

sklearn.multioutput.MultiOutputClassifier

Forma alternativa de ampliar un estimador para la clasificación multietiqueta.

sklearn.preprocessing.MultiLabelBinarizer

Transforma un iterable de iterables a una matriz de indicadores binarios.

Ejemplos

>>> 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])

Métodos

decision_function

Devuelve la distancia de cada muestra al límite de decisión para cada clase.

fit

Ajustar estimadores subyacentes.

get_params

Obtiene los parámetros de este estimador.

partial_fit

Estimadores subyacentes ajustados parcialmente

predict

Predecir objetivos multiclase utilizando estimadores subyacentes.

predict_proba

Estimaciones de probabilidad.

score

Devuelve la precisión media en los datos de prueba y las etiquetas dados.

set_params

Establece los parámetros de este estimador.

decision_function()

Devuelve la distancia de cada muestra al límite de decisión para cada clase. Sólo puede utilizarse con estimadores que implementen el método decision_function.

Parámetros
Xarray-like de forma (n_samples, n_features)
Devuelve
Tarray-like de forma (n_samples, n_classes) o (n_samples,) para clasificación binaria.

Distinto en la versión 0.19: la forma de la salida se ha cambiado a (n_samples,) para ajustarse a las convenciones de scikit-learn para la clasificación binaria.

fit()

Ajustar estimadores subyacentes.

Parámetros
X(sparse) array-like de forma (n_samples, n_features)

Datos.

y(sparse) array-like de forma (n_samples,) o (n_samples, n_classes)

Objetivos multiclase. Una matriz indicadora activa la clasificación multietiqueta.

Devuelve
self
get_params()

Obtiene los parámetros de este estimador.

Parámetros
deepbool, default=True

Si es True, devolverá los parámetros para este estimador y los sub objetos contenidos que son estimadores.

Devuelve
paramsdict

Nombres de parámetros mapeados a sus valores.

property multilabel_

Indica si se trata de un clasificador multietiqueta

partial_fit()

Estimadores subyacentes ajustados parcialmente

Debe usarse cuando la memoria es ineficiente para entrenar todos los datos. Se pueden pasar trozos de datos en varias iteraciones.

Parámetros
X(sparse) array-like de forma (n_samples, n_features)

Datos.

y(sparse) array-like de forma (n_samples,) o (n_samples, n_classes)

Objetivos multiclase. Una matriz indicadora activa la clasificación multietiqueta.

classesarreglo, forma (n_classes, )

Clases a través de todas las llamadas a partial_fit. Puede obtenerse mediante np.unique(y_all), donde y_all es el vector objetivo del conjunto de datos completo. Este argumento sólo es necesario en la primera invocación de partial_fit y puede omitirse en las siguientes.

Devuelve
self
predict()

Predecir objetivos multiclase utilizando estimadores subyacentes.

Parámetros
X(sparse) array-like de forma (n_samples, n_features)

Datos.

Devuelve
y(sparse) array-like de forma (n_samples,) o (n_samples, n_classes)

Objetivos multiclase predichos.

predict_proba()

Estimaciones de probabilidad.

Las estimaciones devueltas para todas las clases están ordenadas por la etiqueta de las clases.

Ten en cuenta que, en el caso de las etiquetas múltiples, cada muestra puede tener cualquier número de etiquetas. Esto devuelve la probabilidad marginal de que la muestra dada tenga la etiqueta en cuestión. Por ejemplo, es totalmente coherente que dos etiquetas tengan ambas una probabilidad del 90% de aplicarse a una muestra determinada.

En el caso de una etiqueta multiclase, las filas de la matriz devuelta suman 1.

Parámetros
Xarray-like de forma (n_samples, n_features)
Devuelve
T(sparse) array-like de forma (n_samples, n_classes)

Devuelve la probabilidad de la muestra para cada clase en el modelo, donde las clases se ordenan como están en self.classes_.

score()

Devuelve la precisión media en los datos de prueba y las etiquetas dados.

En la clasificación multietiqueta, se trata de la precisión del subconjunto, que es una métrica rigurosa, ya que se requiere para cada muestra que cada conjunto de etiquetas sea predicho correctamente.

Parámetros
Xarray-like de forma (n_samples, n_features)

Muestras de prueba.

yarray-like de forma (n_samples,) o (n_samples, n_outputs)

Etiquetas True para X.

sample_weightarray-like de forma (n_samples,), default=None

Ponderaciones de la muestra.

Devuelve
scorefloat

Precisión media de self.predict(X) con respecto a y.

set_params()

Establece los parámetros de este estimador.

El método funciona tanto con estimadores simples como en objetos anidados (como Pipeline). Estos últimos tienen parámetros de la forma <component>__<parameter> para que sea posible actualizar cada componente de un objeto anidado.

Parámetros
**paramsdict

Parámetros del estimador.

Devuelve
selfinstancia de estimador

Instancia de estimador.

Ejemplos usando sklearn.multiclass.OneVsRestClassifier