Báo Cáo Tiểu Luân Dự Đoán Cơ Tim Bằng Cách Mô Hình Ml Khác Nhau.pdf

32 0 0
Tài liệu đã được kiểm tra trùng lặp
Báo Cáo Tiểu Luân Dự Đoán Cơ Tim Bằng Cách Mô Hình Ml Khác Nhau.pdf

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

Thông tin tài liệu

Trang 1

TRƯỜNG ĐẠI HỌC THỦ DẦU MỘTVIỆN KỸ THUẬT CÔNG NGHỆ

BÁO CÁO TIỂU LUÂN

DỰ ĐOÁN CƠ TIM BẰNG CÁCH MÔ HÌNH ML KHÁC NHAU

Sinh viên thực hiện : Vũ Xuân Trường 2024801030076 Đặng Nhật Anh 2024801030133 Trương Viết Nguyên 2024801030184

Trang 2

TRƯỜNG ĐẠI HỌC THỦ DẦU MỘTVIỆN KỸ THUẬT CÔNG NGHỆ

BÁO CÁO TIỂU LUÂN

DỰ ĐOÁN CƠ TIM BẰNG CÁCH MÔ HÌNH ML KHÁC NHAU

Sinh viên thực hiện : Vũ Xuân Trường 2024801030076 Đặng Nhật Anh 2024801030133 Trương Viết Nguyên 2024801030184

Trang 3

DỰ ĐOÁN CƠ TIM BẰNG CÁCH MÔ HÌNH ML KHÁC NHAU

TÓM TẮT

Đề tài "Dự đoán Cơ tim bằng cách sử dụng các mô hình Học máy khác nhau" tập trungvào việc áp dụng Học máy để dự đoán nguy cơ bệnh tim cơ tim Dự án này giải quyết vấn đề quan trọng trong lĩnh vực y tế, đặc biệt là trong việc dự đoán và phòng ngừa bệnh tim mạch, một trong những nguyên nhân hàng đầu gây tử vong trên toàn thế giới.Nghiên cứu này có thể bao gồm việc thu thập dữ liệu về các biểu hiện lâm sàng, yếu tốnguy cơ (như huyết áp, cholesterol, tiền sử gia đình), và các chỉ số sức khỏe khác của các bệnh nhân có nguy cơ đau tim Sau đó, các mô hình máy học như học máy, học sâu (deep learning), hoặc các thuật toán khác có thể được sử dụng để phân tích dữ liệu này và dự đoán khả năng mắc bệnh đau tim của từng cá nhân.

Dự đoán nguy cơ bệnh tim: Sử dụng dữ liệu y tế của các bệnh nhân, như thông tin về bệnh tiền sử, chỉ số BMI, huyết áp, cholesterol, thói quen ăn uống, và các yếu tố khác, đề tài này sẽ xây dựng các mô hình Học máy khác nhau để dự đoán nguy cơ mắc bệnh tim cho từng cá nhân.

Kết quả của đề tài này có thể giúp cải thiện khả năng dự đoán bệnh đau tim và hỗ trợ việc đưa ra quyết định về điều trị và chăm sóc sức khỏe cá nhân hóa Nó cũng có thể giúp giảm nguy cơ đau tim và cải thiện chất lượng cuộc sống của những người có nguy cơ cao.

Báo cáo gồm các phần: Chương 1: TỔNG QUANChương 2: TIỀN XỬ LÝ DỮ LIỆUChương 3: THIẾT KẾ MÔ HÌNHChương 4: ĐÁNH GIÁ THỰC NGHIỆM

ii

Trang 4

The topic "Myocardial Prediction Using Different Machine Learning Models" focuseson applying Machine Learning to predict myocardial heart disease risk This projectaddresses an important problem in the medical field, especially in the prediction andprevention of cardiovascular disease, one of the leading causes of death worldwide.This study may include collecting data on clinical manifestations, risk factors (such asblood pressure, cholesterol, family history), and other health indicators of at-riskpatients heart attack Machine learning models such as machine learning, deeplearning, or other algorithms can then be used to analyze this data and predict anindividual's likelihood of having a heart attack.

