Predicción de Precio Inmobiliario Predecir el precio de una vivienda con machine learning

Python scikit-learn PyTorch FastAPI NumPy Pandas Gradient Boosting Ensemble ML
Predicción de Precio Inmobiliario

Sobre el Proyecto

Sistema de predicción de precios inmobiliarios basado en un ensemble de dos modelos de Machine Learning entrenados con más de 21.000 transacciones residenciales reales del condado de King (Washington, EE.UU., 2014-2015). La arquitectura es agnóstica a la geografía: con los datos adecuados se adapta a cualquier mercado.

Cómo medir la efectividad real del modelo

El accuracy clásico se usa en modelos de clasificación (sí/no). Para predicción de precios (regresión) existen métricas más precisas que evitan los problemas de los falsos positivos:

  • R² = 0.8962 (~90%): coeficiente de determinación. Indica qué fracción de la variabilidad real de precios captura el modelo. Un R²=0 equivale a predecir siempre la media; R²=1 sería perfecto. Nuestro modelo explica el 90% de por qué una vivienda vale más o menos que otra.
  • MAE = $62.000: error medio absoluto. De media, la predicción se desvía $62K del precio real. Sobre un mercado con precio medio de ~$540K supone un error relativo del ~11%, comparable al margen de una tasación oficial.
  • Por qué no F1 / MCC aquí: F1 y MCC son métricas de clasificación binaria (sí/no). Este modelo predice un precio continuo (regresión), por lo que no existen "verdaderos positivos" ni "falsos negativos" en el sentido estricto. R² y MAE son el equivalente honesto: R² mide si el modelo capta la estructura real de los datos, MAE mide el error absoluto en euros. Para un modelo de detección de anomalías sí se aplican F1/MCC — ver el proyecto de Volatilidad.

Modelos Implementados

  • HistGradientBoostingRegressor (scikit-learn): Equivalente a LightGBM/XGBoost. Entrenado con target log(precio) para reducir sesgo por viviendas de lujo. 600 iteraciones, profundidad 8. R²=0.8962, MAE≈$61.808.
  • Red Neuronal MLP (PyTorch): 4 capas con BatchNorm y Dropout, ~25.000 parámetros. AdamW + Cosine Annealing, 80 épocas. R²=0.8870, MAE≈$65.130.
  • Ensemble 60/40: combinación ponderada que reduce el error respecto a cada modelo individual y genera un intervalo de confianza basado en la divergencia entre ambos.

Features del Modelo

20 variables: superficie habitable, habitaciones, baños, plantas, estado de conservación (1-5), calidad de construcción (1-13), año de construcción, año de reforma, coordenadas geográficas, superficie de parcela, vistas, frente al agua, superficie media de vecinos, código postal (target-encoded), edad, superficie por habitación.

Tecnologías

Python 3.12 · scikit-learn 1.8 · PyTorch 2.10 · FastAPI · NumPy · Pandas · joblib · Laravel (proxy HTTP)

Última actualización

He añadido un nuevo endpoint /ml/metrics que expone las métricas del modelo de predicción de precios inmobiliarios. Esta incorporación responde a la necesidad de ofrecer mayor transparencia técnica, permitiendo a los usuarios inspeccionar el rendimiento del modelo de forma directa. Con esta mejora, los consumidores del proyecto pueden validar la calidad de las predicciones y tomar decisiones más informadas basándose en datos verificables.

Mapa del bucleDisparador: Tengo una vivienda delante y no sé si el precio que piden se sostiene.. Acción: Mete sus características en un ensemble de gradient boosting y una red MLP entrenados con 21.563 ventas reales.. Medición: El precio estimado y qué características lo mueven, con un error medio de unos 64.000 dólares.. Decisión: Decido si el precio pedido está dentro de rango o me lo pienso..EL BUCLE QUE CIERRAPara quien está tasando unavivienda y duda del precio1DISPARADORTengo una vivienda delante yno sé si el precio que pidense sostiene.2ACCIÓNMete sus características enun ensemble de gradientboosting y una red MLPentrenados con 21.563 ventasreales.3MEDICIÓNEl precio estimado y quécaracterísticas lo mueven,con un error medio de unos64.000 dólares.4DECISIÓNDecido si el precio pedidoestá dentro de rango o me lopienso.Por viviendalo hace una personalo hace el software

Descargar el diagrama (SVG)

Resultados

~90%
Varianza explicada (R²)
El modelo captura el 90% de la diferencia real entre precios. R²=0.8962 (0=aleatorio, 1=perfecto)
±$62K
Error medio absoluto (MAE)
De media, la predicción se aleja $62.000 del precio real. Sobre ~$540K de media = ~11% de error
~11%
Error porcentual relativo
Comparable al margen de error de una tasación oficial. Combinando GBM (60%) + MLP (40%)

Límites

Lo que no hace

  • No es el mercado español: el modelo está entrenado con ventas del condado de King, en Washington.
  • No tasa oficialmente: es una estimación estadística, no una tasación con validez legal.
  • El dataset son ventas de 2014 y 2015: no refleja el mercado de hoy.

Decisiones

Por qué está construido así

  • Ensemble de árboles y red neuronal en vez de quedarse con el mejor de los dos modelos

    Los árboles capturan los saltos por tramos y la red las relaciones suaves. Mezclados al 60/40 quedan por encima de cualquiera de los dos suelto.

  • Publicar el error en euros en vez de publicar solo el coeficiente de determinación

    Un R² alto no dice si te puedes fiar del número. Un error medio en dinero sí se entiende delante de una vivienda concreta.

Try Live Demo View Code

Cómo está construido

→ Predicción de Precio Inmobiliario con Ensemble GBM + MLP (R² ≈ 0.90) He creado un modelo híbrido de Gradient Boosting y red neuronal MLP que, entrenado con más de 21 000 transacciones reales, explica el 90 % de la variación de precios...