Logo Lanfrica

inigoochoa/pump-it-up-competition

Domain:

environment and energy
Creator:
ini
Host:
Predicción del estado operativo de bombas de agua en Tanzania (DrivenData Competition). Modelo Ensemble de clasificación multiclase (Random Forest + LightGBM + XGBoost) con validación cruzada libre de leakage y tracking en MLflow. Accuracy final: 81.86% (Top 13%). # Pump It Up: Data Mining the Water Table (DrivenData) El objetivo principal de este reto de Machine Learning consiste en predecir el estado operativo de los puntos de suministro de agua (bombas de agua) distribuidos en toda Tanzania. Se trata de un problema de clasificación multiclase complejo debido a la alta cantidad de valores nulos implícitos, variables categóricas de elevadísima cardinalidad y un desbalanceo de clases muy marcado. --- # Rendimiento y Posición en la Competición - **Métrica Objetivo:** Clasificación por Accuracy. - **Resultado Final Obtenido:** **0.8186 (81.86%)** - **Posición en el Leaderboard:** **2364 de 19,775 participantes** (aproximadamente en el **Top 13%** a nivel global). --- # Arquitectura de la Solución y Metodología La estrategia de modelado e ingeniería se basa en cuatro pilares fundamentales para exprimir la señal de los datos sin comprometer la robustez estadística. ## 1. Análisis Exploratorio de Datos (EDA) y Limpieza - Detección y tratamiento de nulos ocultos como ceros en variables geográficas o temporales (`longitude`, `gps_height`, `construction_year`). - Eliminación de variables redundantes (`payment_type` por ser idéntica a `payment`, o `quantity_group` por duplicar a `quantity`). - Imputación controlada en variables estructurales como `scheme_management` e `installer`. ## 2. Ingeniería de Características Libre de Contaminación (Leakage-Free Feature Engineering) - Creación de variables estacionales (mes) y temporales (antigüedad calculada desde la fecha de registro). - **Target-Ratio Encoding avanzado** implementado mediante dos funciones: `fit_target_features()`, que aprende los umbrales exclusivamente con los datos de entrenamiento, y `transform_target_features()`, que los aplica a cualquier split. - **Prevención del Data Leakage:** las variables basadas en tasas de fallos (`buenas_reg`, `malos_funders` y `lga_top_func`) se calculan únicamente utilizando el conjunto de entrenamiento de cada *fold* durante la va …