Dự án cuối 3: dữ liệu lớn và evaluate

Nâng dự án lên dữ liệu lớn: pipeline batch stream, đánh giá độ chính xác, xử lý nhiễu thiếu và chốt báo cáo metric.
Chuyên giaThuật toán ~120 phút

Giới thiệu

Bạn nâng dự án lên dữ liệu lớn gấp mười. Mọi con số cần có đối chứng.

Kiến thức cần nhớ

Mở rộng pipeline

  • Tăng dữ liệu gấp mười để lộ điểm vỡ.
  • Batch gom mẻ xử lý, stream xử lý ngay.
  • Ví dụ đời thường: giống thử quán với 10 lần khách.
  • Ghi lại thời gian và bộ nhớ ở quy mô mới.

Đánh giá đúng cách

  • Chia tập huấn luyện và kiểm thử riêng.
  • Metric luôn so với baseline ngây thơ.
  • Ví dụ đời thường: giống chấm thi phải có điểm liệt để so.
  • Giữ seed để chạy lại ra cùng số.

Mổ lỗi và chốt metric

  • Gom 50 lỗi mẫu rồi phân nhóm nguyên nhân.
  • Xử lý nhiễu, thiếu và ngoại lai.
  • Ví dụ đời thường: giống phân loại hàng lỗi theo nguyên nhân.
  • Chốt bảng metric kèm độ lệch nhiều lần chạy.
# chia tập đơn giản
du_lieu = list(range(100))  # 100 mẫu
cat = int(0.8 * len(du_lieu))  # mốc 80 phần trăm
train, test = du_lieu[:cat], du_lieu[cat:]  # chia train test
print(len(train), len(test))  # ra 80 20

Ví dụ

  • Pipeline chạy hết dữ liệu gấp mười mà không hết bộ nhớ.
  • Train và test không trùng mẫu, chạy lại số lệch ít.

💻 Bài tập

Dự án cuối, ngày 3. Nộp vào repo final-project/.

Bài 1: Tăng quy mô gấp 10

  1. Sinh hoặc tải dữ liệu gấp 10 lần cỡ yêu cầu N trong SPEC.md.
  2. Chạy toàn bộ pipeline. Ghi thời gian, bộ nhớ đỉnh (/usr/bin/time -v hoặc tracemalloc), và chỗ vỡ đầu tiên.
  3. Sửa chỗ vỡ: đọc theo luồng thay vì nạp hết, xử lý theo lô, hoặc chuyển phần nặng sang chế độ batch/stream phù hợp.
quy_mô   thời_gian   bộ_nhớ_đỉnh   trạng_thái
N        ...         ...           ok
10N      ...         ...           vỡ ở đâu / ok sau khi sửa

Bài 2: Đánh giá có kiểm soát

  1. Chia train/test (hoặc tập truy vấn đánh giá) cố định, không trùng mẫu. Có test kiểm tra không trùng.
  2. Tính metric chính trong SPEC.md và so với 1 baseline ngây thơ (đoán đa số, quét tuyến tính, gợi ý phổ biến, tùy dự án).
  3. Chạy 3 lần với 3 seed. Báo cáo trung bình và độ lệch chuẩn.
phương_pháp   metric_chính   độ_lệch   thời_gian
baseline      ...
dự án         ...

Bài 3: Phân tích lỗi (nâng cao)

  1. Lấy 50 trường hợp sai (hoặc chậm nhất). Phân nhóm nguyên nhân: dữ liệu nhiễu, thiếu giá trị, ngoại lai, giới hạn thuật toán, lỗi code.
  2. Sửa nhóm lớn nhất. Đo lại metric.
  3. EVALUATION.md: bảng quy mô, bảng metric, bảng nhóm lỗi, việc chưa sửa và lý do.

✅ Tiêu chí hoàn thành

  • Pipeline chạy hết dữ liệu 10N, có bảng thời gian và bộ nhớ.
  • Test chứng minh train/test không trùng.
  • Metric có baseline và độ lệch 3 lần chạy.
  • Bảng 50 lỗi phân nhóm.

❓ Câu hỏi ôn tập

  1. Vì sao tăng dữ liệu gấp mười?
  2. Baseline ngây thơ để làm gì?
  3. Seed giữ để làm gì?
  4. Mổ lỗi xong làm gì tiếp?

🌕 Bạn đã hoàn thành ngày 169. Làm hết bài tập phía trên rồi sang ngày tiếp theo.

Bớt paste mù, hiểu sâu từng dòng mình viết.

180 Days Challenge. 180 ngày cai nghiện vibe code.