CommencezCommencez gratuitement

Diviser les données en ensembles d'entraînement et de validation

Vous avez appris qu'utiliser uniquement les données d'entraînement sans ensemble de validation mène à un problème appelé « surapprentissage » (overfitting). Lorsqu'il y a surapprentissage, le modèle prédit très bien les données pour les entrées d'entraînement, mais généralise très mal à des données jamais vues. Le modèle devient donc peu utile, puisqu'il ne peut pas bien généraliser. Pour éviter cela, vous pouvez utiliser un ensemble de validation.

Dans cet exercice, vous allez créer un ensemble d'entraînement et un ensemble de validation à partir du jeu de données dont vous disposez (c.-à-d. en_text contenant 1000 phrases en anglais et fr_text contenant les 1000 phrases en français). Vous utiliserez 80 % du jeu de données pour l'entraînement et 20 % pour la validation.

Cette activité fait partie du cours

Traduction automatique avec Keras

Voir le cours

Instructions de l’exercice

  • Définissez une séquence d'indices avec np.arange(), qui commence à 0 et a pour taille celle de en_text.
  • Définissez valid_inds comme les derniers indices (au nombre de valid_size) de la séquence d'indices.
  • Définissez tr_en et tf_fr, qui contiennent les phrases situées aux indices train_inds, dans les listes en_text et fr_text.
  • Définissez v_en et v_fr, qui contiennent les phrases situées aux indices valid_inds, dans les listes en_text et fr_text.

Exercice interactif pratique

Essayez cet exercice en complétant ce code d’exemple.

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])
Modifier et exécuter le code