1. Giới thiệu¶
Trong bài tập này, sinh viên sẽ làm việc với tập dữ liệu phân loại nấm để xây dựng mô hình Cây quyết định hoặc Naive Bayes.
2. Tập dữ liệu¶
Dữ liệu được sử dụng là tập dữ liệu phân loại nấm từ Kaggle. Tập dữ liệu bao gồm các đặc trưng rời rạc mô tả các đặc điểm vật lý của nấm. Trọng tâm của bài toán là dự đoán xem một cây nấm là có độc hay ăn được. Dữ liệu đầu vào bài làm cần được giữ nguyên như tập dữ liệu gốc Kaggle.
3. Yêu cầu Cài đặt Thuật toán¶
Dựa trên phân công cụ thể, sinh viên tiến hành cài đặt một trong hai thuật toán cơ bản. Sau khi cài đặt từng thuật toán, sinh viên phải tiến hành dự đoán trên toàn bộ tập dữ liệu, tiến hành đánh giá một số độ đo như Accuracy, Precision, Recall và F1, sau đó xuất ra kết quả dự đoán cho từng mẫu trong dữ liệu đầu vào.
Cây quyết định, cài đặt theo thuật toán ID3: sinh viên sử dụng tiêu chí phân nhánh là Information Gain, đại lượng đo lường mức độ giảm độ bất định của dữ liệu sau khi chia tách. Nhằm hạn chế tình trạng mô hình học vẹt, độ sâu tối đa của cây được giới hạn ở mức 5.
Naive Bayes: sinh viên cài đặt dựa trên nền tảng xác suất và bắt buộc áp dụng kỹ thuật Laplace Smoothing. Kỹ thuật này yêu cầu cộng thêm một hằng số nhỏ vào tử số và mẫu số nhằm xử lý triệt để bài toán xác suất bằng không khi gặp các đặc trưng chưa từng xuất hiện trong quá trình huấn luyện.
4. Môi trường và Cấu trúc Bài làm¶
Sinh viên sử dụng định dạng tệp Jupyter Notebook để thực hiện toàn bộ quá trình
lập trình. Môi trường chỉ cho phép gọi thư viện pandas cùng các thành phần phụ thuộc
đi kèm của nó. Việc cài đặt hay nhập thêm bất kỳ thư viện bên ngoài nào khác đều không
được chấp nhận.
Để đảm bảo hệ thống chấm điểm tự động có thể nạp dữ liệu và kiểm tra mô hình trên máy tính của giảng viên, ô mã nguồn đầu tiên trong tệp Notebook của sinh viên phải chứa thông tin theo đúng định dạng sau:
# Họ và tên: Điền họ tên của bạn
data_path = "..."
output_path = "..."Biến data_path trỏ tới tập tin CSV chứa dữ liệu đầu vào. Biến output_path trỏ tới
tập tin CSV kết quả. Tập tin kết quả này chỉ bao gồm một cột duy nhất có tên là
prediction. Cột prediction chứa giá trị xác suất dự đoán do mô hình sinh ra. Dòng
thứ trong tập tin đầu ra phải tương ứng với dự đoán cho dòng thứ trong tập tin
đầu vào.
5. Quy định Nộp bài¶
Sinh viên nộp duy nhất một tập tin mã nguồn với cú pháp đặt tên là mã số sinh viên
kèm phần mở rộng .ipynb, ví dụ như 23456789.ipynb. Bài nộp không được phép đặt
trong thư mục hay nén thành bất kỳ định dạng nào khác. Mọi bài làm sai quy cách nộp
bài, sai cấu trúc ô mã nguồn đầu tiên hoặc vi phạm quy định về thư viện đều không
được ghi nhận điểm số.
6. Các lưu ý khác¶
Sinh viên cần đặc biệt chú ý các vấn đề sau:
Đây là bài tập CÁ NHÂN. Mỗi sinh viên tự hoàn thành bài tập độc lập.
Bài tập có hai đợt nộp bài. Chỉ những sinh viên đã nộp bài trong đợt sơ bộ mới được phép nộp tiếp đợt cuối cùng.
Sinh viên phải đảm bảo toàn bộ quá trình chạy của Notebook diễn ra trong tối đa 10 phút và bộ nhớ tối đa cho phép là 128MB. Cấu hình máy chạy tuân thủ theo môi trường Colab CPU-only.
Các công cụ AI không bị cấm, tuy nhiên sinh viên cần sử dụng một cách có trách nhiệm. Phụ trách thảo luận có quyền phỏng vấn vấn đáp để kiểm tra mức độ hiểu bài của sinh viên.
Mọi hành vi sao chép, gian lận sẽ dẫn đến điểm 0 cho toàn bộ môn học.
Hết.