Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Aprende Preprocesamiento de Datos Eficiente con Pipelines | Tuberías
Introducción al Aprendizaje Automático con Python

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.

Pasos del pipeline

Un pipeline en Scikit-learn se puede crear 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.

make_pipeline

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) en el objeto Pipeline, se 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().

Flujo de trabajo del transformador

Construcción de 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 características nominales y ordinales, utiliza un ColumnTransformer para procesarlas por separado.

1234567891011121314151617
import 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))
¿Todo estuvo claro?

¿Cómo podemos mejorarlo?

¡Gracias por tus comentarios!

Sección 3. Capítulo 3

Pregunte a AI

expand

Pregunte a AI

ChatGPT

Pregunte lo que quiera o pruebe una de las preguntas sugeridas para comenzar nuestra charla

Sección 3. Capítulo 3
some-alt