-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathtest_process_missing_values.py
More file actions
148 lines (110 loc) · 5.34 KB
/
test_process_missing_values.py
File metadata and controls
148 lines (110 loc) · 5.34 KB
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
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
import sys
import pandas as pd
from colorama import Fore
from plantillaPosibleDecisionTreesParaEGela import process_missing_values, select_features, parse_args
import plantillaPosibleDecisionTreesParaEGela
def probar_processor_drop():
print(f"\n{Fore.CYAN}--- Iniciando prueba del proceso de missing values. DROP ---{Fore.RESET}")
# --- TRUCO PARA EL TEST: Simulamos la entrada de terminal ---
sys.argv = [
'test_process_missing_values.py',
'-m', 'train',
'-f', 'tu_archivo.csv',
'-a', 'kNN',
'-p', 'cuerpoMensaje'
]
# 1. CARGAR ARGS CORRECTAMENTE
# Guardamos el resultado de parse_args() en el módulo de la plantilla
plantillaPosibleDecisionTreesParaEGela.args = parse_args()
# Seleccionamos que se hará con los missing_values
plantillaPosibleDecisionTreesParaEGela.args.preprocessing["missing_values"]="drop"
print(Fore.GREEN + "Configuración cargada con éxito" + Fore.RESET)
# 2. Crear datos de prueba
data_prueba = {
'cuerpoMensaje': ["Texto A", "Texto B", "Texto B", None],
'edad': [20, 40, None, 10]
}
plantillaPosibleDecisionTreesParaEGela.data = pd.DataFrame(data_prueba)
# 3. EJECUTAR SELECT_FEATURES
numerical_feature, text_feature, categorical_feature = select_features()
# 4. Ejecutar la función de limpieza de nulos
try:
process_missing_values(numerical_feature, categorical_feature)
print(f"\n{Fore.GREEN}Resultado final del DataFrame:{Fore.RESET}")
# IMPORTANTE: Imprimimos la variable global del módulo, que es la que se modifica
print(plantillaPosibleDecisionTreesParaEGela.data)
except Exception as e:
print(f"{Fore.RED}Error en la prueba: {e}{Fore.RESET}")
def probar_processor_impute_mean():
print(f"\n{Fore.CYAN}--- Iniciando prueba del proceso de missing values. Impute - Strategy: mean ---{Fore.RESET}")
# --- TRUCO PARA EL TEST: Simulamos la entrada de terminal ---
sys.argv = [
'test_process_missing_values.py',
'-m', 'train',
'-f', 'tu_archivo.csv',
'-a', 'kNN',
'-p', 'cuerpoMensaje'
]
# 1. CARGAR ARGS CORRECTAMENTE
# Guardamos el resultado de parse_args() en el módulo de la plantilla
plantillaPosibleDecisionTreesParaEGela.args = parse_args()
# Seleccionamos que se hará con los missing_values
plantillaPosibleDecisionTreesParaEGela.args.preprocessing["missing_values"] = "impute"
# Seleccionamos la estrategia de imputación en caso de missing_values
plantillaPosibleDecisionTreesParaEGela.args.preprocessing["impute_strategy"] = "mean"
print(Fore.GREEN + "Configuración cargada con éxito" + Fore.RESET)
# 2. Crear datos de prueba
data_prueba = {
'cuerpoMensaje': ["Texto A", "Texto B", "Texto B", None],
'edad': [20, 40, None, 10]
}
plantillaPosibleDecisionTreesParaEGela.data = pd.DataFrame(data_prueba)
# 3. EJECUTAR SELECT_FEATURES
numerical_feature, text_feature, categorical_feature = select_features()
# 4. Ejecutar la función de limpieza de nulos
try:
process_missing_values(numerical_feature, categorical_feature)
print(f"\n{Fore.GREEN}Resultado final del DataFrame:{Fore.RESET}")
# IMPORTANTE: Imprimimos la variable global del módulo, que es la que se modifica
print(plantillaPosibleDecisionTreesParaEGela.data)
except Exception as e:
print(f"{Fore.RED}Error en la prueba: {e}{Fore.RESET}")
def probar_processor_impute_median():
print(f"\n{Fore.CYAN}--- Iniciando prueba del proceso de missing values. Impute - Strategy: median ---{Fore.RESET}")
# --- TRUCO PARA EL TEST: Simulamos la entrada de terminal ---
sys.argv = [
'test_process_missing_values.py',
'-m', 'train',
'-f', 'tu_archivo.csv',
'-a', 'kNN',
'-p', 'cuerpoMensaje'
]
# 1. CARGAR ARGS CORRECTAMENTE
# Guardamos el resultado de parse_args() en el módulo de la plantilla
plantillaPosibleDecisionTreesParaEGela.args = parse_args()
# Seleccionamos que se hará con los missing_values
plantillaPosibleDecisionTreesParaEGela.args.preprocessing["missing_values"] = "impute"
# Seleccionamos la estrategia de imputación en caso de missing_values
plantillaPosibleDecisionTreesParaEGela.args.preprocessing["impute_strategy"] = "median"
print(Fore.GREEN + "Configuración cargada con éxito" + Fore.RESET)
# 2. Crear datos de prueba
data_prueba = {
'cuerpoMensaje': ["Texto A", "Texto B", "Texto B", None],
'edad': [20, 40, None, 10]
}
plantillaPosibleDecisionTreesParaEGela.data = pd.DataFrame(data_prueba)
# 3. EJECUTAR SELECT_FEATURES
# Ahora que 'args' ya existe en el módulo, no dará error
numerical_feature, text_feature, categorical_feature = select_features()
# 4. Ejecutar la función de limpieza de nulos
try:
process_missing_values(numerical_feature, categorical_feature)
print(f"\n{Fore.GREEN}Resultado final del DataFrame:{Fore.RESET}")
# IMPORTANTE: Imprimimos la variable global del módulo, que es la que se modifica
print(plantillaPosibleDecisionTreesParaEGela.data)
except Exception as e:
print(f"{Fore.RED}Error en la prueba: {e}{Fore.RESET}")
if __name__ == "__main__":
probar_processor_drop()
probar_processor_impute_mean()
probar_processor_impute_median()