UD2 · Despliegue de modelos con frameworks especializados | MP03
Modelo para datos tabulares: pipeline completo
import pandas as pd
from sklearn.pipeline import Pipeline
from sklearn.preprocessing import StandardScaler, OneHotEncoder
from sklearn.compose import ColumnTransformer
from sklearn.ensemble import GradientBoostingClassifier
from sklearn.model_selection import cross_val_score
import joblib
numericas = ["edad", "salario", "antiguedad"]
categoricas = ["departamento", "ciudad"]
preprocesador = ColumnTransformer(transformers=[
("num", StandardScaler(), numericas),
("cat", OneHotEncoder(handle_unknown="ignore", sparse_output=False), categoricas)
])
pipeline = Pipeline(steps=[
("preprocesado", preprocesador),
("modelo", GradientBoostingClassifier(
n_estimators=200, learning_rate=0.05,
max_depth=4, random_state=42
))
])
scores = cross_val_score(pipeline, X_train, y_train, cv=5, scoring="f1_macro")
print(f"F1 macro CV: {scores.mean():.3f} +/- {scores.std():.3f}")
joblib.dump(pipeline, "artifacts/modelo_tabular_v1.pkl")