ПочатиПочніть безкоштовно

Розбиття даних на тренувальну й валідаційну вибірки

Ви дізналися, що використання лише тренувальних даних без валідаційної вибірки призводить до проблеми, яку називають перенавчанням (overfitting). Коли відбувається перенавчання, модель дуже добре прогнозує дані для тренувальних прикладів, але погано узагальнює на невідомі дані. Тобто модель буде малокорисною, адже не вміє узагальнювати. Щоб цього уникнути, використовуйте валідаційну вибірку.

У цій вправі ви створите тренувальну й валідаційну вибірки з наявного набору даних (тобто en_text, що містить 1000 англійських речень, і fr_text, що містить 1000 французьких речень). Ви використаєте 80% набору даних для тренування та 20% — для валідації.

Ця вправа є частиною курсу

Machine Translation з Keras

Переглянути курс

Інструкції до вправи

  • Визначте послідовність індексів за допомогою np.arange(), що починається з 0 і має розмір en_text.
  • Задайте valid_inds як останні valid_size індексів із цієї послідовності.
  • Визначте tr_en і tf_fr, що містять речення за індексами train_inds у списках en_text та fr_text.
  • Визначте v_en і v_fr, що містять речення за індексами valid_inds у списках en_text та fr_text.

Інтерактивна практична вправа

Спробуйте виконати цю вправу, доповнивши цей зразок коду.

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])
Редагувати та запускати код