ComenzarEmpieza gratis

División de datos en conjuntos de entrenamiento y validación

Has aprendido que utilizar solo los datos de entrenamiento sin un conjunto de datos de validación provoca un problema denominado sobreajuste. Cuando se produce un sobreajuste, el modelo será muy bueno a la hora de predecir datos para las entradas de entrenamiento, pero generalizará muy mal los datos no vistos. Esto significa que el modelo no será muy útil, ya que no puede generalizarse. Para evitarlo, puedes utilizar un conjunto de datos de validación.

En este ejercicio, crearás un conjunto de entrenamiento y validación a partir del conjunto de datos que tienes (es decir, en_text, que contiene 1000 frases en inglés, y fr_text, que contiene las 1000 frases en francés). Utilizarás el 80 % del conjunto de datos como datos de entrenamiento y el 20 % como datos de validación.

Este ejercicio forma parte del curso

Traducción automática con Keras

Ver curso

Instrucciones del ejercicio

  • Define una secuencia de índices utilizando np.arange(), que comienza con 0 y tiene un tamaño de en_text.
  • Define valid_inds como los últimos índices valid_size de la secuencia de índices.
  • Define tr_en y tf_fr, que contienen las frases encontradas en train_inds indices, en las listas en_text y fr_text.
  • Define v_en y v_fr, que contienen las frases encontradas en valid_inds indices, en las listas en_text y fr_text.

Ejercicio interactivo práctico

Prueba este ejercicio completando el código de muestra.

train_size, valid_size = 800, 200
# Define a sequence of indices from 0 to len(en_text)
inds = ____.____(len(_____))
np.random.shuffle(inds)
train_inds = inds[:train_size]
# Define valid_inds: last valid_size indices
valid_inds = inds[____]
# Define tr_en (train EN sentences) and tr_fr (train FR sentences)
tr_en = [en_text[____] for ti in ____]
tr_fr = [____ for ti in ____]
# Define v_en (valid EN sentences) and v_fr (valid FR sentences)
v_en = [____ for vi in valid_inds]
v_fr = [____ for vi in ____]
print('Training (EN):\n', tr_en[:3], '\nTraining (FR):\n', tr_fr[:3])
print('\nValid (EN):\n', v_en[:3], '\nValid (FR):\n', v_fr[:3])
Editar y ejecutar código