Preprocesamiento de Datos Eficiente con Pipelines
Con la capacidad de transformar columnas por separado utilizando la función make_column_transformer
, el siguiente paso es construir pipelines. Un pipeline es un contenedor que organiza los pasos de preprocesamiento y los aplica secuencialmente.
Un pipeline en Scikit-learn puede crearse utilizando el constructor de la clase Pipeline
o la función make_pipeline
del módulo sklearn.pipeline
. Este curso se centrará en make_pipeline
, ya que es más sencillo de aplicar.
Solo es necesario pasar todos los transformadores como argumentos a una función. Crear pipelines es así de sencillo.
Sin embargo, cuando se llama al método .fit_transform(X)
sobre el objeto Pipeline
, este aplica .fit_transform(X)
a cada transformador dentro del pipeline, por lo que si se desea tratar algunas columnas de manera diferente, se debe utilizar un ColumnTransformer
y pasarlo a make_pipeline()
.
Construir un pipeline utilizando el mismo archivo que en el capítulo anterior. El pipeline debe incluir codificadores para características categóricas junto con SimpleImputer
. Dado que el conjunto de datos contiene tanto características nominales como ordinales, utiliza un ColumnTransformer
para procesarlas por separado.
1234567891011121314151617import pandas as pd from sklearn.compose import make_column_transformer from sklearn.preprocessing import OneHotEncoder, OrdinalEncoder from sklearn.impute import SimpleImputer from sklearn.pipeline import make_pipeline df = pd.read_csv('https://codefinity-content-media.s3.eu-west-1.amazonaws.com/a65bbc96-309e-4df9-a790-a1eb8c815a1c/exams.csv') # Making a column transformer edu_categories = ['high school', 'some high school', 'some college', "associate's degree", "bachelor's degree", "master's degree"] ct = make_column_transformer( (OrdinalEncoder(categories=[edu_categories]), ['parental level of education']), (OneHotEncoder(), ['gender', 'race/ethnicity', 'lunch', 'test preparation course']), remainder='passthrough' ) # Making a Pipeline pipe = make_pipeline(ct, SimpleImputer(strategy='most_frequent')) print(pipe.fit_transform(df))
¡Gracias por tus comentarios!
Pregunte a AI
Pregunte a AI
Pregunte lo que quiera o pruebe una de las preguntas sugeridas para comenzar nuestra charla
Can you explain what each step in the pipeline is doing?
What is the difference between OneHotEncoder and OrdinalEncoder?
Why do we use SimpleImputer with the 'most_frequent' strategy here?
Awesome!
Completion rate improved to 3.13
Preprocesamiento de Datos Eficiente con Pipelines
Desliza para mostrar el menú
Con la capacidad de transformar columnas por separado utilizando la función make_column_transformer
, el siguiente paso es construir pipelines. Un pipeline es un contenedor que organiza los pasos de preprocesamiento y los aplica secuencialmente.
Un pipeline en Scikit-learn puede crearse utilizando el constructor de la clase Pipeline
o la función make_pipeline
del módulo sklearn.pipeline
. Este curso se centrará en make_pipeline
, ya que es más sencillo de aplicar.
Solo es necesario pasar todos los transformadores como argumentos a una función. Crear pipelines es así de sencillo.
Sin embargo, cuando se llama al método .fit_transform(X)
sobre el objeto Pipeline
, este aplica .fit_transform(X)
a cada transformador dentro del pipeline, por lo que si se desea tratar algunas columnas de manera diferente, se debe utilizar un ColumnTransformer
y pasarlo a make_pipeline()
.
Construir un pipeline utilizando el mismo archivo que en el capítulo anterior. El pipeline debe incluir codificadores para características categóricas junto con SimpleImputer
. Dado que el conjunto de datos contiene tanto características nominales como ordinales, utiliza un ColumnTransformer
para procesarlas por separado.
1234567891011121314151617import pandas as pd from sklearn.compose import make_column_transformer from sklearn.preprocessing import OneHotEncoder, OrdinalEncoder from sklearn.impute import SimpleImputer from sklearn.pipeline import make_pipeline df = pd.read_csv('https://codefinity-content-media.s3.eu-west-1.amazonaws.com/a65bbc96-309e-4df9-a790-a1eb8c815a1c/exams.csv') # Making a column transformer edu_categories = ['high school', 'some high school', 'some college', "associate's degree", "bachelor's degree", "master's degree"] ct = make_column_transformer( (OrdinalEncoder(categories=[edu_categories]), ['parental level of education']), (OneHotEncoder(), ['gender', 'race/ethnicity', 'lunch', 'test preparation course']), remainder='passthrough' ) # Making a Pipeline pipe = make_pipeline(ct, SimpleImputer(strategy='most_frequent')) print(pipe.fit_transform(df))
¡Gracias por tus comentarios!