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

fit

Ajusta el binarizador de etiquetas.

fit_transform

Ajusta el binarizador de etiquetas y transforma las etiquetas multiclase en etiquetas binarias.

get_params

Obtiene los parámetros para este estimador.

inverse_transform

Transforma etiquetas binarias de nuevo en etiquetas multiclase.

set_params

Establece los parámetros de este estimador.

transform

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 cuando Y 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.