Tải bản đầy đủ (.pdf) (36 trang)

Báo cáo đồ án nhập môn máy học heart disease classification

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (1.56 MB, 36 trang )

TRƯỜNG ĐẠI HỌC SÀI GỊN
KHOA CƠNG NGHỆ THƠNG TIN

Báo Cáo Đồ Án
NHẬP MÔN MÁY HỌC
HEART DISEASE CLASSIFICATION

Giảng viên hướng dẫn: TS. Vũ Ngọc Thanh Sang
Sinh viên thực hiện:
Mã số sinh viên:

Thành phố Hồ Chí Minh - Tháng 11/2022

1


MỤC LỤC
1 Định nghĩa bài toán ………………………………………………………..5
1.1 Vấn đề cần giải quyết là gì ……………………………………………5
1.2 Định nghĩa bài tốn cho người khơng cùng chun mơn ...…………5
1.3 Định nghĩa bài tốn cho người có cùng chun mơn ……..…………5
1.4 Giải thiết của bài tốn là gì ……………………………...……………6
1.5 Các bài tốn tương tự trong thực tế ….………………...……………6
2 Sự cần thiết của project ….……………………..…………...……………6
2.1 Động lực để giải quyết bài toán ….……………………...……………6
2.2 Giải pháp mang lại những lợi ích gì ….…….…………...……………6
2.3 Giải pháp được sử dụng như thế nào ….…….…………...………….7
3 Giải pháp thủ công cho bài toán ….…….……………..……....………….7
3.1 Giải pháp hiện tại của bài toán ….………………………...………….7
3.2 Giải pháp CNTT cho bài toán ….………………………...…………..8
4 Chuẩn bị dữ liệu ….………………………...………………………...……8


4.1 Mô tả dữ liệu ….………………………...………………………….….8
4.2 Trong hồn cảnh như thế nào thì có thể thu thập được dữ liệu ..…..8
4.3 Trong hoàn cảnh như thế nào thì khơng thể thu thập được dữ liệu ..8
5 Xử lý dữ liệu …………………...………………...…………………….…..9
5.1 Xác định và xử lý dữ liệu bị bỏ …………………...……………...…...9
5.2 Mã hóa dữ liệu ……………….…...…………………………………...9
5.3 Thống kê dữ liệu …………………...……………...………………...10

2


5.4 Gom nhóm các đặc trưng ( theo kiểu dữ liệu ) …….…………...….11
5.5 Phân bố của từng đặc trưng như thế nào? ……………………...….12
5.6 Mối tương quan của từng cặp đặc trưng như thế nào? …………...16
5.7 Tính năng tác động nhiều nhất đến dự đốn của mơ hình …...……18
6 Đặc trưng …………………….………...……………...………………….20
6.1 Trích xuất đặc trưng ………….…………...……………...………….20
6.2 Chọn lọc đặc trưng ………….…………...……………...………..….21
7 Huấn luyện mơ hình ………….…………...……………...…………...….21
7.1 Chia dữ liệu thành các tập train, validation, test ……………….….21
7.2 Xác định độ đo cho bài toán (phân loại, hồi quy, phân cụm) ……...21
7.3 Huấn luyện mơ hình ……………….………………………………....25
8 Cải thiện mơ hình ……………….………………………………………..31
8.1 Tinh chỉnh tham số trong không gian tham số ……………….……31
9 Lựa chọn mơ hình ……………….………………………………………..34
9.1 So sánh hiệu suất ……………….………………………………........34
10 Báo cáo ……………….………………………………...........................35
10.1 Tóm tắt bài tốn .………………………………..............................35
10.2 Các cơng trình liên quan .……………………………….................35
10.3 Đề xuất giải pháp .……………………………….............................36

10.4 Kết quả của giải pháp ………………………..................................36
10.5 Kết luận ………………………........................................................37
11 Người giới thiệu ……………………….................................................37

3


