sklearn.preprocessing
.LabelBinarizer¶
- class sklearn.preprocessing.LabelBinarizer¶
Binariza las etiquetas de una forma uno contra todos (one-vs-all).
Varios algoritmos de regresión y clasificación binaria están disponibles en scikit-learn. Una forma sencilla de extender estos algoritmos al caso de la clasificación multiclase es utilizar el llamado esquema de uno contra todos.
En el momento del aprendizaje, esto consiste simplemente en aprender un regresor o clasificador binario por clase. Para ello, hay que convertir las etiquetas multiclase en etiquetas binarias (pertenece o no pertenece a la clase). LabelBinarizer facilita este proceso con el método de transformación.
En el momento de la predicción, se asigna la clase para la que el modelo correspondiente dio la mayor confianza. LabelBinarizer lo facilita con el método inverse_transform.
Lee más en el Manual de usuario.
- Parámetros
- neg_labelint, default=0
Valor con el que se deben codificar las etiquetas negativas.
- pos_labelint, default=1
Valor con el que se deben codificar las etiquetas positivas.
- sparse_outputbool, default=False
True si se desea que el arreglo devuelto por la transformación esté en formato CSR disperso.
- Atributos
- classes_ndarray de forma (n_classes,)
Contiene la etiqueta para cada clase.
- y_type_str
Representa el tipo de los datos objetivo evaluados por utils.multiclass.type_of_target. Los tipos posibles son “continuous”, “continuous-multioutput”, “binary”, “multiclass”, “multiclass-multioutput”, “multilabel-indicator” y “unknown”.
- sparse_input_bool
True si los datos de entrada a transformar se dan como una matriz dispersa, False en caso contrario.
Ver también
label_binarize
Función para realizar la operación de transformación de LabelBinarizer con clases fijas.
OneHotEncoder
Codifica las características categóricas utilizando un esquema one-hot también conocido como uno de K (one-of-K).
Ejemplos
>>> from sklearn import preprocessing >>> lb = preprocessing.LabelBinarizer() >>> lb.fit([1, 2, 6, 4, 2]) LabelBinarizer() >>> lb.classes_ array([1, 2, 4, 6]) >>> lb.transform([1, 6]) array([[1, 0, 0, 0], [0, 0, 0, 1]])
Los objetivos binarios se transforman en un vector columna
>>> lb = preprocessing.LabelBinarizer() >>> lb.fit_transform(['yes', 'no', 'no', 'yes']) array([[1], [0], [0], [1]])
Pasando una matriz 2D para la clasificación multietiqueta
>>> import numpy as np >>> lb.fit(np.array([[0, 1, 1], [1, 0, 0]])) LabelBinarizer() >>> lb.classes_ array([0, 1, 2]) >>> lb.transform([0, 1, 2, 1]) array([[1, 0, 0], [0, 1, 0], [0, 0, 1], [0, 1, 0]])
Métodos
Ajusta el binarizador de etiquetas.
Ajusta el binarizador de etiquetas y transforma las etiquetas multiclase en etiquetas binarias.
Obtiene los parámetros para este estimador.
Transforma etiquetas binarias de nuevo en etiquetas multiclase.
Establece los parámetros de este estimador.
Transforma etiquetas de multiclase en etiquetas binarias.
- fit()¶
Ajusta el binarizador de etiquetas.
- Parámetros
- yndarray de forma (n_samples,) o (n_samples, n_classes)
Valores objetivo. La matriz 2-d sólo debe contener 0 y 1, representa la clasificación multietiqueta.
- Devuelve
- selfdevuelve una instancia de sí misma.
- fit_transform()¶
Ajusta el binarizador de etiquetas y transforma las etiquetas multiclase en etiquetas binarias.
La salida de la transformación se denomina a veces esquema de codificación 1-de-K.
- Parámetros
- y{ndarray, sparse matrix} de forma (n_samples,) o (n_samples, n_classes)
Valores objetivo. La matriz 2-d sólo debe contener 0 y 1, representa la clasificación multietiqueta. La matriz dispersa puede ser CSR, CSC, COO, DOK o LIL.
- Devuelve
- Y{ndarray, sparse matrix} de forma (n_samples, n_classes)
La forma será (n_samples, 1) para los problemas binarios. La matriz dispersa tendrá el formato CSR.
- 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 subobjetos contenidos que son estimadores.
- Devuelve
- paramsdict
Los nombres de los parámetros mapeados a sus valores.
- inverse_transform()¶
Transforma etiquetas binarias de nuevo en etiquetas multiclase.
- Parámetros
- Y{ndarray, sparse matrix} de forma (n_samples, n_classes)
Valores objetivo. Todas las matrices dispersas se convierten en CSR antes de la transformación inversa.
- thresholdfloat, default=None
Umbral utilizado en los casos binarios y multietiqueta.
Utiliza 0 cuando
Y
contenga la salida de decision_function (clasificador). Utiliza 0,5 cuandoY
contenga la salida de predict_proba.Si es None, se asume que el umbral está a medio camino entre neg_label y pos_label.
- Devuelve
- y{ndarray, sparse matrix} de forma (n_samples,)
Valores objetivo. La matriz dispersa tendrá el formato CSR.
Notas
En el caso de que las etiquetas binarias sean fraccionarias (probabilísticas), inverse_transform elige la clase con el mayor valor. Normalmente, esto permite utilizar la salida del método decision_function de un modelo lineal directamente como entrada de inverse_transform.
- set_params()¶
Establece los parámetros de este estimador.
El método funciona tanto en 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 del estimador.
- transform()¶
Transforma etiquetas de multiclase en etiquetas binarias.
Algunos autores denominan a la salida de la transformación el esquema de codificación 1-de-K.
- Parámetros
- y{array, sparse matrix} de forma (n_samples,) o (n_samples, n_classes)
Valores objetivo. La matriz 2-d sólo debe contener 0 y 1, representa la clasificación multietiqueta. La matriz dispersa puede ser CSR, CSC, COO, DOK o LIL.
- Devuelve
- Y{ndarray, sparse matrix} de forma (n_samples, n_classes)
La forma será (n_samples, 1) para los problemas binarios. La matriz dispersa tendrá el formato CSR.