Predicting heart disease risk: Using patients' medical data, such as information aboutmedical history, BMI, blood pressure, cholesterol, eating habits, and other factors, thistopic will build different Machine Learning models to predict heart disease risk foreach individual.

The results of this study could help improve the ability to predict heart attacks andsupport decision-making about treatment and personalized health care It may alsohelp reduce the risk of heart attack and improve the quality of life of people at highrisk.

Trang 5

DỰ ĐOÁN CƠ TIM BẰNG CÁCH MÔ HÌNH ML KHÁC NHAU

MỞ ĐẦU

Sức khỏe tim mạch đóng vai trò quan trọng trong chất lượng cuộc sống của con người.Bệnh tim mạch, và đặc biệt là đau tim, là một trong những nguyên nhân hàng đầu gâytử vong trên toàn cầu Với sự gia tăng của các yếu tố nguy cơ như xã hội hóa, lối sốngkhông lành mạnh và căng thẳng, việc dự đoán nguy cơ mắc bệnh tim mạch trở thànhmột nhiệm vụ quan trọng để đảm bảo sự phát hiện sớm và can thiệp kịp thời.Trong thời đại số hóa ngày nay, học máy đã trở thành một công cụ mạnh mẽ trong lĩnhvực dự đoán các bệnh lý, trong đó bao gồm cả khả năng dự đoán đau tim Điều này mởra một cơ hội lớn để nghiên cứu và phát triển các mô hình học máy chính xác để dựđoán nguy cơ đau tim cho cá nhân.

Trong nghiên cứu này, chúng tôi đã tập trung vào việc sử dụng các mô hình học máykhác nhau để dự đoán nguy cơ đau tim Chúng tôi đã sử dụng một loạt các dữ liệu lâmsàng và yếu tố nguy cơ để xây dựng các mô hình dự đoán, từ đó đánh giá và so sánhtính hiệu quả của chúng.

Nghiên cứu này không chỉ nhằm mục tiêu cải thiện khả năng dự đoán mắc bệnh timmạch mà còn có thể đóng góp vào việc hiểu rõ hơn về mối quan hệ giữa các yếu tốnguy cơ và bệnh tim mạch Sự kết hợp giữa kiến thức y học và sức mạnh của học máyhứa hẹn mang lại lợi ích lớn cho cả lĩnh vực chăm sóc sức khỏe và nghiên cứu khoahọc.

1

Trang 6

1.2.2 Giới thiệu Python 11

CHƯƠNG 2 TIỀN XỬ LÝ DỮ LIỆU 13

2.1 THU THẬP DỮ LIỆU 13

2.2 Mô tả dữ liệu 13

2.2.1 Sex (Giới tính): 13

2.2.2 Age 14

2.2.3 Đau ngực (Chest Pain Type): 14

2.2.4 Huyết áp Nghỉ (Resting Blood Pressure): 14

2.2.5 Cholesterol Huyết thanh (Serum Cholesterol): 15

2.2.6 Đo lượng đường trong máu (>120 mg/dL) (fasting blood sugar > 120mg/dl): 15

2.2.7 Kết quả điện tâm đồ lúc nghỉ (giá trị 0,1,2) (resting electrocardiographicresults (values 0,1,2)): 15

2.2.8 Nhịp tim tối đa đạt được (maximum heart rate achieved): 16

2.2.9 Đau thắt ngực do tập thể dục (exercise induced angina): 16

2.2.10 Giảm ST so với Nghỉ (Oldpeak): 16

2.2.11 Độ dốc của đoạn ST tập luyện đỉnh cao (oldpeak): 16

2.2.12 Số lượng mạch máu chính (0-3) được nhuộm bằng phương phápfluoroscopy: 17

