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,
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 cadabase_estimator
en cada iteración de encadenamiento. Por lo tanto, sólo se utiliza cuandobase_estimator
expone unrandom_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
Evaluar la decision_function de los modelos en la cadena.
Ajusta el modelo a la matriz de datos X y a los objetivos Y.
Obtiene los parámetros para este estimador.
Predecir sobre la matriz de datos X utilizando el modelo ClassifierChain.
Predecir estimaciones de probabilidad.
Devuelve la precisión media en los datos y etiquetas de prueba dados.
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 ay
.
- 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.