1 Định nghĩa bài toán
1.1 Vấn đề cần giải quyết là gì
Theo Tổ chức Y tế Thế giới, mỗi năm 12 triệu ca tử vong xảy ra trên toàn thế
giới về bệnh tim. Tải trọng của bệnh tim đang tăng nhanh trên toàn thế giới từ
vài năm qua. Nhiều nghiên cứu đã được thực hiện trong nỗ lực xác định các yếu
tố nhất của bệnh tim cũng như dự đoán chính xác nguy cơ chung. Bệnh tim
được nhấn mạnh như một kẻ giết người thầm lặng dẫn đến cái chết của người
mà khơng có triệu chứng rõ ràng. Chẩn đốn sớm bệnh tim đóng vai trị quan
trọng trong việc đưa ra quyết định về thay đổi lối sống bệnh nhân và lần lượt
làm giảm các biến chứng. Dự án này nhằm dự đốn bệnh tim bằng cách phân
tích dữ liệu của bệnh nhân phân loại liệu họ có bệnh tim hay khơng sử dụng các
thuật tốn học máy.
1.2 Định nghĩa bài tốn cho người khơng cùng chun mơn
Thách thức lớn trong bệnh tim là phát hiện ra nó. Có những cơng cụ có sẵn
có thể dự đốn bệnh nhưng chúng rất tốn kém hoặc khơng hiệu quả để tính tốn
khả năng mắc bệnh tim ở người. Phát hiện sớm bệnh tim có thể làm giảm tỷ lệ
tử vong và các biến chứng tổng thể. Tuy nhiên, không thể theo dõi bệnh nhân
mỗi ngày trong mọi trường hợp một cách chính xác và tham khảo ý kiến của
bệnh nhân trong 24 giờ bởi vì bác sĩ khơng có sẵn và nó địi hỏi thời gian và sự
chun mơn cao. Vì vậy, trong dự án này chúng em đã phát triển và nghiên cứu
mơ hình để dự đốn sức khỏe bệnh nhân có bị mắc bệnh tim hay khơng bằng
cách sử dụng các thuật toán học máy.
1.3 Định nghĩa bài toán cho người có cùng chun mơn

Học máy được sử dụng trên nhiều phạm vi trên khắp thế giới. Ngành công
nghiệp chăm sóc sức khỏe cũng khơng loại trừ. Học máy có thể đóng một vai
trị thiết yếu trong việc dự đốn sự xuất hiện của bệnh tim. Thông tin như vậy,
nếu dự đốn trước có thể cung cấp trực giác quan trọng cho các bác sĩ sau đó có
thể điều chỉnh chẩn đốn và xử lý chính xác cho mỗi trường hợp của bệnh nhân.
Trong dự án này, chúng em sử dụng các thuật tốn học máy thực hiện phân tích
so sánh các phân loại như Logistic Regression, Nearest Neighbors, Support
Vectors, Nu SVC, Decision Tree, Random Forest, AdaBoost, Gradient
Boosting, Naive Bayes, Linear DA, Quadratic DA, Neural Net, Catboost,
LightGBM, Xgboost để cung cấp độ chính xác và phân tích dự đốn tốt hơn.
4


1.4 Giải thiết của bài tốn là gì
Trong dự án này, chúng em sẽ lấy bộ dữ liệu về bệnh tim và sẽ phân tích, dự
đốn kết quả của bệnh nhân liệu họ có bệnh tim hay khơng, tức là dự đoán bệnh
bệnh tim bằng cách sử dụng học máy. Dự đốn này sẽ làm cho nó nhanh hơn và
hiệu quả hơn trong lĩnh vực chăm sóc sức khỏe cần tốn nhiều thời gian.
1.5 Các bài toán tương tự trong thực tế
Bài toán dự đoán bệnh tiểu đường
Bài toán dự đoán bệnh parkinson
2 Sự cần thiết của project
2.1 Động lực để giải quyết bài tốn
Động lực chính của việc thực hiện nghiên cứu này là trình bày một mơ hình
dự đoán sự xuất hiện của bệnh bệnh tim. Hơn nữa, cơng việc nghiên cứu này
nhằm mục đích xác định thuật toán phân loại tốt nhất để xác định khả năng mắc
bệnh bệnh tim ở bệnh nhân. Cơng trình này được chứng minh bằng cách thực
hiện một nghiên cứu và phân tích so sánh bằng cách sử dụng các thuật tốn
phân loại là Logistic Regression, Nearest Neighbors, Support Vectors, Nu SVC,
Decision Tree, Random Forest, AdaBoost, Gradient Boosting, Naive Bayes,