2.2.13 Thal (Thalassemia): 17

2.2.14 Mục tiêu (Target - Mục tiêu về Nguy cơ Đau tim): 18

2.3 TRỰC QUAN HÓA DỮ LIỆU 18

2.3.1 Biểu đồ 20 dữ liệu cuối: 18

2.3.2 Biểu đồ xóa dữ liệu bị thiếu (được biểu thị bằng dấu "?"): 18

2.3.3 Biểu đồ các hàng có giá trị NaN từ DataFrame: 19

2.3.4 Biểu đồ in hình dạng và kiểu dữ liệu của khung dữ liệu: 20

2.3.5 Biểu đồ chuyển đổi dữ liệu thành số: 21

2.3.6 Biểu đồ in đặc điểm dữ liệu: 21

Trang 7

DỰ ĐOÁN CƠ TIM BẰNG CÁCH MÔ HÌNH ML KHÁC NHAU

2.3.7 Biểu đồ cho từng biến: 22

2.3.8 Biểu đồ tần suất bệnh tim theo lứa tuổi: 22

2.3.9 Biểu đồ nhiệt độ: 23

2.3.10 Biểu đồ Age and Thalach: 24

CHƯƠNG 3 THIẾT KẾ MÔ HÌNH 26

3.1 giới thiệu mô hình 26

3.2 GIAI ĐOẠN HUẤN LUYỆN (training) 26

3.2.1 Phân chia tập huấn luyện 26

3.2.2 Huấn luyện mô hình 27

3.3 giai đoạn đánh giá (testing) 27

3.4 Lan truyền ngược (Backpropagation) 28

CHƯƠNG 4 ĐÁNH GIÁ THỰC NGHIỆM 29

1 kết quả thực nghiệm 29

2 Đánh giá mô hình 29

TÀI LIỆU THAM KHẢO 31

3

Trang 8

DANH MỤC HÌNH

Hình 1.1 - Mối quan hệ giữa Ipython, Jupyter Notebook và Google Colab 11

Hình 2.1 - Heart attack possibility 13

Hình 2.3 1 Biểu đò 20 dữ liệu cuối 18Hình 2.3 2 Biểu đồ xóa dữ liệu bị thiếu 19

Hình 2.3 3 Biểu đồ giá trị NaN từ DataFrame 20

Hình 2.3 4 Biểu đồ in hình dạng và kiểu dữ liệu 21

Hình 2.3 5 Biểu đồ chuyển đổi dữ liệu thành số 21

Hình 2.3 6 Biểu đồ đặc điểm dữ liệu 22

Hình 2.3 7 Biểu đồ cho từng biến 23

Hình 2.3 8 Biểu đồ tần suất bệnh tim theo lứa tuổi 24

Hình 2.3 9 Biểu đồ nhiệt độ 25

Hình 2.3 10 Biểu đồ Age and Thalach 26

Hình 3 1 Mô hình Neural Network 27

Trang 9

DỰ ĐOÁN CƠ TIM BẰNG CÁCH MÔ HÌNH ML KHÁC

DANH MỤC BẢNGNo table of contents entries found.

Danh mục các Từ viết tắtvà ý nghĩa của chúng Chỉviết tắt khi từ lặp lại nhiều

Trang 10

CHƯƠNG 1 TỔNG QUAN1.1 GIỚI THIỆU ĐỀ TÀI

Đề tài “DỰ ĐOÁN CƠ TIM BẰNG CÁCH MÔ HÌNH ML KHÁC NHAU”.

Bệnh tim mạch, bao gồm cả đột quỵ tim, là một trong những nguyên nhân hàng đầu gây tửvong trên toàn thế giới Việc dự đoán và xác định nguy cơ mắc bệnh tim mạch trước khinó xảy ra có thể cứu sống hàng triệu người Điều này đã thúc đẩy nghiên cứu và ứng dụngCông nghệ thông tin trong lĩnh vực y tế, đặc biệt là trong việc phát triển các mô hình Họcmáy để dự đoán nguy cơ đột quỵ tim.

