sklearn.compose.ColumnTransformer

class sklearn.compose.ColumnTransformer

Aplica transformadores a las columnas de un arreglo o DataFrame de pandas.

Este estimador permite transformar por separado diferentes columnas o subconjuntos de columnas de la entrada y las características generadas por cada transformador se concatenarán para formar un único espacio de características. Esto es útil para datos heterogéneos o columnares, para combinar varios mecanismos de extracción de características o transformaciones en un solo transformador.

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

Nuevo en la versión 0.20.

Parámetros
transformerslista de tuplas

Lista de tuplas (nombre, transformador, columnas) que especifican los objetos transformadores que se aplicarán a subconjuntos de los datos.

nombrestr

Al igual que en Pipeline y FeatureUnion, esto permite que el transformador y sus parámetros se establezcan usando set_params y se encuentren en la búsqueda en cuadrícula.

transformador{“drop”, “passthrough”} o estimador

El estimador debe soportar fit y transform. También se aceptan las cadenas especiales “drop” y “passthrough”, para indicar que se eliminen las columnas o que se pasen sin transformar, respectivamente.

columnascadena, array-like de cadenas, entero, array-like de enteros, array-like de booleanos, slice o invocable

Indexa los datos en su segundo eje. Los enteros se interpretan como columnas posicionales, mientras que las cadenas pueden hacer referencia a las columnas del DataFrame por su nombre. Se debe utilizar una cadena escalar o un int cuando transformer espera que X sea un array-like 1d (vector), de lo contrario se pasará un arreglo 2d al transformador. A un invocable se le pasan los datos de entrada X y puede devolver cualquiera de los anteriores. Para seleccionar varias columnas por nombre o tipo de datos, puede utilizar make_column_selector.

remainder{“drop”, “passthrough”} or estimator, default=”drop”

Por defecto, sólo las columnas especificadas en transformers son transformadas y combinadas en la salida, y las columnas no especificadas son descartadas. (por defecto 'drop'). Especificando remainder='passthrough', todas las columnas restantes que no fueron especificadas en transformers serán automáticamente pasadas. Este subconjunto de columnas se concatena con la salida de los transformadores. Al establecer que remainder sea un estimador, las columnas restantes no especificadas utilizarán el estimador remainder. El estimador debe soportar fit y transform. Ten en cuenta que el uso de esta función requiere que las columnas del DataFrame introducidas en fit y transform tengan un orden idéntico.

sparse_thresholdfloat, default=0.3

Si la salida de los diferentes transformadores contiene matrices dispersas, éstas se apilarán como una matriz dispersa si la densidad global es menor que este valor. Utiliza sparse_threshold=0 para obtener siempre una matriz densa. Cuando la salida transformada consiste en todos los datos densos, el resultado apilado será denso, y esta palabra clave será ignorada.

n_jobsint, default=None

Número de trabajos a ejecutar en paralelo. None significa 1 a menos que esté en un contexto joblib.parallel_backend. -1 significa utilizar todos los procesadores. Ver Glosario para más detalles.

transformer_weightsdict, default=None

Las ponderaciones multiplicativas de las características por transformador. La salida del transformador se multiplica por estas ponderaciones. Las claves son los nombres de los transformadores, los valores de las ponderaciones.

verbosebool, default=False

Si es True, se mostrará el tiempo transcurrido durante el ajuste de cada transformador a medida que se vaya completando.

Atributos
transformers_list

La colección de transformadores ajustados como tuplas de (name, fitted_transformer, column). fitted_transformer puede ser un estimador, drop, o passthrough. Si no hay columnas seleccionadas, será el transformador no ajustado. Si hay columnas restantes, el elemento final es una tupla de la forma (“remainder”, transformer, remaining_columns) correspondiente al parámetro remainder. Si hay columnas restantes, entonces len(transformers_)==len(transformers)+1, en caso contrario len(transformers_)==len(transformers).

named_transformers_Bunch

Accede al transformador ajustado por nombre.

sparse_output_bool

El indicador booleano que indica si la salida de transform es una matriz dispersa o un arreglo numpy denso, que depende de la salida de los transformadores individuales y de la palabra clave esparse_threshold.