Linear DA, Quadratic DA, Neural Net, Catboost, LightGBM , Xgboost được sử
dụng ở các cấp độ đánh giá khác nhau.Dự đoán bệnh tim là một nhiệm vụ quan
trọng liên quan đến độ chính xác cao. Do đó, các thuật tốn được đánh giá ở
nhiều cấp độ và loại chiến lược đánh giá. Điều này sẽ cung cấp cho các nhà
nghiên cứu và các học viên y tế tiên lượng sớm bệnh tim và hỗ trợ đưa ra những
quyết định thay đổi lối sống ở những bệnh nhân có nguy cơ cao và giảm các
biến chứng.
2.2 Giải pháp mang lại những lợi ích gì
- Giảm chi phí, tiết kiệm thời gian.
- Hiệu suất cao.
- Giúp đưa ra gợi ý cho bác sĩ.
- Đưa ra chẩn đốn mà khơng cần bác sĩ
5


2.3 Giải pháp được sử dụng như thế nào
Trong phần này, chúng em đã thử nghiệm các thuật toán phân loại khác
nhau để dự đốn bệnh nhân có mắc bệnh tim hay không dựa trên một số thông
số sức khỏe.
Quy trình của giải pháp:
Bước 1: Nhập các thư viện cần thiết, Nhập bộ dữ liệu bệnh tim.
Bước 2: Xử lý trước dữ liệu để loại bỏ dữ liệu bị thiếu.
Bước 3: Thực hiện phân chia tỷ lệ phần trăm 75% để chia tập dữ liệu thành
tập huấn luyện và 25% cho tập kiểm tra.
Bước 4: Chọn thuật toán học máy, tức là Logistic Regression, Nearest
Neighbors, Support Vectors, Nu SVC, Decision Tree, Random Forest,
AdaBoost, Gradient Boosting, Naive Bayes, Linear DA, Quadratic DA, Neural
Net, Catboost, LightGBM , Xgboost.
Bước 5: Xây dựng mô hình phân loại cho thuật tốn học máy đã đề cập dựa
trên tập huấn luyện.

Bước 6: Kiểm tra mơ hình trình phân loại cho thuật tốn học máy đã đề cập
dựa trên tập kiểm tra.
Bước 7: Thực hiện so sánh đánh giá các kết quả hoạt động thử nghiệm thu
được đối với mỗi bộ phân loại.
Bước 8: Thực hiện điều chỉnh tham số từ tham số mặc định trong mô hình
phân loại dựa trên các biện pháp khác nhau.
Bước 9: Thực hiện so sánh đánh giá các kết quả với mơ hình phân loại từ
tham số mặc định, kết luận thuật toán hoạt động tốt nhất.

6


3 Giải pháp thủ cơng cho bài tốn
3.1 Giải pháp hiện tại của bài toán
Chẩn đoán y khoa cụ thể là bệnh tim được coi là một nhiệm vụ quan trọng,
phức tạp và cần nhiều thời gian vì vậy các chẩn đoán được đưa ra đều dựa trên
trực giác, kinh nghiệm và chuyên môn của các bác sĩ chuyên ngành.
3.2 Giải pháp CNTT cho bài toán
Điện tâm đồ (ECG – Electrocardiogram) là đồ thị ghi lại những thay đổi
của dòng điện trong quả tim con người trên một đơn vị thời gian. Tim co bóp
theo nhịp là nhờ vào sự điều khiển của một hệ thống dẫn truyền điện học của cơ
tim. Dòng điện của tim tuy nhỏ, chỉ một phần nghìn volt nhưng hồn tồn có thể
dị được thơng qua các điện cực đặt trên tay, chân, ngực của bệnh nhân và
chuyển đến máy ghi điện. Tại đây, dòng điện sẽ được khuếch đại lên và ghi lại
trên giấy đồ thị.
Đo điện tâm đồ không gây tổn hại đến sức khỏe của người được đo, giá
thành đo điện tim tương đối thấp và được xem là xét nghiệm cơ bản, xét nghiệm
thường quy trong công tác khám chữa bệnh về tim.
Dựa vào dữ liệu từ điện tâm đồ bác sĩ sẽ nắm được khả năng bơm máu của
tim tại thời điểm đó và cho phép bác sĩ có thể áp dụng trong nhiều tình huống y

