sklearn.multioutput.ClassifierChain

class sklearn.multioutput.ClassifierChain

Un modelo multietiqueta que ordena los clasificadores binarios en una cadena (chain).

Cada modelo realiza una predicción en el orden especificado por la cadena utilizando todas las características disponibles proporcionadas al modelo, más las predicciones de los modelos que están antes en la cadena.

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

Nuevo en la versión 0.19.

Parámetros
base_estimatorestimador

El estimador base a partir del cual se construye la cadena de clasificación.

orderarray-like de forma (n_outputs,) o “random “, default=None

Si es None, el orden será determinado por el orden de las columnas en la matriz de etiquetas Y.:

order = [0, 1, 2, ..., Y.shape[1] - 1]

El orden de la cadena puede establecerse explícitamente proporcionando una lista de enteros. Por ejemplo, para una cadena de longitud 5.:

order = [1, 3, 2, 4, 0]

significa que el primer modelo de la cadena hará predicciones para la columna 1 de la matriz Y, el segundo modelo hará predicciones para la columna 3, etc.

Si el orden es “random” se usará un orden aleatorio.

cventero, generador de validación cruzada o un iterable, default=None

Determina si se utilizan predicciones validadas de forma cruzada o etiquetas verdaderas para los resultados de los estimadores anteriores en la cadena. Las entradas posibles para cv son:

  • None, para usar etiquetas verdaderas cuando se haga el ajuste,

  • entero, para especificar el número de pliegues en un (Stratified)KFold,

  • separador de CV,

  • Un iterable que produce divisiones (train, test) como arreglos de índices.

random_stateentero, instancia de RandomState o None, opcional (default=None)

Si order='random', determina la generación de números aleatorios para el orden de la cadena. Además, controla la semilla aleatoria dada en cada base_estimator en cada iteración de encadenamiento. Por lo tanto, sólo se utiliza cuando base_estimator expone un random_state. Pasa un int para una salida reproducible a través de múltiples llamadas a la función. Ver Glosario.

Atributos
classes_lista

Una lista de matrices de longitud len(estimators_) que contiene las etiquetas de clase de cada estimador de la cadena.

estimators_lista

Una lista de clones de base_estimator.

order_lista

El orden de las etiquetas en la cadena de clasificadores.

Ver también

RegressorChain

Equivalente para la regresión.

MultioutputClassifier

Clasifica cada salida de forma independiente en lugar de encadenarla.

Referencias

Jesse Read, Bernhard Pfahringer, Geoff Holmes, Eibe Frank, «Classifier Chains for Multi-label Classification», 2009.

Ejemplos

>>> from sklearn.datasets import make_multilabel_classification
>>> from sklearn.linear_model import LogisticRegression
>>> from sklearn.model_selection import train_test_split
>>> from sklearn.multioutput import ClassifierChain
>>> X, Y = make_multilabel_classification(
...    n_samples=12, n_classes=3, random_state=0
... )
>>> X_train, X_test, Y_train, Y_test = train_test_split(
...    X, Y, random_state=0
... )
>>> base_lr = LogisticRegression(solver='lbfgs', random_state=0)
>>> chain = ClassifierChain(base_lr, order='random', random_state=0)
>>> chain.fit(X_train, Y_train).predict(X_test)
array([[1., 1., 0.],
       [1., 0., 0.],
       [0., 1., 0.]])
>>> chain.predict_proba(X_test)
array([[0.8387..., 0.9431..., 0.4576...],
       [0.8878..., 0.3684..., 0.2640...],
       [0.0321..., 0.9935..., 0.0625...]])

Métodos

decision_function

Evaluar la decision_function de los modelos en la cadena.

fit

Ajusta el modelo a la matriz de datos X y a los objetivos Y.

get_params

Obtiene los parámetros para este estimador.

predict

Predecir sobre la matriz de datos X utilizando el modelo ClassifierChain.

predict_proba

Predecir estimaciones de probabilidad.

score

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

set_params

Establece los parámetros de este estimador.

decision_function()

Evaluar la decision_function de los modelos en la cadena.

Parámetros
Xarray-like de forma (n_samples_X, n_features)
Devuelve
Y_decisionarray-like de forma (n_samples, n_classes)

Devuelve la función de decisión de la muestra para cada modelo de la cadena.

fit()

Ajusta el modelo a la matriz de datos X y a los objetivos Y.

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

Los datos de entrada.

Yarray-like de forma (n_samples, n_classes)

Los valores objetivo.

Devuelve
selfobject
get_params()

Obtiene los parámetros para 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.

predict()

Predecir sobre la matriz de datos X utilizando el modelo ClassifierChain.

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

Los datos de entrada.

Devuelve
Y_predarray-like de forma (n_samples, n_classes)

Los valores predichos.

predict_proba()

Predecir estimaciones de probabilidad.

Parámetros
X{array-like, sparse matrix} de forma (n_samples, n_features)
Devuelve
Y_probarray-like de forma (n_samples, n_classes)
score()

Devuelve la precisión media en los datos y etiquetas de prueba 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,) or (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.

Ejemplos usando sklearn.multioutput.ClassifierChain