Se requiere Python3 para ejecutar la mayoría de los scripts presentes
Generar entorno virtual
python3 -m venv env
Instalar librerías
python3 -m pip install -r requirements.txt
Para poder interactuar con el entorno AWS se requiere generar un archivo .env
y depositar allí las Keys de AWS. Se puede utilizar de referencia el archivo .env_example
.
Una vez depositadas las keys, se puede ejecutar el archivo aws_init.py
para generar automáticamente las tablas necesarias para depositar la información.
Para la porción de scrapping es necesario tener instalado chromium
.
En varios de los archivos encontrarán constantes al principio de los scripts que los ayudarán a configurar algunas de las porciones de ejecución de los mismos.
Dentro de las carpetas ArgenProp y ZonaProp van a encontrar otra carpeta llamada scrapping. Allí podrán encontrar los scripts para ejecutar la extracción de información para ambos portales inmobiliarios
Dentro de las carpetas ArgenProp y ZonaProp van a encontrar una carpeta llamada etls. Aquí van a ver varios archivos que cumplen distintos pasos en el preparado de los datos.
- file_to_raw.py -> Realiza una extracción de los archivos generados por la porción de scrapping y los deposita en la tabla DynamoDB "RAW" de cada portal. Por ejemplo, "RAW_ZonaProp"
- raw_to_stg.py -> Realiza una extracción de, por ejemplo, "RAW_ZonaProp", procesa la información para hacerla mas "linda" (Normaliza precios, realiza calculos de superficie, llena información de baños, cuartos, cocheras, etc) y la deposita en la respectiva tabla "STG". Por ejemplo "STG_ZonaProp"
Encontrarán la carpeta Machine Learning. Aquí podrán encontrar lo siguiente:
- stg_extractor.py -> Realiza una extracción de toda la información procesada (Tablas "STG_ZonaProp" y "STG_ArgenProp") y las deposita en un archivo local
- data_clean.ipynb -> Realiza una limpieza final de la información (Remueve nulos, normaliza antiguedades, llena información, etc) y genera un archivo limpio listo para ser utilizado para la porción de Machine Learning.
- data_analysis.ipynb -> A partir de la información limpia, se realizan análisis adicionales de distribuciones, desviaciones, etc. con el objetivo de normalizar la información lo más posible previo a la generación de los modelos.
- model.ipynb -> Archivo donde se generan los modelos. Se eligió aquí ir por dos caminos, uno con la información sin especificación de barrio y otro con OneHotEncoding aplicado al barrio. Los modelos finales pueden encontrarse en la carpeta Models