Đề tài này tập trung vào việc sử dụng các mô hình Học máy khác nhau để dự đoán đột quỵtim Mục tiêu của nó là xây dựng các mô hình có khả năng phân loại và đưa ra dự đoán vềnguy cơ đột quỵ tim cho các bệnh nhân dựa trên các thông tin y tế và các yếu tố nguy cơ.

Các mô hình Học máy sẽ được sử dụng để phân tích và khai phá các dữ liệu y tế, bao gồmthông tin về bệnh tiền sử, chỉ số BMI, huyết áp, cholesterol, thói quen ăn uống, và các yếutố khác có thể ảnh hưởng đến nguy cơ đột quỵ tim Các mô hình này có thể bao gồmSupport Vector Machines (SVM), Random Forest, Logistic Regression, Neural Networks,và nhiều mô hình Học máy khác.

Qua việc so sánh hiệu suất của các mô hình khác nhau, đề tài này sẽ giúp xác định môhình nào làm việc hiệu quả nhất trong việc dự đoán đột quỵ tim Kết quả của nghiên cứucó thể cung cấp thông tin hữu ích cho cơ sở y tế và các chuyên gia y tế để tối ưu hóa quytrình đánh giá nguy cơ và thực hiện biện pháp phòng ngừa hiệu quả hơn cho bệnh nhân cónguy cơ cao.

1.2 CÔNG NGHỆ SỬ DỤNG1.2.1 Google Colaboratory

Colaboratory hay còn gọi là Google Colab, là một sản phẩm từ Google Research,nó cho phép thực thi Python trên nền tảng đám mây, đặc biệt phù hợp với Data analysis,machine learning và giáo dục.

Colab không cần yêu cầu cài đặt hay cấu hình máy tính, mọi thứ có thể chạy thôngqua trình duyệt, bạn có thể sử dụng tài nguyên máy tính từ CPU tốc độ cao và cả GPUs vàcả TPUs đều được cung cấp cho bạn.

Trang 11

DỰ ĐOÁN CƠ TIM BẰNG CÁCH MÔ HÌNH ML KHÁC NHAU

Sử dụng Google Colab có những lợi ích ưu việt như: sẵn sàng chạy Python ở bất kỳthiết bị nào có kết nối Internet mà không cần cài đặt, chia sẻ và làm việc nhóm dễ dàng, sửdụng miễn phí GPU cho các dự án về AI.

Mô hình lập trình PHP:

Google Colab là phiên bản chuyên dụng của Jupyter Notebook Nó chạy trên đám mây và cung cấp tài nguyên điện toán miễn phí Mối quan hệ giữa Ipython, Jupyter Notebook và Google Colab được hiển thị bên dưới:

Hình 1.1 - Mối quan hệ giữa Ipython, Jupyter Notebook và Google Colab

Để sử dụng Colaboratory, bạn phải có tài khoản Google, sau đó truy cậpColaboratory bằng tài khoản của bạn.

Đối với Jupyter Notebook, bạn có thể sử dụng Colaboratory để thực hiện các nhiệmvụ cụ thể trong một mô hình định hướng cell Nếu bạn đã sử dụng Jupyter Notebook trướcđây rồi, thì bạn sẽ thấy rõ sự tương đồng giữa Notebook và Colaboratory.

1.2.2 Giới thiệu Python

Python là một ngôn ngữ lập trình được sử dụng rộng rãi trong các ứng dụng web, pháttriển phần mềm, khoa học dữ liệu và máy học (ML) Các nhà phát triển sử dụng Python vìnó hiệu quả, dễ học và có thể chạy trên nhiều nền tảng khác nhau Phần mềm Python đượctải xuống miễn phí, tích hợp tốt với tất cả các loại hệ thống và tăng tốc độ phát triển.

11

Trang 12

