II.Mục đích nghiên cứu Mục tiêu của nghiên cứu này là xây dựng và đánh giá một mô hình học máy để dự đoán khả năng mắc bệnh tiểu đường ở phụ nữ Pima từ các biến số chẩnđoán y tế như chỉ
Trang 1TRƯỜNG ĐẠI HỌC KINH TẾ - ĐẠI HỌC ĐÀ NẴNG
KHOA THƯƠNG MẠI ĐIỆN TỬ
BÁO CÁO BÀI TẬP NHÓM
CHỦ ĐỀ: DỰ ĐOÁN BỆNH TIỂU ĐƯỜNG
Giảng viên hướng dẫn : Nguyễn Văn Chức
Trang 2A.GIỚI THIỆU VÀ CHUẨN BỊ DỮ LIỆU
I.Lý do chọn đề tài
Bệnh tiểu đường là một trong những bệnh lý mãn tính phổ biến nhất hiệnnay, ảnh hưởng đến hàng triệu người trên toàn thế giới Tỷ lệ mắc bệnh tiểuđường đang gia tăng nhanh chóng, đặc biệt ở nhóm đối tượng người lớn Việcphát hiện sớm và chính xác bệnh tiểu đường không chỉ giúp nâng cao chất lượngcuộc sống của người bệnh mà còn giảm thiểu gánh nặng cho hệ thống y tế Do
đó, nghiên cứu và ứng dụng các phương pháp dự đoán bệnh tiểu đường bằngmáy học là một chủ đề quan trọng và có ý nghĩa thiết thực
II.Mục đích nghiên cứu
Mục tiêu của nghiên cứu này là xây dựng và đánh giá một mô hình học máy
để dự đoán khả năng mắc bệnh tiểu đường ở phụ nữ Pima từ các biến số chẩnđoán y tế như chỉ số BMI, mức insulin, số lần mang thai và độ tuổi Qua đó,chúng tôi sẽ cung cấp thông tin chi tiết về độ chính xác và hiệu quả của các môhình này trong việc phát hiện sớm bệnh tiểu đường
III.Ý nghĩa của đề tài
Nghiên cứu này không chỉ góp phần nâng cao hiểu biết về mối quan hệ giữa các yếu tố y tế và nguy cơ mắc bệnh tiểu đường mà còn mở ra cơ hội ứng dụng các mô hình học máy trong y học Kết quả nghiên cứu có thể hỗ trợ các chuyên gia y tế trong việc đưa ra quyết định chẩn đoán và điều trị kịp thời, từ đó cải thiện sức khỏe cộng đồng và giảm thiểu tỷ lệ mắc bệnh tiểu đường trong xã hội
IV Đối tượng và phạm vi nghiên cứu
- Đối tượng nghiên cứu trong đề tài này là tập dữ liệu chứa thông tin về bệnh tiểu đường ở phụ nữ Pima Tập dữ liệu này được thu thập từ Viện Quốc gia
về Bệnh tiểu đường và Tiêu hóa và Thận, và bao gồm nhiều biến số chẩn đoán y
tế liên quan đến nguy cơ mắc bệnh tiểu đường
- Phạm vi nghiên cứu sẽ tập trung vào việc phân tích và xây dựng mô hình
dự đoán dựa trên các biến số có sẵn trong tập dữ liệu Nghiên cứu sẽ xem xétcác yếu tố như chỉ số BMI, mức insulin, số lần mang thai, và độ tuổi để đánh giákhả năng dự đoán bệnh tiểu đường Qua đó, nghiên cứu nhằm cung cấp những
Trang 3hiểu biết mới về cách thức và hiệu quả của việc sử dụng học máy trong lĩnh vực
y tế
V Thu thập và mô tả dữ liệu.
- Bộ dữ liệu Pima Indians Diabetes Database được cung cấp bởi trang web:
database/data?
Kaggle:https://www.kaggle.com/datasets/uciml/pima-indians-diabetes-fbclid=IwY2xjawGIk4tleHRuA2FlbQIxMAABHTimYturt9xUwStCuZg9BdJa6bTEqxnEVZox2OTW4gl1k1HcelwTqHe9lg_aem_zQpf0MMXUguYJkd0S_aKOA
-Tập dữ liệu này ban đầu từ Viện Quốc gia về Bệnh tiểu đường và Tiêu hóa
và Thận
-Mục tiêu của tập dữ liệu là dự đoán chẩn đoán liệu một bệnh nhân có bịtiểu đường hay không, dựa trên một số phép đo chẩn đoán có trong tập dữ liệu.Một số ràng buộc đã được đặt ra đối với việc lựa chọn các trường hợp này từmột cơ sở dữ liệu lớn hơn
-Cụ thể, tất cả các bệnh nhân ở đây đều là nữ, ít nhất 21 tuổi và có nguồngốc Pima
-Nội dung: Tập dữ liệu bao gồm nhiều biến dự đoán y tế và một biến mụctiêu, gọi là Outcome Các biến dự đoán bao gồm số lần mang thai mà bệnh nhân
đã trải qua, chỉ số BMI, mức insulin, tuổi tác, và một số thông tin khác
Pregnancies Số lần mang thai của bệnh nhân
Glucose Mức glucose trong máu (mg/dL) sau khi
nhịn ăn
BloodPressure Mức huyết áp tâm trương (mmHg)
SkinThickness Độ dày lớp mỡ dưới da (mm)
Insulin Mức insulin trong máu (µU/mL)
BMI Chỉ số khối cơ thể (Body Mass Index)
2
Trang 4Tên Cột Mô Tả
DiabetesPedigreeFunction Chỉ số di truyền bệnh tiểu đường
Age Độ tuổi của bệnh nhân (năm)
Outcome Biến mục tiêu: 1 nếu mắc bệnh tiểu
đường, 0 nếu không mắc
VI Xử lí dữ liệu
Dữ liệu thô thường chứa nhiều sai sót và thiếu chính xác, ảnh hưởng đến
hiệu quả và độ tin cậy của kết quả phân tích Do đó, làm sạch dữ liệu là bước quan trọng không thể bỏ qua trước khi thực hiện bất kỳ phân tích nào Chi tiết
các bước làm sạch dữ liệu được thực hiện như sau:
Trong các thuộc tính y tế như Glucose, BloodPressure SkinThickness, ,
Insulin, và BMI, giá trị bằng 0 thường không hợp lý vì trong thực tế, các chỉ số này không thể có giá trị 0
Ví dụ: Glucose và BloodPressure bằng 0 là không thể xảy ra trên lâm sàng đối với người còn sống
Các giá trị 0 có thể là ký hiệu của dữ liệu bị thiếu thay vì giá trị thực tế Thay thế các giá trị 0 bằng giá trị phù hợp (như trung bình, trung vị, hoặc giá trị phổ biến nhất) giúp lấp đầy các ô trống, giữ nguyên số lượng mẫu cho phân tích.Các giá trị 0 sẽ khiến mô hình học sai lệch vì mô hình sẽ coi những giá trị này là hợp lệ
Các giá trị không hợp lý có thể ảnh hưởng đến các thước đo thống kê và làm giảm độ chính xác của dự đoán
1 Đối với Cột Glucose:
Tính giá trị trung bình của cột Glucose nhưng chỉ xét các giá trị khác 0 Thay thế tất cả giá trị bằng 0 trong Glucose bằng giá trị trung bình đã tính toán
2 Đối với Cột BloodPressure (Huyết áp):
Trang 5Tính giá trị trung bình của BloodPressure dựa trên các giá trị khác 0 trong cột.Thay thế các giá trị bằng 0 trong BloodPressure bằng giá trị trung bình đã tính toán.
3 Đối với Cột SkinThickness (Độ dày da):
Tính giá trị trung bình của cột Glucose nhưng chỉ xét các giá trị khác 0 Thay thế tất cả giá trị bằng 0 trong Glucose bằng giá trị trung bình đã tính toán
4 Đối với Cột Insulin:
Tính giá trị trung bình của cột Glucose nhưng chỉ xét các giá trị khác 0.Thay thế tất cả giá trị bằng 0 trong Glucose bằng giá trị trung bình đã tính toán
5.Đối với Cột BMI:
Tương tự như trên, tính trung vị cho cột BMI và thay thế các giá trị bằng 0
In ra một số dòng đầu tiên trong DataFrame df để kiểm tra xem các thay thế có được thực hiện thành công hay không.
VII Công cụ sử dụng
4
Trang 6- Tableau: là công cụ trực quan hóa dữ liệu với các tính năng chính:
Kết nối đa dạng nguồn dữ liệu
Kéo thả dễ dàng để tạo biểu đồ, không cần lập trình
Hỗ trợ nhiều loại biểu đồ cho các mục đích phân tích
Tạo dashboard và storytelling để truyền tải insight
Cập nhật dữ liệu tự động từ nguồn
- Jupyter Notebook: là công cụ mã nguồn mở phổ biến trong khoa học dữ
liệu với các đặc điểm chính:
Giao diện dạng sổ tay: Kết hợp mã, văn bản và hình ảnh
Thực thi từng ô mã (cell): Dễ kiểm thử và kiểm soát kết quả
Trực quan hóa dữ liệu: Tích hợp thư viện đồ thị như Matplotlib, Seaborn
Lưu trữ và chia sẻ dễ dàng: Lưu dưới dạng ipynb và chia sẻ trực tuyến
B KHÁM PHÁ DỮ LIỆU VÀ LỰA CHỌN MÔ HÌNH
I Phân tích khám phá dữ liệu
1 Tổng quan về dữ liệu
2 Mô tả thống kê về các biến số
Trang 73 Biểu đồ phân phối cho các biến số đầu vào
4.Biểu đồ phân phối của biến Outcome
6
Trang 85 Trực quan hóa dữ liệu
Trang 9- Imbalanced Data
8
Trang 10- Tách dữ liệu đã cân bằng thành tập huấn luyện và tập kiểm tra
- Chuẩn hóa các đặc trưng
Trang 11- Khởi Tạo Mô Hình: Ba mô hình học máy khác nhau được khởi tạo:
Logistic Regression: Thích hợp cho các bài toán phân loại nhị phân.
10
Trang 12 Random Forest: Một mô hình học sâu và có khả năng xử lý tốt với dữ
liệu không cân bằng và phức tạp
Trang 14 KNN: Một mô hình đơn giản nhưng hiệu quả cho nhiều bài toán phân loại.
Trang 16Kết luận: Random Forest có độ chính xác và các chỉ số khác cao nhất trong số
ba mô hình, đặc biệt là đối với lớp 1, nơi nó có Recall cao nhất (0.87) Chọn Random Forest
C HUẤN LUYỆN, TỐI ƯU HÓA VÀ ĐÁNH GIÁ MÔ HÌNH
I.Huấn luyện mô hình
- Khởi tạo mô hình: RandomForestClassifier(random_state=42) khởi tạo
một mô hình Random Forest với tham số random_state=42 để đảm bảo tính tái lập của kết quả (giữ cho các lần chạy mô hình đều có kết quả giống nhau)
- Huấn luyện mô hình: random_forest_model.fit(X_train, y_train) thực
hiện huấn luyện mô hình với tập dữ liệu huấn luyện X_train (dữ liệu đầu vào) và y_train (nhãn của dữ liệu) Sau bước này, mô hình sẽ học được các đặc trưng từ dữ liệu huấn luyện để phân loại chính xác hai lớp
- Dự đoán trên tập kiểm tra: y_pred_rf =
random_forest_model.predict(X_test) dự đoán nhãn của dữ liệu trong tập kiểm tra X_test Kết quả dự đoán sẽ được lưu trong y_pred_rf
Trang 17- In báo cáo đánh giá: print(classification_report(y_test, y_pred_rf)) tạo
báo cáo phân loại so sánh giữa giá trị thực y_test và giá trị dự đoán y_pred_rf Báo cáo sẽ bao gồm các chỉ số sau cho từng lớp:
Precision: Độ chính xác - tỷ lệ các dự đoán đúng là dương so với tổng số
Support: Số lượng mẫu trong từng lớp.
II Tối ưu hóa mô hình
1 Tối ưu hóa mô hình bằng cách sử dụng kĩ thuật Cross-Validation
cross_val_score: Đánh giá mô hình bằng kiểm tra chéo (5 lần gập) và lưu điểm
số
fit: Huấn luyện mô hình với dữ liệu huấn luyện.
predict: Dự đoán nhãn cho tập kiểm tra.
accuracy_score: Tính độ chính xác bằng cách so sánh dự đoán với nhãn thực tế.
In điểm số kiểm tra chéo, độ chính xác, và báo cáo phân loại để đánh giá
print:
hiệu suất của mô hình
2 Tối ưu hóa mô hình bằng cách giảm ngưỡng phân loại
16
Trang 18Mục tiêu: Cải thiện Recall lớp 1 để dự đoán được nhiều người mắc bệnh tiểu đường hơn
- Ngưỡng ban đầu
- Ngưỡng sau khi thay đổi
Trang 19Kết luận:
Khi thay đổi ngưỡng phân loại từ 0.5 xuống 0.45 trong mô hình
Random Forest, các chỉ số sau bị ảnh hưởng:
: Tăng từ 0.87 lên 0.91
Recall
Precision: Giảm từ 0.79 xuống 0.77
F1-score: Không thay đổi ở mức 0.83
Accuracy: Không thay đổi ở mức 0.81
III Đánh giá hiệu suất mô hình
18
Trang 20Biểu đồ ROC (Receiver Operating Characteristic) đã thấy giúp đánh giá
hiệu suất của mô hình phân loại:
Tỷ lệ dương tính giả, biểu thị phần trăm
Trục X (False Positive Rate - FPR):
trường hợp không mắc tiểu đường nhưng bị dự đoán là mắc
Trục Y (True Positive Rate - TPR): Tỷ lệ dương tính thật (hay còn gọi là độ
nhạy), phần trăm các trường hợp mắc tiểu đường được dự đoán đúng Đường cong ROC thể hiện sự đánh đổi giữa tỷ lệ dương tính thật và dương tính giả Đường chéo (đường màu xám) biểu thị xác suất ngẫu nhiên Tức là mô hình không có khả năng phân biệt tốt giữa hai lớp
Ý nghĩa của AUC AUC (Area Under the Curve): Là diện tích dưới đường
cong ROC, biểu thị khả năng của mô hình trong việc phân loại chính xác Điểm AUC càng cao (gần 1), mô hình càng có khả năng phân biệt tốt giữa hai lớp VớiAUC = 0.90, mô hình random forest này phân loại tốt giữa trường hợp mắc và không mắc tiểu đường
D.TRIỂN KHAI, ỨNG DỤNG VÀ KẾT LUẬN
I Triển khai và ứng dụng mô hình
1.Quy trình triển khai mô hình
Chuẩn bị môi trường: Thiết lập môi trường phát triển (Python, Jupyter
Notebook, các thư viện như scikit-learn, pandas, numpy)
Trang 21Đảm bảo rằng dữ liệu đã được xử lý sạch sẽ và sẵn sàng cho mô hình Huấn luyện mô hình:
Sử dụng tập dữ liệu huấn luyện (X_train, y_train) để huấn luyện mô hình Random Forest
Đánh giá mô hình: Sử dụng tập dữ liệu kiểm tra (X_test, y_test) để đánh giá
mô hình và thu thập các chỉ số như precision, recall và f1-score
2.Ứng dụng mô hình vào giải quyết vấn đề thực tế
Chẩn đoán bệnh tiểu đường: Mô hình có thể được sử dụng bởi các bác sĩ để hỗtrợ trong việc chẩn đoán bệnh tiểu đường dựa trên các thông số sức khỏe của bệnh nhân như chỉ số BMI, huyết áp, nồng độ glucose, v.v
Phát hiện sớm: Mô hình giúp xác định bệnh nhân có nguy cơ cao mắc bệnh tiểu đường để có biện pháp phòng ngừa kịp thời
Giáo dục sức khỏe: Các cơ sở y tế có thể sử dụng kết quả từ mô hình để giáodục bệnh nhân về lối sống lành mạnh và phòng ngừa bệnh
II Theo dõi và cập nhật mô hình
1.Theo dõi hiệu suất mô hình
- Giám sát: Thiết lập hệ thống giám sát để theo dõi hiệu suất của mô hình theo
thời gian Sử dụng các chỉ số như accuracy, precision, recall và f1-score để theo dõi
- Phản hồi từ người dùng: Thu thập phản hồi từ người dùng và bác sĩ để đánh
giá tính chính xác và hiệu quả của mô hình trong thực tế
- Thu thập dữ liệu mới: Liên tục thu thập dữ liệu mới từ môi trường thực tế
- Huấn luyện lại mô hình: Sử dụng dữ liệu mới để huấn luyện lại mô hình
- Đánh giá lại: Đánh giá mô hình đã cập nhật trên tập kiểm tra mới
20
Trang 22- Triển khai lại: Triển khai phiên bản mô hình mới vào hệ thống.
III Kết luận và đề xuất
2 Đánh giá lại mục tiêu
- Mục tiêu ban đầu là phát triển một mô hình dự đoán bệnh tiểu đường và
mô hình đã đạt được mục tiêu này với hiệu suất chấp nhận được
3 Đề xuất cải tiến
Tăng cường dữ liệu: Sử dụng các kỹ thuật như data augmentation để tạo
ra nhiều dữ liệu hơn, giúp cải thiện độ chính xác của mô hình
(hyperparameter
Thực hiện các phương pháp tối ưu hóa siêu tham số
tuning) để cải thiện hiệu suất
Mở rộng mô hình để dự đoán các loại bệnh khác có
Mở rộng ứng dụng:
liên quan đến chỉ số sức khỏe
4.Hạn chế và giải pháp tiềm năng
- Hạn chế: Dữ liệu có thể không đại diện cho toàn bộ dân số, dẫn đến mô
hình không chính xác trong một số trường hợp
- Giải pháp: Tăng cường việc thu thập dữ liệu từ nhiều nguồn khác nhau
để đảm bảo tính đại diện và độ chính xác của mô hình