Este repositorio se centra en el análisis y desarrollo de modelos de Machine Learning utilizando XGBoost para predecir los precios de la vivienda en Ames, Iowa. Predecir los precios de bienes raíces es crucial en el mercado de la vivienda, y el objetivo principal de esta investigación es explorar y refinar modelos de aprendizaje automático para mejorar la precisión de estas predicciones.
El estudio se realizó usando herramientas del lenguaje R.
El conjunto de datos de Ames Housing, derivado de las ventas de viviendas en Ames, Iowa, en 2011, ofrece una rica oportunidad para explorar las características del mercado inmobiliario. Proporciona una amplia gama de atributos (más de 70) que afectan al precio de venta de las viviendas, desde características físicas hasta consideraciones ambientales y de localización.
Nuestro proyecto apunta a utilizar XGBoost, un algoritmo de aprendizaje automático basado en árboles de decisión potenciado con gradient boosting, para predecir los precios de las viviendas en Ames, Iowa. Buscamos no solo realizar predicciones precisas sino también entender qué factores tienen mayor influencia en los precios de las viviendas.
XGBoost es conocido por su eficiencia, rendimiento y capacidad para manejar una gran variedad de tipos de datos. En nuestro análisis, aprovecharemos estas características para manejar el amplio espectro de variables del conjunto de datos de Ames Housing. Además, exploraremos cómo la optimización de hiperparámetros y la ingeniería de características pueden mejorar aún más la precisión del modelo.
Los resultados de este análisis pueden ser útiles para compradores y vendedores de viviendas, agentes inmobiliarios y urbanistas en Ames, proporcionando una herramienta para entender mejor los factores que influyen en los precios de las viviendas. Además, las metodologías desarrolladas podrían aplicarse a otros conjuntos de datos inmobiliarios, extendiendo su utilidad más allá del contexto específico de Ames, Iowa.
Nuestro estudio sigue el siguiente proceso:
- Análisis de la base de datos original AmesHousing_raw_data.
- Preprocesamiento de datos.
- Creación de conjuntos de entrenamiento y prueba.
- Busqueda de hiperparámetros usando "grid search" con validación cruzada para el modelo xgboost.
- Entrenamiento final del modelo.
- Resultados y conclusiones.
- Creación de la idea del producto y marca.
A continuación se describe cada proceso.
Este proceso nos ayudará a examinar las estadísticas descriptivas para comprender la distribución de los datos, explorar las relaciones entre las variables, identificar si hay datos faltantes que requieran imputación, y determinar si es necesario reescalar los datos para técnicas de modelado específicas.
Se realizó una gráfica de barras para observar la tendencia de los precios de las casas disponibles en el mercado.
Se realizó una gráfica de dispersión entre el precio de venta y el área del garage. Se observaron muchas propiedades con un valor 0 en el área de garage al no disponer del mismo.
Se hizo una gráfica para comparar el precio de las viviendas con el área total de cada una. Se observó una relación positiva entre ambos factores y un evidente aumento del precio en relación al tamaño de la propiedad.
Se realizó una matriz de correlación con todas las columnas para identificar aquellas con una relación fuerte con el precio de venta.
Se realizó una matriz de correlación usando un filtro para solo observar aquellas relaciones con un valor mayor a 0.5 y menor a -0.5. Estas variables son buenos predictores para nuestro modelo.
A partir de la primer matriz de correlación, se eligieron las características más importantes para realizar una tercera matriz de correlación y así identificar aquellas con coeficientes de Pearson altos relacionados al precio de venta.
Este paso es crucial para preparar la base de datos para el análisis y modelado. Incluye la limpieza de datos, donde corregimos o eliminamos registros erróneos o irrelevantes; la imputación, donde reemplazamos los datos faltantes con valores sustitutos; la codificación de variables categóricas para convertirlas en formatos numéricos que los modelos puedan interpretar; la normalización o estandarización de rangos de datos para que tengan una escala común, facilitando así la convergencia en algoritmos de aprendizaje automático. Todos los procesos mejoran la eficiencia computacional y la interpretación de los resultados.
Se contó el número de datos faltantes en cada una de las columnas de la base de datos y se realizó una gráfica de barras para identificar aquellas columnas con la mayor información faltante.
Este proceso implica la división de la base de datos en dos segmentos distintos: un conjunto de entrenamiento y un conjunto de prueba. Hemos asignado el 70% de los datos al conjunto de entrenamiento, que se utilizará para construir y afinar nuestros modelos de aprendizaje automático. El restante 30% constituye el conjunto de prueba, que emplearemos para evaluar el rendimiento y la generalización de los modelos en datos no vistos anteriormente. Esta división estratégica es esencial para evitar el sobreajuste y asegurar que los modelos tengan una capacidad predictiva robusta en condiciones reales.
Los conjuntos que hemos creado se encuentran en Train test y Test Set ubicados en nuestro repositorio de Github.
Este paso es fundamental para optimizar el rendimiento del modelo XGBoost. Consiste en emplear la técnica de "Grid Search", que explora sistemáticamente una gama de valores de hiperparámetros para determinar la combinación óptima que produce el mejor resultado de predicción. Combinamos esto con la validación cruzada, un método que divide repetidamente el conjunto de datos en grupos de entrenamiento y validación para evaluar la estabilidad y la fiabilidad del modelo. Esta estrategia no solo mejora la precisión del modelo sino que también contribuye a prevenir el sobreajuste, asegurando que el modelo generalice bien a nuevos datos. La selección del tamaño de pliegues o "folds" es de 5.
La métrica del error es la Raíz del Error Cuadrático Medio o (RECM). En las siguientes imágenes, los mejores valores de los hiperparámetros estan de color naranja.
Después de la búsqueda exhaustiva de hiperparámetros, los valores que minimizan el error RECM (Raíz del Error Cuadrático Medio) son los siguientes:
learning_rate=0.02
max_depth=4
min_child_weight=3
subsample=0.7
colsample_bytree=0.3
reg_alpha=1000
reg_lambda=1
El modelo XGBoost fue entrenado utilizando un total de 15,000 estimadores. La mejor generalización se logró en el estimador número 2,658, donde el valor mínimo del RMSE (Raíz del Error Cuadrado Medio) para el conjunto de prueba fue aproximadamente $23,482.77, aproximadamente. Eso quiere decir que las predicciones de los precios de venta tienen un error promedio de 23 mil dólares. Esto es un error pequeño para un promedio de $180,796.00.
La grafica muestra que existe sobreentrenamiento, sin embargo, podemos ver que no explota, sino que el modelo xgboost mantiene decentemente los valores de error para el conjunto de validación. COn una parada temprana, el modelo puede generalizar muy bien en los 2,658 estimadores.
En una gráfica de importancia con XGBoost utilizando ganancia y cover, la ganancia evalúa cuánto mejora la precisión al dividir los datos según una característica, indicando su importancia. Por otro lado, el cover mide cuántos datos afecta una característica al realizar una división. Una gráfica de importancia de características basada en la frecuencia en XGBoost ilustra la relevancia relativa de cada característica según la frecuencia con que se emplean para tomar decisiones durante el entrenamiento del modelo. Características con una alta frecuencia de uso se presentan como destacadas en la visualización.
La gráfica ilustra la importancia relativa de cada característica, representando en el eje X las características y en el eje Y la ganancia o el valor de gain.
La gráfica ilustra la importancia relativa de cada característica, representando en el eje X las características y en el eje Y la ganancia o el cover.
La gráfica ilustra la importancia relativa de cada característica, representando en el eje X las características y en el eje Y la ganancia o el frecuencia.
La hipótesis inicial planteada sostenía que las variables Ground Living Area y Garage Area representaban los predictores más significativos en el modelo, basándose en los resultados obtenidos de la matriz de correlación. Tras la fase de entrenamiento con XGBoost y el consecuente análisis de la importancia de las características, los datos respaldaron dicha hipótesis. Las métricas de importancia, incluyendo frecuencia, cover y gain, indicaron consistentemente que "Ground Living Area" y "Garage Area" eran las características preponderantes en la realización de divisiones dentro de los árboles de decisión. Estos hallazgos no solo validan nuestra hipótesis sino que también reafirman el valor predictivo de estas variables en el modelo, subrayando su capacidad para mejorar la generalización y optimizar la precisión de las predicciones del modelo.
Nuestra idea del producto se puede ver en la siguiente liga de nuestra presentación: enlace público de la presentación del producto
Información de contacto de los autores del proyecto.
Fermín Martínez: [email protected]
Gustavo Lino: [email protected]
Sergio Saavedra: [email protected]
