Ngôn ngữ dễ đọc và đơn giản: Python được thiết kế với cú pháp dễ đọc, gần gũi với ngônngữ tự nhiên, giúp người lập trình tạo mã một cách tự nhiên và dễ hiểu.

Cộng đồng mạnh mẽ: Python có một cộng đồng đông đảo và nhiệt tình Cộng đồng nàycung cấp nhiều tài liệu, thư viện và hỗ trợ cho người học và người sử dụng Python.Thư viện đa dạng: Python có một bộ thư viện phong phú và đa dạng cho nhiều mục đích,bao gồm NumPy cho tính toán khoa học, Pandas cho xử lý dữ liệu, Matplotlib và Seaborncho trực quan hóa dữ liệu, Django và Flask cho phát triển web, TensorFlow và PyTorchcho trí tuệ nhân tạo, và nhiều thư viện khác.

Đa nền tảng: Python là một ngôn ngữ đa nền tảng, có thể chạy trên nhiều hệ điều hànhkhác nhau, bao gồm Windows, macOS, và các phiên bản của Linux.

Hỗ trợ đối tượng và hàm: Python hỗ trợ lập trình hướng đối tượng và lập trình hàm, chophép người lập trình sử dụng các phong cách lập trình khác nhau tùy theo yêu cầu dự án.Cộng đồng Open Source: Python là một ngôn ngữ lập trình mã nguồn mở, có nghĩa là mãnguồn của nó có sẵn cho cộng đồng để đóng góp và cải tiến.

Trang 13

DỰ ĐOÁN CƠ TIM BẰNG CÁCH MÔ HÌNH ML KHÁC NHAU

CHƯƠNG 2 TIỀN XỬ LÝ DỮ LIỆU2.1 THU THẬP DỮ LIỆU

Một cơn đau tim (Bệnh tim mạch) xảy ra khi dòng máu đến cơ tim đột nhiên bị chặn.Từ thống kê của WHO mỗi năm có 17,9 triệu người chết vì đau tim Nghiên cứu y họcnói rằng lối sống của con người là lý do chính đằng sau vấn đề về tim này Ngoài ra,có nhiều yếu tố chính cảnh báo rằng người đó có thể / có thể không có nguy cơ bị đautim.

Tổ chức Y tế Thế giới ước tính có 12 triệu ca tử vong xảy ra trên toàn thế giới mỗinăm do bệnh tim Tiên lượng sớm của bệnh tim mạch có thể hỗ trợ đưa ra quyết địnhthay đổi lối sống ở những bệnh nhân có nguy cơ cao và từ đó làm giảm các biếnchứng Nghiên cứu này nhằm mục đích xác định các yếu tố nguy cơ/có liên quan nhấtcủa bệnh tim cũng như dự đoán nguy cơ tổng thể bằng cách sử dụng hồi quy logistic.

Hình 2.1 - Heart attack possibility

2.2 MÔ TẢ DỮ LIỆU2.2.1 Sex (Giới tính):

Trang 14

Tên trường : Sex (Giới tính)Kiểu dữ liệu: String

Mô tả: Trường này lưu trữ thông tin về giới tính của người dùng Ví dụ,

giới tính có thể được biểu diễn bằng các giá trị như "Nam", "Nữ", hoặc"Khác".

2.2.2 Age

Kiểu dữ liệu: Liên tục (Continuous)

Mô tả: Trường này lưu trữ thông tin về độ tuổi của bệnh nhân Mặc dù độ

tuổi được ghi lại dưới dạng số nguyên, nhưng khái niệm về tuổi vẫn đượccoi là liên tục Ví dụ, tuổi có thể được biểu diễn dưới dạng số thực đểchính xác hơn.

Ví dụ:

Tuổi: 25

Lưu ý: Mặc dù có thể lưu trữ độ tuổi dưới dạng số nguyên, việc sử dụng

kiểu dữ liệu liên tục có thể hữu ích khi cần thực hiện các phép toán số họchoặc thống kê trên dữ liệu tuổi.

