UC-IIC2613 / Syllabus

27 stars 10 forks source link

[Tarea 4] Parte 3-Valores nan en método fit() #205

Open gustavobarrezueta opened 3 years ago

gustavobarrezueta commented 3 years ago

Hola! Escribo esta issue para pedir ayuda, ya que he estado pegado en esta parte por un par de horas. Mi problema es que al llamar el método fit de keras, las métricas de rendimiento son 'nan'. Mi línea es algo como (sé que no se puede mostrar código pero creo que es una linea de código muy general): model.fit(X_train, y_train, epochs=epochs, batch_size=32, validation_data=(X_val, y_val)) y me printea esto: nan_problem A los data set solo les aplico un escalamiento antes.

IngElecPuc commented 3 years ago

Hola ¿Podrías describir tanto tu matriz de características y el vector Target para la regresión? Además, ¿Que preprocesamiento estás aplicando?

gustavobarrezueta commented 3 years ago

Hola! Sí, las matrices de características tienen 9 columnas que son las nueves características que nos dan. El vector target es solo la columna 'price'. Ambas son numpy array cuando se las paso al método fit. Para crear la matriz de test usé la columna 'Usage' y luego para crear la matriz de validación usé StratifiedShuffleSplit. El preprocesamiento que hice fue pasar las variables categóricas a numéricas con un OrdinalEncoder y luego usé un escalador minmax para las matrices de características. También probé con un StandardScaler y me da los mismos valores nan.

IngElecPuc commented 3 years ago

Mira, en general vas bien. Esto parece un error de debugueo con la librería más que otra cosa. Te propongo que armes tu matriz por construcción, es decir que vayas agregando características (columnas) y hagas sucesivos entrenamientos. El objetivo no es predecir bien, sino ver si estás utilizando bien las clases de construcción, selección y escalamiento. Parte por las variables en punto flotante, has un entrenamiento, y ve si te arrojan números que no son nan. Cuando te salga algo agrega una nueva variable a la matriz. Si tiene problemas, es probable que se deba a que hay algo mal trabajado desde el set de datos hasta el punto. Alternativamente revisa si tienes valores nan en tu matriz de entrenamiento, o en los datos del dataset. No debería estar este problema, pero como es un análisis simple tampoco cuesta.

gustavobarrezueta commented 3 years ago

@IngElecPuc Hola Felipe, no puedo resolver el problema, crees que nos podamos juntar? Si es así, te dejo mi mail: gabarrezueta@uc.cl Gracias

antoniaalcayaga commented 3 years ago

hola! no se si ya lo solucionaste, no soy ayudante, pero a mi me paso lo mismo con keras ocupando el optimizador SDG y lo cambie a adam y funcionó mucho mejor, por si te sirve :)

gustavobarrezueta commented 3 years ago

Hola! Sii, me dí cuenta de eso ahora que lo solucioné. Mi error era que ocupaba 'to_numpy' para pasar el DF a array y algo pasaba ahí que luego el resultado no servía para el método fit(). Gracias por el tip igual :)