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
Instrucciones del ejercicio
- Define una secuencia de índices utilizando
np.arange(), que comienza con 0 y tiene un tamaño deen_text. - Define
valid_indscomo los últimos índicesvalid_sizede la secuencia de índices. - Define
tr_enytf_fr, que contienen las frases encontradas entrain_indsindices, en las listasen_textyfr_text. - Define
v_enyv_fr, que contienen las frases encontradas envalid_indsindices, en las listasen_textyfr_text.
Ejercicio interactivo práctico
Prueba este ejercicio y completa 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])