Kom igångKom igång gratis

Dela upp data i tränings- och valideringsset

Du har lärt dig att enbart använda träningsdata utan ett valideringsdataset leder till ett problem som kallas overfitting (överanpassning). När överanpassning uppstår blir modellen mycket bra på att förutsäga träningsdata, men generaliserar mycket dåligt till ny, osedd data. Det gör modellen begränsad i praktiken. För att undvika detta kan du använda ett valideringsdataset.

I den här övningen skapar du ett tränings- och valideringsset från det dataset du har (det vill säga en_text med 1 000 engelska meningar och fr_text med 1 000 franska meningar). Du använder 80 % av datasetet som träningsdata och 20 % som valideringsdata.

Den här övningen är en del av kursen

Maskinöversättning med Keras

Visa kurs

Övningsinstruktioner

  • Definiera en sekvens av index med hjälp av np.arange(), som börjar på 0 och har storleken en_text.
  • Definiera valid_inds som de sista valid_size indexen från sekvensen av index.
  • Definiera tr_en och tf_fr, som innehåller meningarna vid train_inds-indexen i listorna en_text och fr_text.
  • Definiera v_en och v_fr, som innehåller meningarna vid valid_inds-indexen i listorna en_text och fr_text.

Interaktiv övning med praktiskt arbete

Testa den här övningen genom att slutföra den här exempelkoden.

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])
Redigera och kör kod