Bắt đầu ngayBắt đầu miễn phí

Chia dữ liệu thành tập huấn luyện và tập kiểm định

Bạn đã biết rằng chỉ dùng dữ liệu huấn luyện mà không có tập kiểm định sẽ dẫn đến hiện tượng gọi là overfitting. Khi overfitting xảy ra, mô hình dự đoán rất tốt trên dữ liệu huấn luyện nhưng tổng quát hóa rất kém trên dữ liệu chưa thấy. Điều này khiến mô hình không hữu ích vì không thể tổng quát hóa. Để tránh điều đó, bạn có thể dùng một tập kiểm định.

Trong bài tập này, bạn sẽ tạo tập huấn luyện và tập kiểm định từ bộ dữ liệu hiện có (tức en_text gồm 1000 câu tiếng Anh và fr_text gồm 1000 câu tiếng Pháp). Bạn sẽ dùng 80% dữ liệu cho huấn luyện và 20% cho kiểm định.

Bài tập này là một phần của khóa học

Machine Translation với Keras

Xem khóa học

Hướng dẫn bài tập

  • Tạo một dãy chỉ số dùng np.arange(), bắt đầu từ 0 và có kích thước bằng en_text.
  • Gán valid_indsvalid_size chỉ số cuối cùng của dãy chỉ số đó.
  • Tạo tr_entf_fr, chứa các câu tại các chỉ số train_inds trong danh sách en_textfr_text.
  • Tạo v_env_fr, chứa các câu tại các chỉ số valid_inds trong danh sách en_textfr_text.

Bài tập tương tác thực hành trực tiếp

Hãy thử làm bài tập này bằng cách hoàn thành đoạn mã mẫu này.

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])
Chỉnh sửa và Chạy Mã