Practical Data Science là môn hiếm hoi mà spec assignment viết rõ đến mức gần như phát sẵn checklist, vậy mà điểm vẫn rơi hàng loạt. Lý do: sinh viên đọc spec như đọc gợi ý, trong khi người chấm đọc nó như hợp đồng. Bài này mổ đúng spec A1 kỳ 25S3 (bản spec thật, cross-list cho cả COSC2999 và COSC2809) để bạn thấy điểm nằm ở từng dòng nào.

Chi tiết dưới đây bám theo spec kỳ 25S3 và cấu trúc các kỳ gần đây. Task và dataset đổi theo kỳ, đối chiếu Canvas kỳ của bạn trước khi làm.

Cấu trúc điểm: A1 25%, A2 35%, A3 nhóm

A1 Data Preparation and Exploration chiếm 25%, chia đều 5 task, mỗi task đúng 5%. A2 Data Modelling chiếm 35%, làm cá nhân, nộp Jupyter notebook kèm report PDF (kỳ 2021 phần này từng chạy dưới dạng một cuộc thi Kaggle riêng của lớp). A3 là project nhóm về modelling trên dữ liệu thực. Điểm nhấn của cấu trúc này: A1 không khó về thuật toán, nó là bài kiểm tra kỷ luật, và 25% đó gần như là điểm tặng cho ai đọc kỹ spec.

A1 theo spec thật: 5 task, mỗi task 5%

Task 1: làm sạch dữ liệu, và phải khai báo mình đã sửa gì

Dataset kỳ 25S3 là bản chỉnh sửa của bộ UCI Student Performance (file student_data_25s3.csv). Spec cài sẵn lỗi: typo, khoảng trắng thừa, giá trị bất khả thi, giá trị thiếu. Làm đúng là dò từng cột theo loại lỗi, sửa, và liệt kê rõ những dòng đã thay đổi vì spec yêu cầu điều đó tường minh. Làm sai là gọi dropna() một phát rồi khai 'đã làm sạch dữ liệu'. Người chấm muốn thấy quyết định, không phải kết quả: câu mẫu bạn có thể dùng trong report: 'Dòng 214 có age bằng 222, một giá trị bất khả thi với sinh viên trung học, mình sửa thành 22 dựa trên phân phối của cột thay vì xóa dòng, để không mất 30 quan sát còn lại của bản ghi.'

Task 2: visualisation có lý do, không phải visualisation cho đẹp

Spec đòi đúng 3 biểu đồ đơn biến cho 3 loại dữ liệu khác nhau (nominal, ordinal, numerical) kèm lý do chọn loại biểu đồ, 3 cặp biểu đồ theo giả thuyết, và một scatter matrix cho 3 cột số. Viết sai kinh điển ở đây là chọn pie chart cho biến ordinal rồi không giải thích gì. Mỗi biểu đồ cần một câu giả thuyết đi kèm, kiểu 'mình kỳ vọng số giờ học tương quan dương với điểm cuối kỳ, biểu đồ này kiểm tra điều đó'.

Task 3: imputation là bài so sánh, không phải bài điền số

Spec yêu cầu tạo hai file: student_fix1.csv điền bằng mean, student_fix2.csv điền bằng median, rồi thảo luận tác động của từng cách, kèm mấy câu lý thuyết về outlier: outlier ảnh hưởng độ lệch chuẩn thế nào, khi nào không nên xóa outlier, phát hiện outlier bằng gì. (Bạn học COSC2999 hệ masters có thêm một câu phụ riêng.) Đây là chỗ thể hiện tư duy nhân quả: mean bị outlier kéo, median thì không, nên dataset có outlier thu nhập hay tuổi thì fix2 sẽ ổn định hơn, và bạn phải nói được điều đó bằng số liệu của chính dataset.

Task 4: ghép dữ liệu ngoài

