Skip to content

Repositorio del PI02 de Data Science

Notifications You must be signed in to change notification settings

Oscarszdz/Datathon

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

37 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

HenryLogo

MODELOS DE CLASIFICACIÓN

​ Implementación 2 modelos de clasificación (Supervisado y No Supervisado) para el mercado inmobiliario en Estados Unidos. ​

Mercado inmobiliario

​ Dentro de la sociedad globalizada e industrializada, es sabido que los precios de los inmuebles han presentado un constante cambio, por lo que quienes deseen invertir o vender una propiedad se enfrentan al fenómeno especulativo existente en la valorización de éstos. Esto, debido a la constante tendencia de las ciudades a crecer demográfica y comercialmente, llegando a un punto en donde no se tiene certeza de la valorización real dentro del sector en donde se desee invertir. ​ Pese a que el precio depende, en cierta medida, de las tendencias que esté teniendo el mercado inmobiliario en un determinado tiempo, poder estimar adecuadamente el valor de una propiedad es una referencia clave para entender si es una buena oportunidad, ya sea de compra o de venta. ​

Objetivos:

  1. Implementar un modelo de clasificación con aprendizaje supervisado que permita clasificar el precio de las propiedades en venta, utilizando los datos que se han puesto a su disposición. ​ Para esto debe crear la columna category_price, en la cual se consideran las categorías
    • 'low': Para precios entre 0 y 999 dólares (debe tomar valor 1 en el archivo con las predicciones).
    • 'medium': Para precios entre 1000 y 1999 dólares (debe tomar valor 0 en el archivo con las predicciones).
    • 'high': Para precios desde 2000 dólares en adelante (debe tomar valor 0 en el archivo con las predicciones). ​ Considerando esta categorización, el objetivo es predecir si una propiedad pertenece a la categoría de precios bajos (low). ​
  2. Implementar un modelo de clasificación con aprendizaje no supervisado, utilizando clustering que agrupe las propiedades por segun las 3 categorias a las que pueden pertenecer. Para ello, solo usaran el dataset de test provisto, eliminando previamente las caracteristicas que presenten nulos. ​

Entrega

​ Deben tener el código en un script .py o Jupyter Notebook .ipynb, el cual debe incluir un buen EDA, feature engineerging y, de ser posible, un pipeline de Machine Learning para el procesamiento de datos que consideren necesario. Es importante explicar claramente cada paso realizado mediante comentarios en el script o textos formato markdown dentro del Notebook, pensar que cualquier persona (en este caso serán los Henry Mentors evaluadores) debe entender de la mejor manera posible cada razonamiento y pasos aplicados. ​ Recuerden, además, que deben enviar el repositorio que contenga el proyecto, por lo que es importante que le dediquen tiempo también a esta parte, dejando todo ordenado y con un README acorde, que sirva de introducción al contenido dentro de éste. ​ Por otro lado, es obligatorio que el script genere un archivo .csv sólo con las predicciones, teniendo únicamente una sola columna (sin index) que debe llamarse 'pred' y tenga todos los valores de las predicciones, con un valor por fila. De no llamarse así la única columna, nuestro script de validación NO LO VA A TOMAR y no aparecerán en el dashboard. ​ El nombre del archivo debe ser su usuario de GitHub, si su usuario de GitHub es 'pjr95', el archivo .csv con las predicciones debe llamarse 'pjr95.csv'. Vamos a validar tanto los datos que suban como el código, por lo que seguir estos pasos es fundamental. ​ Cuando entreguen les pedimos que verifiquen que su usuario de GitHub aparezca en el dashboard. En caso de que no aparezca, tal como se comentó más arriba, es debido a que el archivo entregado con las predicciones no cumple con los requisitos solicitados.

En el formulario de entrega, deben subir el archivo de la predicción en la sección que corresponde a su modelo (supervisado o no supervisado). Deben entregar al menos una vez, al menos un modelo. Pueden entregar todas las veces que quieran cualquiera de los dos modelos. ​

Métrica a utilizar

