Chia dữ liệu thành tập huấn luyện và tập kiểm định theo tỉ lệ
Trước khi huấn luyện bất kỳ mô hình nào, dữ liệu phải được chia thành phần để học và
Tiến độ của tôi ở bài này
Điểm và code bạn nộp được lưu vào tài khoản sau khi chấm bài.
Đang tải điểm của bạn…
Kiến thức và chủ đề
Kiến thức tiên quyết: python-basics, python-lists.
Nội dung đề bài
Mô tả bài toán
Trước khi huấn luyện bất kỳ mô hình nào, dữ liệu phải được chia thành phần để học và phần để kiểm tra. Bài này luyện đúng một bước nhỏ nhất của quy trình đó: cắt một danh sách nhãn thành hai phần liên tiếp theo tỉ lệ cho trước, giữ nguyên thứ tự ban đầu.
Yêu cầu
Viết hàm train_valid_split(labels, train_ratio) trả về dict có hai khoá train và valid. Gọi n là số phần tử của labels và k = floor(n * train_ratio). Hàm phải trả train là k phần tử đầu và valid là n - k phần tử còn lại, đúng thứ tự như trong labels.
Quy ước nộp bài
Nộp hàm train_valid_split trong solution.py. Hệ thống gọi hàm trực tiếp với hai đối số theo tên và so giá trị trả về; không đọc dữ liệu từ stdin và không in ra stdout.
Input
- labels: danh sách nhãn (số nguyên hoặc chuỗi), từ 1 đến 20 phần tử.
- train_ratio: số thực trong khoảng (0, 1), tỉ lệ mẫu dành cho tập huấn luyện.
Output
Dict {"train": [...], "valid": [...]} chứa hai danh sách con liên tiếp của labels, không trùng phần tử và không làm mất phần tử nào.
Ràng buộc
- k được làm tròn xuống, không làm tròn lên và không làm tròn tới gần nhất.
- Dữ liệu kiểm tra luôn cho 1 <= k <= n - 1, nên hai tập đều khác rỗng.
- Không xáo trộn: thứ tự phần tử trong mỗi tập giữ nguyên như labels.
Ví dụ 1
Input
train_valid_split(labels=[10, 20, 30, 40], train_ratio=0.5)
Output
{"train": [10, 20], "valid": [30, 40]}
Ví dụ 2
Input
train_valid_split(labels=["a", "b", "c", "d", "e", "f", "g", "h"], train_ratio=0.75)
Output
{"train": ["a", "b", "c", "d", "e", "f"], "valid": ["g", "h"]}
Giải thích
Với labels = [10, 20, 30, 40] và train_ratio = 0.5 thì k = floor(4 * 0.5) = 2, nên kết quả là {"train": [10, 20], "valid": [30, 40]}.
Gợi ý và lời giải chỉ mở sau khi bạn bấm Nộp bài. Giáo viên và quản trị viên mở được ngay.
Góp ý & báo lỗi bài tập
Đề bài chưa rõ, test có vấn đề hay bạn có ý tưởng giúp bài tốt hơn? Gửi cho đội ngũ AI Empire nhé — mỗi góp ý đều được đọc.
