sklearn.multiclass.OneVsOneClassifier

class sklearn.multiclass.OneVsOneClassifier

Estrategia multiclase uno contra uno (one-vs-one)

Esta estrategia consiste en ajustar un clasificador por cada par de clases. En el momento de la predicción, se selecciona la clase que ha recibido más votos. Dado que requiere ajustar clasificadores n_classes * (n_classes - 1) / 2, este método suele ser más lento que el de uno-vs-el-resto (one-vs-the-rest), debido a su complejidad O(n_classes^2). Sin embargo, este método puede ser ventajoso para algoritmos como los de núcleo que no escalan bien con n_samples. Esto se debe a que cada problema de aprendizaje individual sólo implica un pequeño subconjunto de los datos, mientras que, con uno-vs-el-resto, el conjunto de datos completo se utiliza n_classes veces.

Más información en 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álculo: los problemas n_classes * ( n_classes - 1) / 2 OVO 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.

Atributos
estimators_ : lista de n_classes * (n_classes - 1) / 2 estimadoreslista de

Estimadores usados para predicciones.

classes_arreglo de numpy de forma [n_classes]

Arreglo que contiene etiquetas.

n_classes_int

Número de clases

pairwise_indices_ : list, length = len(estimators_), o Nonelist, length = len(estimators_), or None

Índices de las muestras utilizadas en el entrenamiento de los estimadores. None cuando la etiqueta pairwise de estimator es False.

Obsoleto desde la versión 0.24: El atributo _pairwise queda obsoleto en 0.24. A partir de la versión 1.1 (cambio de nombre de la versión 0.25), pairwise_indices_ utilizará la etiqueta de estimación por pares en su lugar.

Ejemplos

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

Métodos

decision_function

Función de decisión para OneVsOneClassifier.

fit

Ajustar estimadores subyacentes.

get_params

Obtiene los parámetros de este estimador.

partial_fit

Estimadores subyacentes ajustados parcialmente

predict

Estima la mejor etiqueta de clase para cada muestra en X.

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

Función de decisión para OneVsOneClassifier.

Los valores de decisión de las muestras se calculan agregando la suma normalizada de los niveles de confianza de la clasificación por pares a los votos, con el fin de desambiguar entre los valores de decisión cuando los votos de todas las clases son iguales y se produce un empate.

Parámetros
Xarray-like de forma (n_samples_X, n_features)
Devuelve
Yarray-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.

yarray-like de forma (n_samples,)

Objetivos multiclase.

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 subobjetos contenidos que son estimadores.

Devuelve
paramsdict

Nombres de parámetros mapeados a sus valores.

partial_fit()

Estimadores subyacentes ajustados parcialmente

Se debe utilizar cuando la memoria es ineficiente para entrenar todos los datos. Se pueden pasar trozos de datos en varias iteraciones, donde la primera invocación debe tener un arreglo de todas las variables objetivo.

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

Datos.

yarray-like de forma (n_samples,)

Objetivos multiclase.

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

Estima la mejor etiqueta de clase para cada muestra en X.

Esto se implementa como argmax(decision_function(X), axis=1) que devolverá la etiqueta de la clase con más votos por los estimadores que predicen el resultado de una decisión para cada par de clases posibles.

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

Datos.

Devuelve
yarreglo de numpy de forma [n_samples]

Predicción de objetivos multiclase.

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_X, 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 del estimador

Instancia de estimador.