​ Como método de evaluación del desempeño, dependerá del modelo que usted decida implementar. ​

  1. Para el modelo de aprendizaje supervisado, se utilizará la métrica Accuracy para las propiedades de precio bajo (low) a partir de la matriz de confusión (Confusion Matrix).

$$ Accuracy=\frac{TP+TN}{P+N}$$

siendo $TP$ los verdaderos positivos (las propiedades de precio 'low' que realmente lo son), $TN$ verdaderos negativos (las propiedades que realmente NO son de precio 'low') y $P+N$ población total.

Como métrica adicional para verificar el desempeño de su modelo, también se utilizará la métrica de precisión (Recall) para las propiedades baratas.

$$ Recall=\frac{TP}{TP+FN}$$

​ Donde $TP$ son los verdaderos positivos (las propiedades de precio 'low' que realmente lo son) y $FN$ los falsos negativos (las propiedades de precio 'low' que fueron marcadas incorrectamente).

​ 2. Para el modelo de aprendizaje no supervisado, se utilizará la métrica Silhouette score.

$$ Silhouette=\frac{b_i-a_i}{max(b_i,a_i)}$$

Dónde $b_i$ es la distancia promedio al grupo más cercano desde el punto i, $a_i$ es la distancia promedio a todos los demás puntos del clúster al que pertenece el punto i. ​

Archivos provistos

​ Se proveen los siguientes archivos en formato parquet:

  • 'train.parquet': Contiene 346479 registros y 22 dimensiones, el cual incluye la información numérica del precio en la columna price.
  • 'test.csv': Contiene 38498 registros y 21 dimensiones, el cual no incluye la información del precio.

Link al dataset: https://drive.google.com/drive/folders/1nJ9ZMj6E6zh6McC9NwCA6KopfUIOG_1O

Descripción de las dimensiones

  • id: Identificador del anuncio.
  • url: Link web del anuncio.
  • region: Región de Estados Unidos en donde se encuentra la propiedad.
  • region_url: Link web de los anuncios pertenecientes a la región.
  • price: Precio de la propiedad en dólares.
  • type: Tipo de propiedad.
  • sqfeet: Metros cuadrados de la propiedad.
  • beds: Cantidad de dormitorios.
  • baths: Cantidad de baños.
  • cats_allowed: Si se permiten gatos en la propiedad toma el valor 1, 0 para caso contrario.
  • dogs_allowed: Si se permiten perros en la propiedad toma el valor 1, 0 para caso contrario.
  • smoking_allowed: Si se permite fumar en la propiedad toma el valor 1, 0 para caso contrario.
  • wheelchair_access: Si la propiedad posee acceso para sillas de ruedas toma el valor 1, 0 para caso contrario.
  • electric_vehicle_charge: Si la propiedad posee cargador para vehículos eléctricos toma el valor 1, 0 para caso contrario.
  • comes_furnished: Si la propiedad viene amueblada toma el valor 1, 0 para caso contrario.
  • laundry_options: Opciones de lavandería (w/d in unit: Lavadora/secadora en la propiedad, w/d hookups: conexión para lavadora/secadora, laundry on site: servicio de lavandería en el lugar, laundry in bldg: servicio de lavandería en el edificio, no laundry on sit: sin servicio de lavandería).
  • parking_options: Opciones de estacionamiento (off-street parking: zona de estacionamiento, attached garage: garaje incluido, carport: cochera/garaje abierto, detached garage: garaje separado, street parking: estacionamiento delimitado en la calle, no parking: sin estacionamiento, valet parking: estacionamiento con servicio valet).
  • image_url: Link web de la imagen de la propiedad en el anuncio.
  • description: Descripción de la propiedad puesta en el anuncio.
  • lat: Latitud.
  • long: Longitud.
  • state: Código del estado al que pertenece la propiedad. ​

Notas

  • Para detalles del código e implementación, consulte Notebook.
  • Dentro de la carpeta Supervisado y No_supervisado, encontrará, los archivos en formato .csv, con los valores predichos correspondientemente.

About

Repositorio del PI02 de Data Science

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • Jupyter Notebook 99.7%
  • Other 0.3%