TRƯỜNG ĐẠI HỌC BÁCH KHOAKHOA KHOA HỌC VÀ KỸ THUẬT MÁY TÍNH BÀI TẬP LỚN Kho dữ liệu và hệ hỗ trợ quyết định CO4031 Phân tích các yếu tố gây suy tim ở người và xây dựng mô hình dự đoán Giả
Trang 1TRƯỜNG ĐẠI HỌC BÁCH KHOA
KHOA KHOA HỌC VÀ KỸ THUẬT MÁY TÍNH
BÀI TẬP LỚN Kho dữ liệu và hệ hỗ trợ quyết định (CO4031)
Phân tích các yếu tố gây suy tim ở người và xây dựng mô hình dự đoán
Giảng viên hướng dẫn: Bùi Tiến Đức
SV thực hiện: Nguyễn Ngô Hoàng Long 2011553
Nguyễn Trần Ngọc Liên 2011521
Thành phố Hồ Chí Minh, Tháng 5 năm 2024
Trang 2Mục lục
2.1 Kho dữ liệu 3
2.1.1 Định nghĩa 3
2.1.2 Các đặc trưng của kho dữ liệu: 3
2.1.3 Kiến trúc của kho dữ liệu: 3
2.2 Một số khái niệm khác 4
2.2.1 ETL trong kho dữ liệu 4
2.2.2 Quá trình OLAP 4
2.3 Về các phương pháp học máy 5
2.3.1 LogisticRegression 5
2.3.2 DecisionTreeClassifier 5
2.3.3 Support Vector Classifier 5
2.3.4 K-Nearest Neighbors 6
2.3.5 Gradient Boosting Classifier 6
2.3.6 Random Forest Classifier 6
3 Thực nghiệm 7 3.1 Tổng quan về dữ liệu 7
3.2 Đọc, nhập và xử lý dữ liệu 7
3.3 Làm rõ dữ liệu 8
3.3.1 Đặc tả dữ liệu 8
3.3.2 Ma trận tương quan của các biến 9
4 Trực quan hóa dữ liệu 11 4.1 Các biến rời rạc 11
4.2 Các biến liên tục 12
4.2.1 Biến "age": 13
4.2.2 Biến "Creatinine_phoskphokinase": 14
4.2.3 Biến "Ejection_fraction": 15
4.2.4 Biến "Plateles": 16
4.2.5 Biến "Serum_creatinine": 17
4.2.6 Biến "Serum_sodium": 18
5 Xây dựng mô hình dự đoán 19 5.1 Tiền xử lí và chia tập huấn luyện 19
5.2 Phương thức đánh giá mô hình 19
5.3 Hiện thực mô hình dự đoán 21
Trang 31 Giới thiệu đề tài
Suy tim, một bệnh lý tim mạch nguy hiểm, ảnh hưởng đến khả năng bơm máu của tim, đang trởthành vấn đề sức khỏe cộng đồng ngày càng cấp bách Hiểu rõ các yếu tố nguy cơ và xây dựng mô hình
dự đoán chính xác là chìa khóa cho việc phòng ngừa, chẩn đoán và điều trị hiệu quả Bài viết này đề cậpđến phân tích các yếu tố nguy cơ gây suy tim ở người và giới thiệu một số mô hình dự đoán phổ biếndựa trên học máy
Để thực nghiệm phân tích dựa trên chủ đề này, nhóm đã thực hiện việc thu thập 5000 entry về các
ca suy tim từ các bệnh viện công cộng và các yếu tố liên quan tới các ca bệnh trên
Về mặt phân tích, nhóm sử dụng các mô hình học máy, một nhánh ứng dụng của trí tuệ nhân tạo, đểcung cấp các công cụ mạnh mẽ để phân tích dữ liệu và xây dựng mô hình dự đoán Việc ứng dụng họcmáy vào dự đoán suy tim mang lại nhiều lợi ích:
• Độ chính xác cao: Các mô hình có thể học hỏi từ dữ liệu lớn để xác định các mối liên hệ phứctạp giữa các yếu tố nguy cơ và nguy cơ suy tim một cách chính xác hơn so với phương pháp truyềnthống
• Khả năng giải thích: Một số mô hình như cây quyết định có thể cung cấp thông tin chi tiết vềtầm quan trọng của từng yếu tố nguy cơ, giúp các nhà khoa học và bác sĩ hiểu rõ hơn về cơ chếgây bệnh
• Dễ dàng triển khai: Các mô hình có thể được tích hợp vào hệ thống hỗ trợ ra quyết định lâmsàng, giúp bác sĩ chẩn đoán và điều trị suy tim hiệu quả hơn, giảm thiểu chi phí y tế
Dưới đây là một số mô hình dự đoán phổ biến được sử dụng trong nghiên cứu suy tim:
• Hồi quy tuyến tính: Mô hình đơn giản, dễ hiểu, nhưng hiệu quả giảm khi mối quan hệ giữa cácyếu tố nguy cơ và nguy cơ suy tim không tuyến tính
• Cây quyết định: Mô hình có khả năng giải thích cao, nhưng hiệu quả có thể bị ảnh hưởng bởichất lượng dữ liệu
• Support Vector Machine (SVM): Mô hình hiệu quả trong việc phân loại các trường hợp phứctạp, nhưng đòi hỏi dữ liệu huấn luyện lớn
• K-Nearest Neighbors (KNN): Mô hình đơn giản, hiệu quả, nhưng hiệu quả có thể bị ảnh hưởngbởi tỷ lệ chiều cao/số lượng điểm dữ liệu
• Gradient Boosting Classifier: Mô hình kết hợp nhiều cây quyết định yếu để tạo ra mô hìnhmạnh mẽ hơn, hiệu quả cao trong các bài toán phân loại phức tạp
• Random Forest Classifier: Tương tự Gradient Boosting Classifier, nhưng sử dụng ngẫu nhiêncác tập con dữ liệu để huấn luyện từng cây quyết định, giúp giảm thiểu tình trạng quá khớp
Trang 4ví dụ như hệ thống giao dịch, hệ thống bán hàng, hệ thống nhân sự, v.v., và được lưu trữ một cách có
tổ chức để có thể truy cập và phân tích một cách hiệu quả
2.1.2 Các đặc trưng của kho dữ liệu:
• Tính chủ đề: Dữ liệu trong kho dữ liệu được tập trung vào một chủ đề cụ thể, ví dụ như bánhàng, khách hàng, sản phẩm, v.v
• Tính tích hợp: Dữ liệu từ nhiều nguồn khác nhau được tích hợp thành một định dạng thống nhất,giúp loại bỏ sự trùng lặp và mâu thuẫn dữ liệu
• Tính thời gian: Dữ liệu trong kho dữ liệu được lưu trữ theo thời gian, cho phép theo dõi xu hướng
và thay đổi dữ liệu theo thời gian
• Tính phi biến động: Dữ liệu trong kho dữ liệu không được cập nhật thường xuyên như dữ liệutrong hệ thống giao dịch Dữ liệu chỉ được cập nhật định kỳ, ví dụ như hàng ngày, hàng tuần hoặchàng tháng
• Tính truy cập: Dữ liệu trong kho dữ liệu được truy cập bởi các nhà phân tích dữ liệu và chuyêngia kinh doanh để thực hiện phân tích và báo cáo
2.1.3 Kiến trúc của kho dữ liệu:
Một kho dữ liệu thông thường sẽ có kiến trúc cơ bản tương đối giống nhau Dưới đây là phân tích vềcác thành phần trong kiến trúc của một dataware house tiêu chuẩn: Dữ liệu nguồn: Bao gồm dữ liệuhoạt động từ các nguồn khác nhau trong tổ chức, chẳng hạn như:
• Cơ sở dữ liệu giao dịch (bán hàng, hàng tồn kho, khách hàng)
• Trích xuất: Dữ liệu được lấy từ các hệ thống nguồn
• Chuyển đổi: Dữ liệu được làm sạch, định dạng và có thể tổng hợp để đáp ứng các nhu cầu củadata warehouse Điều này có thể liên quan đến việc xử lý các giá trị thiếu, sửa lỗi không nhất quán
và chuyển đổi kiểu dữ liệu
• Tải: Dữ liệu đã được chuyển đổi được dàn dựng trong data warehouse
Data Warehouse: Đây là kho lưu trữ trung tâm lưu trữ dữ liệu lịch sử được tích hợp Dữ liệu thườngđược tổ chức bằng cách sử dụng các lược đồ được tối ưu hóa cho khối lượng công việc phân tích, chẳnghạn như lược đồ ngôi sao (star schema) hoặc lược đồ bông tuyết (snowflake schema)
• Lược đồ ngôi sao: Một lược đồ đơn giản hóa với bảng dữ liệu thực tế (fact table) trung tâm đượcbao quanh bởi các bảng chiều (dimension table) Bảng dữ liệu thực tế lưu trữ các phép đo (ví dụ:
Trang 5• Lược đồ bông tuyết: Một lược đồ được chuẩn hóa nhiều hơn, trong đó các bảng chiều được chianhỏ thành các chiều phụ để có độ chi tiết tốt hơn và giảm trùng lặp dữ liệu.
Kho lưu trữ siêu dữ liệu (Metadata Repository): Lưu trữ thông tin về dữ liệu trong datawarehouse, bao gồm định nghĩa, nguồn gốc dữ liệu (data lineage) và quyền truy cập Nó giúp người dùnghiểu ý nghĩa và cấu trúc của dữ liệu Cung cấp thông tin: Lớp này cung cấp cho người dùng quyềntruy cập vào dữ liệu trong data warehouse để phân tích và báo cáo Các công cụ và công nghệ được sửdụng bao gồm:
• Công cụ xử lý phân tích trực tuyến đa chiều (OLAP) để phân tích dữ liệu đa chiều
• Công cụ trực quan hóa dữ liệu để tạo biểu đồ và bảng điều khiển
• Công cụ khai thác dữ liệu để khám phá các mẫu và thông tin chi tiết
• Công cụ báo cáo để tạo báo cáo tùy chỉnh
2.2.1 ETL trong kho dữ liệu
ETL (Extract, Transform, Load) là một quy trình quan trọng trong việc tích hợp dữ liệu từ nhiềunguồn khác nhau vào một kho dữ liệu trung tâm Nó đóng vai trò thiết yếu trong việc chuẩn bị dữ liệucho mục đích phân tích và báo cáo
Quy trình ETL bao gồm ba bước chính:
1 Trích xuất (Extract): Thu thập dữ liệu từ các nguồn khác nhau, bao gồm cơ sở dữ liệu, ứngdụng, tệp tin và các nguồn dữ liệu khác Dữ liệu có thể được trích xuất theo thời gian thực, theo chu kỳhoặc theo yêu cầu
2 Chuyển đổi (Transform): Dữ liệu được trích xuất cần được chuẩn bị trước khi được tải vào kho
dữ liệu Quá trình chuyển đổi có thể bao gồm: * Làm sạch dữ liệu: Xử lý dữ liệu thiếu, lỗi và khôngnhất quán * Chuyển đổi định dạng: Chuyển đổi dữ liệu sang định dạng phù hợp với kho dữ liệu *Tổng hợp dữ liệu: Tóm tắt dữ liệu chi tiết thành các dạng tổng hợp * Loại bỏ dữ liệu trùng lặp:Xóa dữ liệu trùng lặp để đảm bảo tính chính xác của dữ liệu
3 Tải (Load): Dữ liệu đã được chuẩn bị sau khi chuyển đổi được tải vào kho dữ liệu Quá trình tải
dữ liệu cần đảm bảo tính toàn vẹn và nhất quán của dữ liệu
Lợi ích của ETL:
• Cải thiện chất lượng dữ liệu: ETL giúp đảm bảo dữ liệu chính xác, nhất quán và đầy đủ
• Tích hợp dữ liệu: ETL cho phép tích hợp dữ liệu từ nhiều nguồn khác nhau vào một kho dữ liệutrung tâm
• Chuẩn bị dữ liệu cho phân tích: ETL chuẩn bị dữ liệu cho mục đích phân tích và báo cáo
• Tăng hiệu quả ra quyết định: Dữ liệu chất lượng cao được tích hợp và chuẩn bị sẵn sàng giúpcác tổ chức đưa ra quyết định sáng suốt hơn
2.2.2 Quá trình OLAP
OLAP (Online Analytical Processing - Xử lý Phân tích Trực tuyến) là một công nghệ cơ sở dữ liệuđược tối ưu hóa cho truy vấn và báo cáo dữ liệu đa chiều, hỗ trợ phân tích dữ liệu phức tạp cho các tổchức
Trang 62.3 Về các phương pháp học máy
Trong bài báo cáo, có tổng cộng 6 mô hình đã được sử dụng để kiểm thử độ chính xác của bộ dữliệu LogisticRegression, DecisionTreeClassifier, Support Vector Classifier, K-Nearest Neighbors, GradientBoosting Classifier, Random Forest Classifier
2.3.1 LogisticRegression
Khái niệm:
Logistic Regression là mô hình học máy phân loại được sử dụng để dự đoán khả năng xảy ra của mộtbiến mục tiêu nhị phân (ví dụ: "có" hoặc "không", "được chấp thuận" hoặc "bị từ chối") Nó hoạt độngbằng cách tính toán xác suất của một kết quả cụ thể dựa trên các biến đầu vào
Công thức:
Logistic Regression sử dụng hàm logistic (sigmoid) để biến đổi các giá trị đầu vào thành xác suất giữa
0 và 1 Hàm này được biểu thị bằng công thức sau:
• βi: Hệ số cho biến đầu vào thứ i
• xi: Giá trị của biến đầu vào thứ i
2.3.2 DecisionTreeClassifier
Khái niệm: Decision Tree Classifier là mô hình học máy phân loại sử dụng cấu trúc cây để biểu thịcác quy tắc phân loại Cây được xây dựng bằng cách liên tục chia tập dữ liệu thành các nhánh con dựatrên các giá trị của các biến đầu vào Mỗi nhánh lá đại diện cho một lớp phân loại
Công thức:
Decision Tree Classifier không sử dụng công thức toán học cụ thể mà dựa trên quy tắc chia nhánhđược xây dựng từ dữ liệu Quy tắc chia nhánh thường dựa trên việc chọn biến đầu vào có khả năng phânbiệt tốt nhất giữa các lớp phân loại
2.3.3 Support Vector Classifier
Khái niệm: Support Vector Classifier là mô hình học máy phân loại sử dụng thuật toán tối ưu hóa
để tìm ra đường ranh giới phân chia dữ liệu thành các lớp một cách tốt nhất Đường ranh giới này đượcxác định bằng cách tìm ra các điểm dữ liệu nằm gần đường ranh giới nhất (gọi là "vectơ hỗ trợ") và tối
ưu hóa vị trí của đường ranh giới dựa trên các điểm này
Công thức: Support Vector Classifier sử dụng hàm Lagrange để tối ưu hóa vị trí của đường ranhgiới Hàm Lagrange được biểu thị bằng công thức sau:
L(α, β) =P(αi ∗ yi) − P(αi ∗ βi ∗ yi ∗ yj) + C ∗ P(αi)
Trong đó:
• αi: Hệ số Lagrange cho điểm dữ liệu thứ i
• β: Hệ số cho máy bay hỗ trợ
• yi: Nhãn lớp của điểm dữ liệu thứ i
• yj: Nhãn lớp của điểm dữ liệu thứ j
• C: Tham số điều chỉnh độ phức tạp của mô hình
Trang 7Công thức:
K-Nearest Neighbors không sử dụng công thức toán học cụ thể mà dựa trên việc tính toán khoảngcách giữa các điểm dữ liệu trong không gian tính năng Khoảng cách thường được tính bằng các phép đonhư khoảng cách Euclid hoặc Manhattan
2.3.5 Gradient Boosting Classifier
Khái niệm:
Gradient Boosting Classifier là mô hình học máy phân loại kết hợp nhiều cây quyết định yếu để tạo
ra một mô hình mạnh mẽ hơn Mô hình này sử dụng thuật toán tăng cường gradient để huấn luyện từngcây quyết định theo cách giảm thiểu lỗi của mô hình tổng thể Mỗi cây quyết định được xây dựng dựatrên lỗi còn sót lại của các cây trước đó, giúp mô hình dần dần học hỏi từ dữ liệu và cải thiện độ chínhxác
Công thức:
Gradient Boosting Classifier sử dụng thuật toán tăng cường gradient để tối ưu hóa hàm mất mát của
mô hình Thuật toán này sử dụng các công thức toán học phức tạp liên quan đến việc tính toán đạo hàmcủa hàm mất mát theo từng cây quyết định
2.3.6 Random Forest Classifier
Khái niệm:
Random Forest Classifier là mô hình học máy phân loại kết hợp nhiều cây quyết định được xây dựngngẫu nhiên để tạo ra một mô hình dự đoán mạnh mẽ Mô hình này sử dụng phương pháp "bagging" đểxây dựng các cây quyết định, trong đó mỗi cây được huấn luyện trên một tập con ngẫu nhiên của dữ liệu
và một tập con ngẫu nhiên của các biến đầu vào Dự đoán cuối cùng của mô hình được xác định bằngcách lấy trung bình dự đoán của tất cả các cây quyết định
Công thức:
Random Forest Classifier sử dụng phương pháp "bagging" để xây dựng các cây quyết định Phươngpháp này sử dụng các công thức toán học liên quan đến việc chọn ngẫu nhiên các tập con dữ liệu và biếnđầu vào cho mỗi cây quyết định
Trang 83 Thực nghiệm
File dữ liệu đầu vào mang tên "heart_failure_clinical_records.csv" Bộ dữ liệu gồm thông tin về cácbệnh nhân nhập viện vì đau tim và các đặc điểm của bệnh nhân liên quan tới căn bệnh như tuổi tác,giới tính, tiền sử bệnh, nồng độ sinh lý học của cơ thể Mục đích chính của phần phân tích là tìm kiếm
sự tương quan của các biến tới khả năng sống sót của bệnh nhân sau cơn đau tim Bộ dữ liệu gồm 5000đầu mục thông tin và 13 cột dữ liệu và các kiểu dữ liệu tương ứng sau:
• age: số tuổi của bệnh nhân (years)
• anaemia: liệu rằng bệnh nhân có mắc bệnh thiếu máu không (boolean)
• creatinine phosphokinase (CPK): nồng độ CPK enzymetrong máu (mcg/L)
• diabetes: liệu rằng bệnh nhân có mắc bệnh béo phì không (boolean)
• ejection fraction: lượng phần trăm máu tuần hoàn mỗi chu kỳ đập của bệnh nhân (%)
• high blood pressure: liệu rằng bệnh nhân có bị huyết áp cao không (boolean)
• platelets: số lượng tiểu cầu trong máu (kiloplatelets/mL)
• sex: giới tính của bệnh nhân (binary)
• serum creatinine: nồng độ serum creatinine trong máu bệnh nhân (mg/dL)
• serum sodium: nồng độ serum sodium trong máu bệnh nhân (mEq/L)
• smoking: liệu rằng bệnh nhân có hút thuốc không (boolean)
• time: số ngày theo dõi sau khi suy tim (days)
• death event: liệu rằng bệnh nhân có mất trong thời gian theo dõi không (boolean)
Sau khi tiến hành đọc dữ liệu, ta lưu dữ liệu dưới dạng bảng và lưu data frame với tên "df" Ta cóthông tin cơ bản của bộ dữ liệu như hình dưới:
Hình 1: Tổng quan dữ liệu
Tiếp theo, ta tiến hành kiểm tra có tồn tại dữ liệu khuyết trong bộ dữ liệu không với lệnh df.isnull().sum()
và df.isna().sum() Kết quả ta thu được:
Trang 10Theo kết quả trả về, ta có một số nhận xét như sau:
• Dữ liệu bao gồm 5000 dòng dữ liệu, với 13 cột dữ liệu (biến)
• Ở mỗi cột dữ liệu đều đếm được 5000 dòng dữ liệu không rỗng
• 3 cột có kiểu dữ liệu float64, 10 cột có kiểu dữ liệu int64
Sau khi có thông tin cơ bản về dữ liệu, ta thực hiện đặc tả từng biến có trong dữ liệu Trong đó, biếnđược chia thành hai loại: Biến liên tục, biến rời rạc
• Biến liên tục (continuous variable) là biến có thể nhận vô số giá trị trong một khoảngnhất định Các giá trị này thường thay đổi liên tục và có thể nhận bất kỳ giá trị nàotrong một khoảng nhất định Biến liên tục thường được sử dụng để đo những thứ nhưchiều dài, thời gian, trọng lượng, nhiệt độ, v.v Trong tập dữ liệu trên, biến liên tục baogồm: "age","creatinine_phosphokinase","ejection_fraction","placetes","time","serum_sodium",
"serum_creatinine"
• Biến rời rạc (discrete variable) là loại biến trong thống kê chỉ có thể nhận một số lượnghữu hạn và đếm được các giá trị riêng biệt Các giá trị này thường không thể chia nhỏđược và thường là những số nguyên hoặc các danh mục cụ thể Biến rời rạc thường được sửdụng để phân loại hoặc đếm các đối tượng Trong tập dữ liệu trên, biến rời rạc bao gồm:
"anaemia","diabetes","smoking","sex","high_blood_pressure"
3.3.2 Ma trận tương quan của các biến
Ma trận tương quan (Correlation Matrix) là một bảng biểu diễn các hệ số tương quan giữa các biến.Mỗi ô trong bảng hiển thị mối tương quan giữa hai biến Ma trận tương quan được sử dụng để tóm tắt
dữ liệu, làm đầu vào cũng như làm chẩn đoán cho các phân tích nâng cao Trong ma trận tương quan:
• Nếu mối quan hệ là 1 thì mối quan hệ đó rất mạnh
• Nếu mối quan hệ bằng 0 thì có nghĩa là mối quan hệ đó là trung tính
• Nếu mối quan hệ là -1 thì có nghĩa là mối quan hệ đó không mạnh
Mục đích sử dụng ma trận tương quan nhằm tìm hiểu mối tương quan tuyến tính chặt chẽ giữa biến phụthuộc với các biến độc lập và sớm nhận diện vấn đề đa cộng tuyến khi các biến độc lập cũng có tươngquan mạnh với nhau Sau khi dữ liệu được tập hợp, làm sạch và phân loại, ta tiến hành vẽ heat map đểxem xét sự phụ thuộc của biến "death_event" đối với 12 biến còn lại
Trang 11Hình 4: Heat map của các biến so với death_event
Sự tương quan của các biến so với biến death_event tương đối thấp, tương quan đáng kể chỉ có biến
"age", "ejection_fraction","time","serum_sodium", "serum_creatinine"
Trang 124 Trực quan hóa dữ liệu
Đối với các biến rời rạc, để biểu diễn tương quan của chúng với biến death_event, ta thực hiện thống
kê các giá trị của biến death_event lần lượt là 1 (bệnh nhân mất trong giai đoạn theo dõi), và 0 (bệnhnhân vượt qua giai đoạn theo dõi)
Hình 5: Thống kê của biến death_event
Sau, đó tiến hành so sánh tỉ lệ với các biến rời rạc được liệt kê trên
Cuối cùng là trực quan hóa dưới dạng đồ thị
Trang 13Qua 2 bảng thống kê, ta có thể rút được các kết luận sau đối với bệnh nhân được trong quá trìnhtheo dõi sau cơn đau tim:
• Bệnh nhân có tiền sử thiếu máu (anaemia) có xác suất mất cao hơn
• Bệnh nhân có giới tính là nữ có xác suất mất cao hơn bệnh nhân giới tính nam
• Bệnh nhân có bệnh án huyết áp cáo có xác suất mất cao hơn
• Tiền sử hút thuốc và béo phì của bệnh nhân gần như không ảnh hưởng tới xác suất sống còn củabệnh nhân trong quá trình theo dõi
Tiếp tục thực hiện phân tích với các biến liên tục còn lại và tìm hiểu sự tương quan của chúng vớibiến death_event