No tienes acceso a esta clase

¡Continúa aprendiendo! Únete y comienza a potenciar tu carrera

Visualizando el proceso de entrenamiento

6/22
Recursos

Aportes 11

Preguntas 2

Ordenar por:

¿Quieres ver más aportes, preguntas y respuestas de la comunidad?

Mis resultados:

  • loss : 27.95
  • mean_absolute_percentage_error : 15.30

🔻 Modelo:

import numpy as np
from keras.models import Sequential
from keras.layers import Dense, Activation

#Definición de la arquitectura
model = Sequential()
model.add(Dense(13, input_dim=13, kernel_initializer='normal',activation='relu'))
model.add(Dense(10, kernel_initializer='normal',activation='relu'))
model.add(Dense(8, kernel_initializer='normal',activation='relu'))
model.add(Dense(6, kernel_initializer='normal',activation='relu'))
model.add(Dense(4, kernel_initializer='normal',activation='relu'))
model.add(Dense(1, kernel_initializer='normal'))

# Compilación del modelo
model.compile(loss='mean_squared_error', optimizer='adam',metrics=['mean_absolute_percentage_error'])

👉 En las graficas se puede ver que a partir de los 200 epochs, los valores de error no varian mucho por lo que ese seria el número suficiente de iteraciones.

🔹 Mean absolute error:

🔹 Loss function:

Como pueden observar en el grafico a medida que aumentan las iteraciones disminuye el error en el training data, sin embargo, en el validation data el error tambien disminuye pero sigue siendo mayor al error del training data, esto es un claro ejemplo de underfitting ya que el modelo no es efectivo para los datos de entrenamiento,y tampoco lo sera al momento de generalizar con nueva data.

14.69 %


model = Sequential()

# Create our model
model.add(Dense(13, input_dim=13, kernel_initializer='normal', activation='relu'))

# Adding layers
# 9 inputs / neurons
model.add(Dense(9, kernel_initializer='normal', activation='relu'))

# Adding more layers
# 6 inputs / neurons
model.add(Dense(6, kernel_initializer='normal', activation='relu'))

# Adding more layers
# 3 inputs / neurons
model.add(Dense(3, kernel_initializer='normal', activation='relu'))

# Adding layers
# 1 output / neurons
model.add(Dense(1, kernel_initializer='normal'))

model.compile(loss='mean_squared_error', optimizer='adam', metrics=['mean_absolute_percentage_error'])

model.fit(x_train, y_train, batch_size=64, epochs=281, validation_data=(x_val,y_val))

result = model.evaluate(x_test, y_test)

result


Creo que es muy necesario tener en cuenta el batch_size antes de modificar los demás parámetros.

NOTA: Si la diferencia del loss de data set de validación y el set de
entrenamiento es muy grande es porque la rede esta sobre ajustada (overfitted)

Llegué a un error del 11% con una arquitectura 13-6-4-6-1 y 400 epochs.

14.8 %, con 199 epochs, batch_size = 38, y esta arquitectura:

En mi caso logré un error del 17.7604%.

Me desconcierta un poco el hecho de que el loss de validation es más bajo que el de entrenamiento en mi gráfica.

Comparto los resultados de mi experimento

# loss 13/6/4/1 con 100 epochs 19.08304214477539
# loss 13/13/6/4/1 con 100 epochs 20.731382369995117
# loss 13/13/6/4/1 con 200 epochs 16.245285034179688
# loss 13/13/6/4/1 con 500 epochs 13.11836051940918
# loss 13/13/6/4/1 con 1000 epochs 16.245285034179688

Muy bueno el curso !!!..Gracias

yo tuve un error medio de 10%
con 1000 epocas y 100 de cv