Ver también

make_column_transformer

Función de conveniencia para combinar las salidas de múltiples objetos transformadores aplicados a subconjuntos de columnas del espacio de características original.

make_column_selector

Función de conveniencia para seleccionar columnas basadas en el tipo de datos o el nombre de las columnas con un patrón regex.

Notas

El orden de las columnas en la matriz de características transformada sigue el orden de cómo se especifican las columnas en la lista de transformers. Las columnas de la matriz de características original que no se especifican se eliminan de la matriz de características transformada resultante, a menos que se especifique en la palabra clave passthrough. Las columnas especificadas con passthrough se añaden a la derecha a la salida de los transformadores.

Ejemplos

>>> import numpy as np
>>> from sklearn.compose import ColumnTransformer
>>> from sklearn.preprocessing import Normalizer
>>> ct = ColumnTransformer(
...     [("norm1", Normalizer(norm='l1'), [0, 1]),
...      ("norm2", Normalizer(norm='l1'), slice(2, 4))])
>>> X = np.array([[0., 1., 2., 2.],
...               [1., 1., 0., 1.]])
>>> # Normalizer scales each row of X to unit norm. A separate scaling
>>> # is applied for the two first and two last elements of each
>>> # row independently.
>>> ct.fit_transform(X)
array([[0. , 1. , 0.5, 0.5],
       [0.5, 0.5, 0. , 1. ]])

Métodos

fit

Ajustar a todos los transformadores usando X.

fit_transform

Ajusta todos los transformadores, transforma los datos y concatena los resultados.

get_feature_names

Obtiene los nombres de las características de todos los transformadores.

get_params

Obtiene los parámetros para este estimador.

set_params

Establece los parámetros de este estimador.

transform

Transforma X por separado por cada transformador, concatena los resultados.

fit()

Ajustar a todos los transformadores usando X.

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

Datos de entrada, de los cuales se utilizan subconjuntos especificados para ajustar los transformadores.

yarray-like de forma (n_samples,…), default=None

Objetivos para el aprendizaje supervisado.

Devuelve
selfColumnTransformer

Este estimador

fit_transform()

Ajusta todos los transformadores, transforma los datos y concatena los resultados.

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

Datos de entrada, de los cuales se utilizan subconjuntos especificados para ajustar los transformadores.

yarray-like de forma (n_samples,), default=None

Objetivos para el aprendizaje supervisado.

Devuelve
X_t{array-like, sparse matrix} de forma (n_samples, sum_n_components)

hstack de resultados de transformadores. sum_n_components es la suma de n_components (dimensión de salida) sobre transformadores. Si algún resultado es una matriz dispersa, todo se convertirá en matrices dispersas.

get_feature_names()

Obtiene los nombres de las características de todos los transformadores.

Devuelve
feature_nameslista de cadenas

Nombres de las características producidas por la transformación.

get_params()

Obtiene los parámetros para este estimador.

Devuelve los parámetros dados en el constructor así como los estimadores contenidos en el transformers del ColumnTransformer.

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 asignados a sus valores.

property named_transformers_

Accede al transformador ajustado por nombre.

Atributo de sólo lectura para acceder a cualquier transformador con un nombre determinado. Las claves son los nombres de los transformadores y los valores son los objetos transformadores ajustados.

set_params()

Establece los parámetros de este estimador.

Las claves de los parámetros válidos se pueden listar con get_params(). Ten en cuenta que puede establecer directamente los parámetros de los estimadores contenidos en transformers de ColumnTransformer.

Devuelve
self
transform()

Transforma X por separado por cada transformador, concatena los resultados.

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

Los datos que serán transformados por subconjunto.

Devuelve
X_t{array-like, sparse matrix} de forma (n_samples, sum_n_components)

hstack de resultados de transformadores. sum_n_components es la suma de n_components (dimensión de salida) sobre transformadores. Si algún resultado es una matriz dispersa, todo se convertirá en matrices dispersas.

Ejemplos usando sklearn.compose.ColumnTransformer