khoa khác nhau để theo dõi tình trạng sức khỏe tim của bệnh nhân.
4 Chuẩn bị dữ liệu
4.1 Mô tả dữ liệu
Bộ dữ liệu được cung cấp công khai trên trang web UCI Machine Learning
Repository - Heart Disease Dataset. Cơ sở dữ liệu này chứa 76 thuộc tính,
nhưng tất cả các thử nghiệm đã công bố đề cập đến việc sử dụng một tập hợp
con gồm 14 thuộc tính. Đặc biệt, cơ sở dữ liệu Cleveland là cơ sở dữ liệu duy
nhất được các nhà nghiên cứu Machine Learning sử dụng đến hiện tại.
4.2 Trong hồn cảnh như thế nào thì có thể thu thập được dữ liệu
Bệnh nhân còn sống trong lúc làm nghiên cứu, đầy đủ các chỉ số khi lấy
mẫu thử, bộ test phải được bảo quản đúng nơi quy định, ...
7


4.3 Trong hồn cảnh như thế nào thì khơng thể thu thập được dữ liệu
Bệnh nhân khơng cịn sống trong lúc làm nghiên cứu, thiếu các chỉ số khi
lấy mẫu thử, bộ test không được bảo quản đúng nơi quy định, ...
5 Xử lý dữ liệu
5.1 Xác định và xử lý dữ liệu bị bỏ
Dữ liệu hàng thứ 93, 159, 164, 165 và 252 có ‘ca=4’ và hàng thứ 49 và 282
có ‘thal = 0’ là khơng chính xác. Theo bộ dữ liệu gốc chúng có giá trị là NaNs.
Vì vậy, chúng em sẽ bỏ đi những dữ liệu sai.

5.2 Mã hóa dữ liệu
Các tên đặc trưng trong tập dữ liệu được viết tắt và khó hiểu ý nghĩa của
chúng. Tên đầy đủ về y tế / kỹ thuật đã đủ khó hiểu đối với hầu hết chúng ta chứ
đừng nói đến dạng viết tắt của chúng. Vì vậy, để làm cho chúng dễ đọc hơn một
chút, ở đây, chúng em sẽ thay đổi tên cột của khung dữ liệu bằng cách sử dụng
thông tin từ kho lưu trữ dữ liệu UCI.
Chúng em cũng sẽ thay thế các danh mục được mã hóa (0, 1, 2,..) theo ý

