DEV Community

Adrian
Adrian

Posted on Originally published at adrianmoreno-dev.com

Predicción de precio inmobiliario: por qué un ensemble GBM + red neuronal bate a cualquiera por separado

El precio de una vivienda depende de factores que se comportan de formas muy distintas. Algunos son cuasi-reglas ("más de 3 baños dispara el precio en esta zona"); otros son interacciones suaves y continuas (la relación entre metros, antigüedad y barrio). Ningún tipo de modelo captura bien ambas cosas a la vez. Por eso usé un ensemble.

El problema

Estimar el precio de mercado de una vivienda a partir de sus características, con un error lo bastante bajo como para ser útil en una valoración real, y exponerlo como una API de predicción en tiempo real.

Los dos modelos del ensemble

  • Gradient Boosting Machine: excelente capturando relaciones no lineales y "reglas" abruptas sobre datos tabulares. Es el caballo de batalla de los datos estructurados.

  • Perceptrón multicapa (MLP): una red neuronal que modela bien las interacciones suaves y continuas entre variables, algo donde los árboles, por su naturaleza escalonada, son más toscos.

Las predicciones de ambos se combinan. El ensemble funciona porque sus errores están poco correlacionados: donde uno falla por su sesgo, el otro tiende a compensar.

Decisiones técnicas

El preprocesado trató con cuidado las variables sesgadas (el precio y la superficie se distribuyen log-normalmente, no normalmente) y las categóricas de localización. El stack es scikit-learn para el GBM y PyTorch para el MLP, servido todo con FastAPI.

Resultados

  • R² ≈ 0.90: el modelo explica alrededor del 90% de la varianza del precio.

  • MAE ≈ ±$62K: error medio absoluto.

  • ~11% de error porcentual relativo.

Qué aprendí

Que el ensembling no es hacer trampa: es reconocer que distintos modelos tienen distintos puntos ciegos, y que combinarlos es casi siempre más robusto que pelearse por exprimir el último 0,5% de un único modelo.


Publicado originalmente en adrianmoreno-dev.com.

Top comments (0)