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 entradaX
y puede devolver cualquiera de los anteriores. Para seleccionar varias columnas por nombre o tipo de datos, puede utilizarmake_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'
). Especificandoremainder='passthrough'
, todas las columnas restantes que no fueron especificadas entransformers
serán automáticamente pasadas. Este subconjunto de columnas se concatena con la salida de los transformadores. Al establecer queremainder
sea un estimador, las columnas restantes no especificadas utilizarán el estimadorremainder
. 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 contextojoblib.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
, opassthrough
. 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ámetroremainder
. Si hay columnas restantes, entonceslen(transformers_)==len(transformers)+1
, en caso contrariolen(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 claveesparse_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 clavepassthrough
. Las columnas especificadas conpassthrough
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
Ajustar a todos los transformadores usando X.
Ajusta todos los transformadores, transforma los datos y concatena los resultados.
Obtiene los nombres de las características de todos los transformadores.
Obtiene los parámetros para este estimador.
Establece los parámetros de este estimador.
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
delColumnTransformer
.- 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 entransformers
deColumnTransformer
.- 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.