2.2.3 Đau ngực (Chest Pain Type):Kiểu dữ liệu: Nominal (Danh pháp)

Mô tả: Trường này lưu trữ thông tin về loại đau ngực mà bệnh nhân trải

qua Có 4 giá trị khác nhau đại diện cho các loại khác nhau của đau ngực.

Các giá trị có thể:

"1": Đau ngực do vấn đề không liên quan đến tim.

"2": Đau ngực có liên quan đến vấn đề tim mạch, không phải dothiếu máu tim.

"3": Đau ngực do thiếu máu tim."4": Đau ngực không rõ nguyên nhân.

Mô tả: Trường này lưu trữ thông tin về huyết áp của bệnh nhân trong thời

điểm nghỉ, không hoạt động Đây là một trường dữ liệu liên tục, có thể làsố nguyên hoặc số thực, phản ánh mức độ huyết áp mà không có thứ bậccụ thể giữa các giá trị.

Ví dụ:

Resting Blood Pressure: 120/80Resting Blood Pressure: 130

Trang 15

DỰ ĐOÁN CƠ TIM BẰNG CÁCH MÔ HÌNH ML KHÁC NHAU

2.2.5 Cholesterol Huyết thanh (Serum Cholesterol):Kiểu dữ liệu: Liên tục (Continuous)

Mô tả: Trường này lưu trữ thông tin về mức độ cholesterol trong huyết thanh

của bệnh nhân, được đo lường bằng đơn vị mg/dL Đây là một trường dữ liệuliên tục, có thể là số nguyên hoặc số thực.

Ví dụ:

Serum Cholesterol: 180Serum Cholesterol: 220.5

2.2.6 Đo lượng đường trong máu (>120 mg/dL) (fasting blood sugar > 120mg/dl):

Kiểu dữ liệu: Nominal (Danh pháp)

Mô tả: Trường này lưu trữ thông tin về mức độ đường huyết nhanh sau

khi ăn của bệnh nhân, với giá trị nhóm bằng cách so sánh với ngưỡng 120mg/dL Đây là một trường dữ liệu nominal với hai giá trị.

Các giá trị có thể:

"Dưới hoặc bằng 120" (hoặc "Không cao hơn 120"): Để chỉ rằngmức đường huyết nhanh sau ăn không cao hơn 120 mg/dL."Trên 120" (hoặc "Cao hơn 120"): Để chỉ rằng mức đường huyếtnhanh sau ăn cao hơn 120 mg/dL.

Kiểu dữ liệu: Nominal (Danh pháp)

Mô tả: Trường này lưu trữ thông tin về kết quả điện tâm đồ của bệnh

nhân trong thời điểm nghỉ Có 3 giá trị khác nhau đại diện cho các kết quảkhác nhau của điện tâm đồ.

Trang 16

2.2.8 Nhịp tim tối đa đạt được (maximum heart rate achieved):

Kiểu dữ liệu: Liên tục (Continuous)

Mô tả: Trường này lưu trữ thông tin về tần suất tim tối đa mà bệnh nhân đã đạt được

trong quá trình kiểm tra hoặc hoạt động Đây là một trường dữ liệu liên tục, có thể làsố nguyên hoặc số thực.

Mô tả: Trường này lưu trữ thông tin về việc bệnh nhân có trải qua đau

ngực do hoạt động không Đây là một trường dữ liệu nominal với hai giátrị.

Mô tả: Trường này lưu trữ thông tin về sự giảm của đoạn ST trên điện

tâm đồ do tập thể dục so với trạng thái nghỉ Đây là một trường dữ liệuliên tục, có thể là số nguyên hoặc số thực.

Ví dụ:

Oldpeak: 1.5Oldpeak: 0.8

2.2.11 Độ dốc của đoạn ST tập luyện đỉnh cao (oldpeak):

Ngày đăng: 06/05/2024, 18:59