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_inds
como los últimos índicesvalid_size
de la secuencia de índices. - Define
tr_en
ytf_fr
, que contienen las frases encontradas entrain_inds
indices, en las listasen_text
yfr_text
. - Define
v_en
yv_fr
, que contienen las frases encontradas envalid_inds
indices, en las listasen_text
yfr_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])