-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathprep.py
68 lines (59 loc) · 2.61 KB
/
prep.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
'''
En este módulo se hará el preprocesamiento de los datos
para el modelo de predicción de precios de casas
- Este script leerá los achivos de train y test de la carpeta "raw".
- Y guardara en la carpeta de "prep" la base de datos que se ocupará
para el modelo.
'''
import os
import logging
from datetime import datetime
import argparse
from src.scripts_prep import load_data, preprocess_data
if not os.path.exists("logs/"):
os.makedirs("logs/")
# Setup Logging
now = datetime.now()
date_time = now.strftime("%Y%m%d_%H%M%S")
log_prep_file_name = f"logs/{date_time}_prep.log"
logging.basicConfig(
filename=log_prep_file_name,
level=logging.DEBUG,
filemode='w', # Cambiado de 'a' a 'w' para sobrescribir los logs
format='%(name)s - %(levelname)s - %(message)s')
if __name__ == "__main__":
# Read inputs
logging.info("Empezando el preproceso ...")
# Se configura el parser de argumentos
parser = argparse.ArgumentParser(
description='Preprocessing script for house price prediction model')
parser.add_argument('--input_train', type=str,
default='./data/raw/train.csv',
help='Path to the input train data')
parser.add_argument('--input_test', type=str,
default='./data/raw/test.csv',
help='Path to the input test data')
parser.add_argument('--output_prep', type=str,
default='./data/prep',
help='Path to the output preprocessed data')
# Se obtienen los argumentos proporcionados por el usuario
args = parser.parse_args()
logging.debug("Rutas de los datos: %s, %s, %s",
args.input_train, args.input_test, args.output_prep)
# Se asegura de que la carpeta de salida exista, si no, se crea
if not os.path.exists(args.output_prep):
os.makedirs(args.output_prep)
# Se cargan los datos
logging.info("Cargando los datos ...")
data = load_data(args.input_train,
args.input_test, output_prep_data='data/raw/data.csv')
logging.debug("Datos cargados con %d filas y %d columnas",
data.shape[0], data.shape[1])
logging.info("Los datos fueron cargados correctamente")
# Se hace el primer preprocesamiento de los datos
logging.info("Preprocesando los datos ...")
data = preprocess_data('data/raw/data.csv',
output_prep_data='data/prep/data_prep.csv')
logging.debug("Datos preprocesados con %d filas y %d columnas",
data.shape[0], data.shape[1])
logging.info("Los datos fueron preprocesados correctamente")