Skip to content

A Machine Learning exploration evaluating various models to predict Airbnb prices, culminating in an optimized Gradient Boosting Regressor.

Notifications You must be signed in to change notification settings

rociobenitez/AirbnbPricingModel

Repository files navigation

Predicción del Precio de Alojamientos de Airbnb con Machine Learning 🏘️

Introducción

Este proyecto utiliza técnicas de Machine Learning para predecir el precio diario de los alojamientos utilizando un conjunto de datos extraído de Airbnb. El objetivo es aplicar un modelo de regresión que considere múltiples características para realizar predicciones precisas. La práctica se ha desarrollado en cuadernos de Jupyter, aprovechando la versatilidad y la potencia de scikit-learn, una biblioteca de aprendizaje automático de código abierto para Python que facilita la implementación de algoritmos de Machine Learning complejos.

Enmarcación del Problema

  • Tipo de Aprendizaje: Supervisado, específicamente regresión múltiple y univariante.
  • Objetivo: Predecir el precio de la vivienda por día basándonos en diversas características.

Recopilación de Datos

El conjunto de datos proviene de Opendatasoft Airbnb Listings, centrado en la Comunidad de Madrid.

Preguntas de Investigación

  • Influencia de la información del anfitrión en el precio.
  • Relevancia de las características geográficas.
  • Características directas que impactan el precio.
  • Efecto de las métricas de reserva, disponibilidad, calidad y popularidad.

Análisis Exploratorio de Datos (EDA)

Se realiza un análisis exploratorio centrado en:

  • Información del anfitrión.
  • Información geográfica.
  • Características directas del alojamiento.
  • Precios y costos adicionales.
  • Restricciones de reserva y disponibilidad.
  • Métricas de calidad y popularidad.

Mapa de calor de precio por noche

Preparación de los Datos

  • Filtrado inicial: Se seleccionan registros exclusivos de la Comunidad de Madrid.
  • Limpieza de datos: Eliminación de columnas no deseadas, codificación de variables categóricas, y división de los datos en conjuntos de entrenamiento y prueba.

Modelado

Se exploran varios modelos (Árbol de Decisión, Random Forest, Bagging Regressor, Gradient Boosting, etc.) para encontrar el mejor en términos de precisión y robustez.

Selección de Características

Se identifican las variables más significativas para el precio, como PricePerBed, Cleaning Fee, Room Type, BedBathRooms, entre otras.

Ajuste y Optimización del Modelo

Se realizan ajustes en los modelos utilizando las características identificadas como más significativas. Se busca minimizar el sobreajuste observado inicialmente y mejorar la generalización del modelo en datos no vistos.

Evaluación de Modelos y Métricas de Regresión

Para evaluar la efectividad de los diferentes modelos, se utilizan varias métricas:

  • Error Absoluto Medio (MAE): Proporciona una visión directa del error promedio sin penalizar excesivamente los errores grandes.
  • Raíz del Error Cuadrático Medio (RMSE): Ofrece una medida sensible a los errores grandes, lo que es útil para evitar subestimaciones costosas.
  • Error Cuadrático Medio (MSE): Útil cuando los errores grandes son inaceptables, aunque puede ser sensible a valores atípicos.
  • Coeficiente de Determinación (R²): Mide cuánta variación de los datos puede explicarse por el modelo. Un valor más alto indica un mejor ajuste.

Se realiza una comparación detallada de cómo cada modelo se desempeña según estas métricas, permitiendo seleccionar el modelo que mejor equilibre precisión y robustez frente a datos nuevos.

Valores predichos vs valores reales de todos los modelos

Ajuste Fino y Validación

Se ajustan los parámetros de los modelos seleccionados mediante técnicas como la validación cruzada y la búsqueda en cuadrícula (GridSearchCV) para encontrar la configuración óptima que maximice la precisión y minimice el error. Este proceso también ayuda a confirmar la robustez del modelo y su capacidad para generalizar bien a partir de datos no vistos.

Valores predichos por el modelo vs valores reales

Conclusiones

Durante mi práctica en el módulo de Machine Learning, he probado varios modelos y analizado sus puntos fuertes y áreas de mejora. Después de un análisis detallado, tanto el Gradient Boosting Regressor como el Kernel Ridge Regression emergieron como destacados por su sobresaliente rendimiento. Esta elección refleja mi búsqueda de un modelo con buen rendimiento y mi crecimiento personal en este campo. Este proceso ha aumentado mi motivación por seguir aprendiendo y me ha enseñado el valor de la perseverancia y la curiosidad en el mundo del Machine Learning. Reconozco que todavía tengo mucho que aprender y estoy emocionada por enfrentar los desafíos futuros que me ayudarán a crecer en esta disciplina.