nghĩa y tế của chúng (ví dụ: 'đau thắt ngực khơng điển hình', 'đau thắt ngực điển
hình', v.v.).

8


9


5.3 Thống kê dữ liệu

5.4 Gom nhóm các đặc trưng ( theo kiểu dữ liệu )

Như chúng ta thấy ở trên thì sẽ có 3 loại kiểu dữ liệu object, int và float.
Hãy gom chúng dựa theo kiểu dữ liệu.
# đặc trưng số học
num_feats = ['age', 'cholesterol', 'resting_blood_pressure',
'max_heart_rate_achieved', 'st_depression', 'num_major_vessels']
# đặc trưng nhị phân

10


bin_feats = ['sex', 'fasting_blood_sugar', 'exercise_induced_angina', 'target']
# đặc trưng phân loại
nom_feats= ['chest_pain_type', 'resting_electrocardiogram', 'st_slope',
'thalassemia']
cat_feats = nom_feats + bin_feats
5.5 Phân bố của từng đặc trưng như thế nào?


Chúng em quan sát được rằng kết quả khá cân bằng với ~46% cho các kết
quả khơng có bệnh và ~54% cho các kết quả có bệnh. Vì vậy khơng cần để tâm
về vấn đề mất cân bằng dữ liệu.
Phân phối của các đặc trưng số học:

11


12


Phân phối của các đặc trưng phân loại:

13


14


5.6 Mối tương quan của từng cặp đặc trưng như thế nào?

15


Tương quan:
- Mối tương quan giữa các đặc trưng là yếu nhất
- Từ các đặc trưng số ‘num_major_vessels’, ‘max_heart_rate_achieved’ và
‘st_depression’ tương quan khá hợp lý với biến mục tiêu ở hệ số tương quan 0,47, 0,43 và -0,43 tương ứng.
- Từ các đặc điểm phân loại ‘chest_pain_type’, ‘st_depression’,
‘thalassemia’, và ‘exercise_created_angina’ có tương quan tốt hơn với biến mục

tiêu, ‘thalassemia’ cao nhất ở mức 0,52.
- Cholestrol ít tương quan với bệnh tim.
Vậy các đặc trưng có khả năng dự đốn cao hơn có thể là ‘chest_pain_type’,
‘num_major_vessels’, ‘thalassemia’, ‘exercise_created_angina’,
‘max_heart_rate_achieved’ và ‘st_depression’.

16


5.7 Tính năng tác động nhiều nhất đến dự đốn của mơ hình
Một trong những thách thức của dự án học máy là giải thích dự đốn của mơ
hình. Permutation importance và SHAP là hai phương pháp mà người ta có thể
sử dụng để hiểu những tính năng nào đã được chọn để có tác động nhiều nhất
đến dự đốn của mơ hình.
Permutation importance : Là sự giảm điểm của mơ hình khi một giá trị tính
năng duy nhất được xáo trộn ngẫu nhiên. Quy trình này phá vỡ mối quan hệ
giữa tính năng và mục tiêu, do đó, điểm số mơ hình giảm cho thấy mức độ phụ
thuộc của mơ hình vào tính năng.

SHAP (SHapley Additive exPlanations): Là một cách tiếp cận lý thuyết trị
chơi để giải thích đầu ra của bất kỳ mơ hình học máy nào. Nó kết nối phân bổ
tín dụng tối ưu với các giải thích cục bộ bằng cách sử dụng các giá trị Shapley
cổ điển từ lý thuyết trò chơi và các phần mở rộng liên quan của chúng. Các giá
trị Shapley được tính gần đúng bằng cách sử dụng Kernel SHAP, sử dụng hạt
nhân có trọng số để tính gần đúng và DeepSHAP, sử dụng DeepLift để ước tính
chúng.

17



Theo cả permutation importance và SHAP, ba đặc điểm quan trọng nhất của
mơ hình là ‘num_major_vessels’, ‘chest_pain_type’ và ‘st_slope’.

18


6 Đặc trưng
6.1 Trích xuất đặc trưng
Đặc trưng số học:

Đặc trưng phân loại :

19


6.2 Chọn lọc đặc trưng

Reg-plots của một số các chọn lọc đặc trưng được hiển thị dưới dạng quan
hệ tuyến tính với tuổi, tương tự với cột đầu tiên của pair-plot( đặc trưng số học )
ở trên, ta quan sát thấy được:
- Ngoại trừ ‘maximum_heart_rate_achieved’, thì các chỉ số khác có xu
hướng quan hệ với nhau tuyến tính ‘age’ (mặc dù có quan hệ yếu hơn với
‘st_depression’).
- Bệnh nhân trẻ hơn với ‘maximum_heart_rate_achieved’ cao hơn thì
thường sẽ có điều kiện tim mạch.
- Chỉ số ‘st_depression’ thấp hơn bất chấp tuổi tác thì đều biểu lộ ra kết quả
mắc bệnh về tim mạch.
7 Huấn luyện mơ hình
7.1 Chia dữ liệu thành các tập train, validation, test
Dữ liệu được chia thành 75% dữ liệu đào tạo và 25% dữ liệu thử nghiệm, dữ

liệu này được chuyển tiếp cho mơ hình Logistic Regression, Nearest Neighbors,
Support Vectors, Nu SVC, Decision Tree, Random Forest, AdaBoost, Gradient
Boosting, Naive Bayes, Linear DA, Quadratic DA, Neural Net, Catboost,
LightGBM , Xgboost để phù hợp, dự đoán và cho điểm mơ hình
7.2 Xác định độ đo cho bài tốn ( phân loại, hồi quy, phân cụm )
Độ đo cho bài toán chúng em sử dụng confusion matrix là một cách bố trí
bảng cụ thể cho phép trực quan hóa hiệu suất của thuật tốn học có giám sát.
Mỗi hàng của ma trận biểu thị các thể hiện trong lớp ‘thực tế’ trong khi mỗi cột
biểu thị các thể hiện trong lớp ‘dự đốn’.
Confusion matrix có các chỉ số đánh giá sau:
20



×