Merge hai file u.data và u.item của bộ MovieLens 100K rồi khám phá. Điểm ở đây nằm ở việc chọn đúng khóa ghép và xử lý được các dòng không khớp, nói rõ mình dùng inner hay left join và vì sao.

Task 5: report, nơi điểm hình thức trừ không nương tay

Spec ghi các luật mà rất nhiều bạn mất điểm oan: report dưới 15 trang PDF, phải dùng đúng các heading spec chỉ định (Data Preparation, Data Exploration, Analysis of Missing Values and Outliers, External data), không được dùng chữ màu đỏ vì người chấm annotate bằng màu đỏ, nộp một file zip đặt tên theo mã sinh viên. Và một luật thời đại mới: output từ công cụ AI phải được trích nguồn, không trích là tính đạo văn. Cộng thêm silent policy 24 giờ trước deadline (đừng đợi phút chót mới hỏi) và trễ hạn trừ 10% mỗi ngày, tối đa 5 ngày.

A2 và A3: modelling mới là nơi phân hạng

A2 chiếm 35%, cá nhân, nộp notebook cộng report. Cách ăn điểm không phải là xếp chồng model, mà là pipeline sạch: baseline trước, so sánh model sau, và mọi lựa chọn (feature nào, metric nào) có một câu justification. Tham khảo được từ bài nhóm điểm cao các kỳ trước: một nhóm làm đề tài dự đoán ung thư đại tràng đã tổ chức nguyên project thành 8 notebook theo pipeline: EDA trước và sau xử lý, cleaning, feature engineering, XGBoost, LightGBM, ensemble voting, và một CNN riêng cho dữ liệu ảnh. Bạn không cần bắn đại bác cỡ đó cho A2, nhưng cấu trúc chia notebook theo giai đoạn là thứ nên bắt chước ngay.

Nên làm: chạy lại toàn bộ notebook từ đầu (Restart and Run All) trước khi nộp. Notebook chạy lỗi giữa chừng với người chấm là mất điểm không cãi được.

Không nên làm: nhồi 6 model không giải thích. Ba model có so sánh metric và một đoạn phân tích lỗi ăn điểm hơn sáu model câm.

Phần thảo luận trong report thực chất là bài luận mini: mỗi đoạn một luận điểm, có số liệu đỡ. Nếu bạn viết phần này còn lỏng, xem lại bài phát triển luận điểm chặt chẽ trong thân bài của tụi mình, công thức áp thẳng vào report data science được.

Nếu bạn đã xong notebook mà chưa chắc report đạt chuẩn spec (heading đúng chưa, giải thích imputation đủ sâu chưa, có chỗ nào sẽ bị trừ hình thức không), tụi mình nhận review theo đúng 5 task của spec trước khi bạn nộp. Chi tiết ở bảng báo giá của 7 Writing Service nhé.

Câu hỏi thường gặp

Dùng ChatGPT hay Copilot làm A1 có sao không?

Spec cho phép dùng nhưng bắt buộc trích nguồn output của công cụ. Không trích bị xử như đạo văn, đây là luật ghi thẳng trong spec kỳ 25S3 chứ không phải lời dọa. An toàn nhất: ghi rõ đoạn code nào có hỗ trợ công cụ, và tự viết phần diễn giải.

Report 15 trang có tính phần code không?

Report là file PDF riêng, code nằm trong notebook nộp kèm. Đừng dán nguyên code dài vào report cho đầy trang, người chấm cần diễn giải và kết quả, code họ xem trong notebook.

A1 dataset mỗi kỳ có đổi không?

Có, dataset và một phần câu hỏi đổi theo kỳ (25S3 dùng Student Performance cộng MovieLens). Cái không đổi là khung 5 task: clean có khai báo, visualise có lý do, impute có so sánh, merge dữ liệu ngoài, report đúng format. Học khung đó là làm được mọi biến thể.

Cần hỗ trợ 1-1 cho môn này? Xem bảng giá và quy trình nhận hỗ trợ của 7 Writing Service.