Transformar un conjunto de datos con variables categóricas y numéricas en un modelo de aprendizaje automático funcional es uno de los pasos más importantes en cualquier proyecto de ciencia de datos. Aquí se recorre el proceso completo: desde la preparación de variables hasta el entrenamiento de un Random Forest Regressor, pasando por la separación de datos en training y testing.
¿Cómo convertir variables categóricas a numéricas para aprendizaje automático?
Antes de alimentar cualquier modelo supervisado, todas las columnas deben ser numéricas. El proceso consiste en recorrer cada columna del dataset y tomar una acción según su tipo de dato [01:33].
- Si la columna es de tipo objeto (texto), se llenan los valores faltantes con la moda y luego se convierte a tipo category de Pandas, que permite tener una representación tanto textual como numérica mediante
.astype('category').cat.codes.
- Si la columna ya es numérica, se llenan los faltantes con la mediana [02:42].
- Las variables booleanas en Python se representan como unos y ceros, así que también son compatibles con los modelos sin transformación adicional [03:18].
Esta conversión garantiza que el dataset quede listo para ser procesado por algoritmos de machine learning sin perder la trazabilidad de las categorías originales.
¿Qué pasos se siguen para entrenar un modelo supervisado con Random Forest?
Una vez que los datos son numéricos, se importa el Random Forest Regressor de scikit-learn junto con la función train test split para dividir los datos [03:28].
¿Cómo separar datos en entrenamiento y prueba?
Se define la variable de respuesta Y (en este caso, el importe) y las características X como el resto de columnas. La separación se realiza con train_test_split usando un test_size de 0.33, es decir, el treinta y tres por ciento de los datos se reservan para prueba [04:06].
- El parámetro
random_state=42 asegura la repetitividad del experimento: cualquier persona que ejecute el mismo código obtendrá resultados idénticos [04:30].
- La proporción de datos para testing depende de cada proyecto; a veces se usa veinte por ciento, a veces más.
¿Qué hiperparámetros configurar en el Random Forest?
El clasificador se configura con dos hiperparámetros principales [04:50]:
- n_estimators = 1000: cantidad de árboles en el bosque. Mil es un buen punto de partida, aunque puede optimizarse con técnicas como grid search.
- max_depth = 4: profundidad máxima de cada árbol. Una regla heurística útil es usar la mitad o la raíz cuadrada de la cantidad de características disponibles [05:12].
Con estos parámetros definidos, se entrena el modelo llamando a .fit(X_train, y_train) [05:30].
¿Cómo evaluar el rendimiento del modelo con R2 score?
Para medir qué tan bien predice el modelo, se utiliza el R2 score, que compara las predicciones del modelo sobre X_test contra los valores reales y_test [05:45]. En este ejemplo, el resultado es bajo, lo cual se esperaba porque se trata de un modelo de juguete diseñado para demostrar el flujo de trabajo, no para hacer predicciones precisas.
Un modelo funciona correctamente cuando el error de testing es bajo y el modelo puede generalizar ante datos nuevos [06:10]. La selección de la métrica de éxito adecuada es fundamental: el R2 es una opción para regresión, pero cada problema puede requerir métricas distintas.
Lo esencial aquí es comprender el proceso de transformación de datos textuales a numéricos, la separación en conjuntos de entrenamiento y prueba, y la evaluación del modelo. Estos pasos son la base sobre la que se construyen modelos más robustos. Si ya has aplicado este flujo en tus proyectos, comparte qué hiperparámetros te han funcionado mejor.