Báo cáo khoa học đề tài

Kiến Trúc Mô Hình & Đánh Giá Thực Nghiệm

Quy trình nghiên cứu, huấn luyện và so sánh 3 thuật toán Machine Learning trên bộ dữ liệu Pima Indians Diabetes

1. Khảo Sát & Tiền Xử Lý Dữ Liệu Chống Rò Rỉ (Anti Data Leakage)

Đề tài sử dụng bộ dữ liệu chuẩn y khoa Pima Indians Diabetes Dataset từ Viện Quốc gia về Bệnh tiểu đường, Tiêu hóa và Bệnh thận (NIDDK - Hoa Kỳ), được chia sẻ trên Kaggle và UCI Machine Learning Repository.

Tổng số mẫu 768 bệnh nhân
Tập Huấn luyện (Train - 80%) 614 mẫu (stratify)
Tập Kiểm thử (Test - 20%) 154 mẫu (độc lập)
3 Chỉ số đầu vào Glucose, BMI, Age

🛡️ Quy trình chống rò rỉ dữ liệu (No Data Leakage):

  • Xử lý giá trị 0 không hợp lý: Các chỉ số Glucose = 0 (5 mẫu) và BMI = 0 (11 mẫu) được quy đổi thành NaN vì đây là dữ liệu bị thiếu ẩn.
  • Đóng gói Pipeline: Quá trình tính toán trung vị (SimpleImputer) và chuẩn hóa thang đo (StandardScaler) được tính toán chỉ trên tập Train (fit), sau đó đóng băng và chỉ áp dụng (transform) sang tập Test và môi trường Web.

2. Bảng So Sánh Hiệu Năng 3 Thuật Toán Trên Tập Kiểm Thử (154 Mẫu)

Mọi chỉ số đánh giá được tính toán từ quá trình chạy thực tế bằng thư viện scikit-learn, tuyệt đối không tạo số liệu giả lập:

Thuật toán Machine Learning Độ chính xác (Accuracy) Độ chuẩn xác (Precision) Độ nhạy (Recall) F1-Score ROC-AUC Trạng thái lựa chọn
Logistic Regression 70.78% 59.57% 51.85% 55.45% 78.63% Mô hình đối sánh
Decision Tree Mô hình tối ưu 79.87% 70.91% 72.22% 71.56% 81.44% Đã triển khai Web
Random Forest 75.97% 67.35% 61.11% 64.08% 81.46% Mô hình đối sánh

🎯 Lý do lựa chọn mô hình Decision Tree:

Trong sàng lọc y khoa, Recall (Độ nhạy) là chỉ số quan trọng nhất vì nó phản ánh tỷ lệ người thực sự có bệnh được mô hình phát hiện đúng, giảm thiểu ca âm tính giả (False Negative - bỏ sót bệnh nhân). Decision Tree đạt Recall 72.22% (vượt trội so với Logistic Regression 51.85% và Random Forest 61.11%) cùng với Accuracy 79.87% và F1-Score 71.56%, là mô hình hiệu quả nhất trên bộ 3 đặc trưng đầu vào.

3. Biểu Đồ Đánh Giá & Ma Trận Nhầm Lẫn (Confusion Matrix)

Các biểu đồ được sinh tự động từ quá trình thực nghiệm:

Biểu đồ so sánh 4 chỉ số hiệu năng

So sánh mô hình

Ma trận nhầm lẫn (Confusion Matrix - 154 mẫu Test)

Confusion Matrix

Phân bố 3 chỉ số theo tình trạng bệnh

Phân bố chỉ số

Ma trận tương quan Pearson

Ma trận tương quan

4. Tài Liệu RESTful API Backend Flask

Hệ thống cung cấp API JSON để tích hợp dự đoán từ các hệ thống khác:

POST /api/predict

Tiếp nhận thông tin 3 chỉ số lâm sàng và trả về kết quả dự đoán kèm xác suất.

Ví dụ Payload JSON gửi lên:
{
  "glucose": 145.0,
  "bmi": 28.5,
  "age": 42
}
Ví dụ Response JSON trả về (HTTP 200):
{
  "status": "success",
  "prediction": 1,
  "label": "Nguy cơ tiểu đường (Dương tính)",
  "probabilities": {
    "negative_class_0_pct": 27.5,
    "positive_class_1_pct": 72.5
  },
  "confidence_score_pct": 72.5,
  "disclaimer": "Kết quả chỉ mang tính chất tham khảo học tập..."
}