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

bookEstimador Final

Pipeline se utilizó anteriormente para el preprocesamiento, pero su propósito real es encadenar el preprocesamiento con un predictor final. El último paso en una pipeline puede ser cualquier estimador (típicamente un modelo) que produzca predicciones.

Note
Nota

Al llamar a .fit(), cada transformador ejecuta .fit_transform(). Al llamar a .predict(), la pipeline utiliza .transform() antes de enviar los datos al estimador final. Esto es necesario porque los nuevos datos deben transformarse exactamente igual que los datos de entrenamiento.

¿Por qué .transform()?

Usar .fit_transform() en nuevos datos podría cambiar las codificaciones (por ejemplo, en OneHotEncoder), creando columnas desajustadas y predicciones poco fiables. .transform() garantiza un preprocesamiento consistente, ignorando categorías no vistas y manteniendo el mismo orden de columnas.

Así es como se ve el conjunto de datos de entrenamiento codificado con one-hot:

Estas son las nuevas instancias para predecir:

Si se aplicara .fit_transform() a nuevas instancias, el OneHotEncoder podría generar columnas en un orden diferente o incluso introducir nuevas. Esto provocaría que los nuevos datos se transformaran de manera inconsistente con el conjunto de entrenamiento, haciendo que las predicciones sean no confiables.

Sin embargo, usar .transform() garantiza que los nuevos datos se codifiquen exactamente como los datos de entrenamiento, ignorando las categorías no vistas durante el entrenamiento:

Agregar el estimador final

Simplemente agregar el modelo como el último paso del pipeline:

pipe = make_pipeline(
    ct,
    SimpleImputer(strategy='most_frequent'),
    StandardScaler(),
    KNeighborsClassifier()
)
pipe.fit(X, y)
pipe.predict(X_new)

Esto permite que todo el flujo de trabajo—preprocesamiento + predicción—se ejecute con una sola llamada.

¿Todo estuvo claro?

¿Cómo podemos mejorarlo?

¡Gracias por tus comentarios!

Sección 3. Capítulo 5

Pregunte a AI

expand

Pregunte a AI

ChatGPT

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

Suggested prompts:

Can you explain why using `.fit_transform()` on new data is problematic?

How does `.transform()` handle unseen categories in new data?

Can you show an example of a pipeline with a different final estimator?

bookEstimador Final

Desliza para mostrar el menú

Pipeline se utilizó anteriormente para el preprocesamiento, pero su propósito real es encadenar el preprocesamiento con un predictor final. El último paso en una pipeline puede ser cualquier estimador (típicamente un modelo) que produzca predicciones.

Note
Nota

Al llamar a .fit(), cada transformador ejecuta .fit_transform(). Al llamar a .predict(), la pipeline utiliza .transform() antes de enviar los datos al estimador final. Esto es necesario porque los nuevos datos deben transformarse exactamente igual que los datos de entrenamiento.

¿Por qué .transform()?

Usar .fit_transform() en nuevos datos podría cambiar las codificaciones (por ejemplo, en OneHotEncoder), creando columnas desajustadas y predicciones poco fiables. .transform() garantiza un preprocesamiento consistente, ignorando categorías no vistas y manteniendo el mismo orden de columnas.

Así es como se ve el conjunto de datos de entrenamiento codificado con one-hot:

Estas son las nuevas instancias para predecir:

Si se aplicara .fit_transform() a nuevas instancias, el OneHotEncoder podría generar columnas en un orden diferente o incluso introducir nuevas. Esto provocaría que los nuevos datos se transformaran de manera inconsistente con el conjunto de entrenamiento, haciendo que las predicciones sean no confiables.

Sin embargo, usar .transform() garantiza que los nuevos datos se codifiquen exactamente como los datos de entrenamiento, ignorando las categorías no vistas durante el entrenamiento:

Agregar el estimador final

Simplemente agregar el modelo como el último paso del pipeline:

pipe = make_pipeline(
    ct,
    SimpleImputer(strategy='most_frequent'),
    StandardScaler(),
    KNeighborsClassifier()
)
pipe.fit(X, y)
pipe.predict(X_new)

Esto permite que todo el flujo de trabajo—preprocesamiento + predicción—se ejecute con una sola llamada.

¿Todo estuvo claro?

¿Cómo podemos mejorarlo?

¡Gracias por tus comentarios!

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