Contenido del curso
Modelo Predictivo
Tipos de Aprendizaje
Herramientas para IA
Ciclo de Vida ML
Ética en IA
Limpieza de datos con Pandas y Scikit-Learn
Resumen
La preparación de datos en machine learning es la etapa que decide si tu modelo predice con precisión o devuelve resultados poco fiables. También conocida como feature engineering, consiste en transformar datos crudos en información que un algoritmo pueda entender, y es ideal para quienes empiezan en ciencia de datos con Python.
Piensa en ti como un chef antes de cocinar: lavas, cortas y organizas los ingredientes. Si te saltas un paso, el plato lo va a notar. Lo mismo pasa con un dataset: datos sucios producen modelos sucios.
¿Qué hace la preparación de datos antes de entrenar un modelo?
Antes de tocar un algoritmo, necesitas dejar la información lista. Esta etapa abarca varias tareas concretas que se aplican en orden y que determinan la calidad final del modelo.
- Detectar y manejar valores faltantes en columnas con huecos.
- Codificar variables categóricas para convertir texto en números.
- Crear nuevas características, como calcular la edad a partir de una fecha de nacimiento.
- Normalizar y escalar datos para que todas las variables compitan en igualdad de condiciones.
¿Qué es feature engineering? Es el proceso de transformar datos crudos en variables que un algoritmo pueda procesar. Incluye limpiar valores nulos, codificar texto, crear columnas derivadas y escalar magnitudes.
¿Por qué usar el dataset del Titanic de Kaggle?
El dataset del Titanic combina justo lo que necesitas para practicar [01:38]: datos numéricos como edad y tarifa, variables categóricas como sexo y cabina, valores faltantes y campos transformables en nuevas características. Cargarlo en tu entorno es tan simple como arrastrar el archivo y copiar la ruta desde los tres puntos del explorador para asegurar que la importación con Pandas funcione.
Al revisar las primeras cinco filas verás columnas como passenger ID, survived, clase, nombre, edad y sexo. Esa columna survived es la variable objetivo, así que se separa en una variable Y y se elimina del dataset X que usarás para predecir.
¿Cómo dividir el dataset en entrenamiento y prueba sin sesgar?
La división se hace con un test size del 20%, una semilla aleatoria fijada en 42 y una variable estratificada que conserva la misma proporción de personas que sobrevivieron y no sobrevivieron en ambos grupos. Esa estratificación evita sesgos y garantiza una distribución justa entre entrenamiento y prueba.
Después separas las columnas según su tipo. Las numéricas, como passenger ID, Pclass y age, se guardan en una variable num_cols, mientras que las categóricas, como nombre, sexo, ticket y cabina, van en otra. Esta división es clave porque cada tipo se trata distinto.
¿Cómo identifico valores faltantes en un dataset?
La función isnull() combinada con una suma sobre las filas te muestra cuántos huecos hay en cada columna. En el Titanic, age tiene 86 registros sin información, y también aparecen vacíos en tarifa y cabina [05:15]. Tener este mapa antes de imputar te permite decidir con criterio.
¿Cómo manejo valores faltantes en Pandas? Usa
isnull().sum()para contarlos por columna y luego decide entre eliminarlos, sustituirlos por la mediana, el valor más frecuente o un valor definido por ti según la distribución de tus datos.
¿Qué estrategia de imputación conviene para variables numéricas y categóricas?
Para las variables numéricas, la clase usa la mediana como valor de imputación porque es rápida y resistente a valores extremos. También podrías usar el mínimo, el máximo, el promedio o un valor específico, pero ojo: si rellenas con ceros donde había muchos huecos, puedes deformar una distribución normal y crear un pico artificial.
Para las variables categóricas, la estrategia es sustituir por el valor más frecuente. Aplicas la transformación primero a train, después a test, concatenas ambos y vuelves a revisar con isnull para confirmar que ya no quedan nulos.
¿Qué hace one hot encoder con las variables categóricas?
Los modelos no entienden texto, así que necesitan una traducción. One hot encoder convierte cada categoría en variables binarias que el algoritmo puede procesar como números. Es el equivalente categórico al escalamiento que aplicas a las numéricas.
Al mirar las estadísticas descriptivas aparecen detalles curiosos: la clase más popular, la edad más repetida y hasta el nombre más común, que en este caso refleja un registro duplicado dentro del dataset.
¿Cómo armar un pipeline de preprocesamiento con Scikit-Learn?
Un pipeline es una serie de pasos encadenados que puedes reutilizar cada vez que quieras repetir el preprocesamiento. Le asignas un nombre identificador, agregas el imputador y el escalamiento para variables numéricas, y un imputador con one hot encoder para variables categóricas.
Luego usas un transformador de columnas que guarda todo el procesamiento en una variable, por ejemplo pre. Aplicas pre sobre el conjunto de entrenamiento y después sobre el de prueba, y obtienes los datos transformados sin perder información, incluso después de imputar y codificar.
Con ese flujo listo, el siguiente paso natural es entrenar el modelo y evaluar qué tan bien predice. ¿Tú qué estrategia de imputación usarías para la columna de edad del Titanic? Cuéntame en los comentarios.