TRƯỜNG ĐẠI HỌC ĐIỆN LỰC KHOA CÔNG NGHỆ THÔNG TIN BÁO CÁO CHUYÊN ĐỀ HỌC PHẦN MÁY VECTOR HỖ TRỢ - SVM ĐỀ TI: SỬ DỤNG KỸ THUẬT HỌC MÁY SVM ĐỂ DỰ ĐOÁN KHẢ NĂNG SỐNG SÓT CỦA BỆNH NHÂN SUY TI
Trang 1TRƯỜNG ĐẠI HỌC ĐIỆN LỰC
KHOA CÔNG NGHỆ THÔNG TIN
BÁO CÁO CHUYÊN ĐỀ HỌC PHẦN MÁY VECTOR HỖ TRỢ - SVM
ĐỀ TI: SỬ DỤNG KỸ THUẬT HỌC MÁY SVM ĐỂ DỰ ĐOÁN KHẢ NĂNG SỐNG SÓT CỦA BỆNH NHÂN SUY TIM
Sinh viên thực hiện : NGUYỄN CÔNG MINH
Giảng viên hướng dẫn : NGÔ QUỐC TẠO Ngành : CÔNG NGHỆ THÔNG TIN Chuyên ngành : TRÍ TUỆ NHÂN TẠO & THỊ
GIÁC MÁY TÍNH Lớp : D14TTNT&TGMT Khóa : 2019-2024
Hà Nội, tháng 3 năm 2022
Trang 3MỤC LỤC
LỜI MỞ ĐẦU 4
LỜI CẢM ƠN 5
CHƯƠNG I: TỔNG QUAN VỀ SVM VÀ PHÂN LOẠI NHỊ PHÂN 6
1.1 Mô hình SVM 6
1.2 Phân lớp nhị phân 7
CHƯƠNG 2 THỬ NGHIỆM VÀ ĐÁNH GIÁ KẾT QUẢ 9
2.1 Bài toán 9
2.2 Xây dựng bộ dữ liệu 9
2.3 Đánh giá kết quả 15
KẾT LUẬN 21
TÀI LIỆU THAM KHẢO 22
Trang 4LỜI MỞ ĐẦU
Công nghệ ngày nay phổ biến và không ai có thể phù nhận được tầm quantrọng và những hiệu quả mà nó đem lại cho cuộc sống chúng ta Bất kỳ trong lĩnhvực nào, sự góp mặt của trí tuệ nhân tạo sẽ giúp con người làm việc và hoàn thànhtốt công việc hơn Và gần đây, một thuật ngữ “machine learning” rất được nhiềungười quan tâm Thay vì phải code phần mềm với cách thức thủ công theo một bộhướng dẫn cụ thể nhằm hoàn toàn một nhiệm vụ để ra thì máy sẽ tự “học hỏi” bằngcách sử dụng một lượng lớn dữ liệu cùng những thuật toán cho phép nó thực hiệncác tác vụ
Đây là một lĩnh vực khoa học tuy không mới, nhưng cho thấy lĩnh vực trí tuệnhân tạo đang ngày càng phát triển và có thể tiến xa hơn trong tương lai Đồngthời, thời điểm này nó được xem là một lĩnh vực ‘nóng” và dành nhiều mối quantâm để phát triển nó một cách mạnh mẽ, bùng nổ hơn
Hiện nay, việc quan tâm machine learning càng ngày càng tăng lên là vì nhờ
có machine learning giúp gia tăng dung lượng lưu trữ các loại dữ liệu sẵn, việc xử
lý tính toán có chi phí thấp và hiệu quả rất nhiều
Những điều trên được hiểu là nó có thể thực hiện tự động, nhanh chóng đểtạo ra những mô hình cho phép phân tích các dự liệu có quy mô lớn hơn và phứctạp hơn đồng thời đưa ra những kết quả một cách nhanh và chính xác hơn
Chính sự hiệu quả trong công việc và các lợi ích vượt bậc mà nó đem lại chochúng ta khiến machine learning ngày càng được chú trọng và quan tâm nhiều hơn
Vì vậy, chúng em chọn đề tài “Sử dụng kỹ thuật học máy SVM để dự đoán khảnăng sống sót của bệnh nhân suy tim”
Trang 5LỜI CẢM ƠN
Trên thực tế, không có sự thành công nào mà không gắn liền với những sự hỗtrợ, sự giúp đỡ dù ít hay nhiều, dù là trực tiếp hay gián tiếp của người khác Trongsuốt thời gian từ khi bắt đầu học tập ở giảng đường Đại học đã đến nay, em đãnhận được rất nhiều sự quan tâm, giúp đỡ của thầy cô, gia đình và bạn bè
Với lòng biết ơn sâu sắc nhất, em xin gửi đến thầy cô ở Khoa Công NghệThông Tin- trường Đại Học Điện Lực đã cùng với tri thức và tâm huyết của mình
để truyền đạt vốn kiến thức quý báu cho chúng em trong suốt thời gian học tập tạitrường Và đặc biệt, trong kỳ này, em được tiếp cận với môn học rất hữu ích đốivới sinh viên ngành Công Nghệ Thông Tin Đó là môn: “Máy vector hỗ trợ”
Em xin chân thành cảm ơn thầy Ngô Quốc Tạo đã tận tâm hướng dẫn chúng emqua từng buổi học trên lớp cũng như những buổi nói chuyện, thảo luận về mônhọc Trong thời gian được học tập và thực hành dưới sự hướng dân của cô, emkhông những thu được rất nhiều kiến thức bổ ích, mà còn được truyền sự say mê
và thích thú đối với bộ môn “Máy vector hỗ trợ” Nếu không có những lời hướngdẫn, dạy bảo của cô thì em nghĩ báo cáo này rất khó có thể hoàn thành được Xin gửi lời cảm ơn chân thành đến gia đình, bạn bè là nguồn động viên to lớn,giúp em vượt qua những khó khăn trong quá trình học tập và thực hiện báo cáo.Mặc dù đã rất cố gắng hoàn thiện báo cáo với tất cả sự nỗ lực, tuy nhiên, dobước đầu đi vào thực tế, tìm hiểu và xây dựng báo cáo trong thời gian có hạn, vàkiến thức còn hạn chế, nhiều bỡ ngỡ, nên báo cáo “Sử dụng kỹ thuật học máySVM để dự đoán khả năng sống sót của bệnh nhân suy tim” chắc chắn sẽ khôngthể tránh khỏi những thiếu sót Em rất mong nhận được sự quan tâm, thông cảm vànhững đóng góp quý báu của các thầy cô và các bạn để báo cáo này được hoànthiện hơn
Một lần nữa, em xin chân thành cảm ơn và luôn mong nhận được sự đóng gópcủa mọi người
Em xin chân thành cảm ơn
Trang 6CHƯƠNG I: TỔNG QUAN VỀ SVM V PHÂN LOẠI NHỊ PHÂN
1.1 Mô hình SVM
SVM (Support Vector Machine) là 1 thuật toán học máy thuộc nhómSupervised Learning (học có giám sát) được sử dụng trong các bài toán phân lớp
dữ liệu (classification) hay hồi qui (Regression)
SVM là 1 thuật toán phân loại nhị phân, SVM nhận dữ liệu vào và phân loạichúng vào hai lớp khác nhau Với 1 bộ các ví dụ luyện tập thuộc hai thể loại chotrước, thuật toán luyện tập SVM xây dựng 1 mô hình SVM để phân loại các ví dụkhác vào hai thể loại đó
Phương trình tuyến tính của SVM có dạng:
=> Trong đó w thuộc Rn là vector hệ số ứng với các chiều của vector
b là hệ số tự do trong không gian hai chiều thì được gọi
là đường thẳng,không gian 3 chiều là mặt phẳng
Công thức của sai số dự đoán:
=> Trong đó, e là sai số dự đoán, y là giá trị thực và ŷ là giá trị dự đoán (haycòn gọi là y_pred) Hàm bình phương để tránh phương trình có thể ra kết quả âm
và vì e là sai số, nên giá trị này càng nhỏ càng tốt
Trang 7Trong đó TP, TN là dự đoán đúng
FP, FN là dự đoán sai
Precision - bao nhiêu cái đúng được lấy ra
Recall - bao nhiêu cái được lấy ra là đúng
1.2 Phân lớp nhị phân
Phân lớp nhị phân (Binary classification) là nhiệm vụ phân loại các phần tử
của một tập hợp các đối tượng ra thành 2 nhóm dựa trên cơ sở là chúng có mộtthuộc tính nào đó hay không (hay còn gọi là tiêu chí) Một số nhiệm vụ phân loạinhị phân điển hình:
- Kiểm tra y khoa xem một bệnh nhân có bệnh nào đó hay không (thuộc tính để phân loại là căn bệnh đó)
- Quản lý chất lượng trong nhà máy, ví dụ: xác định xem một sản phẩm làm ra là
đủ tốt để bán chưa, hay nên loại bỏ nó (thuộc tính để phân loại là tính đủ tốt)
- Xác định xem một trang hay một bài báo có nên nằm trong tập kết quả của một truy vấn hay không (thuộc tính là độ liên quan của bài báo - thường là sự hiện diện của một số từ nào đó trong bài báo đó)
Đánh giá bộ phân lớp nhị phân: Để đánh giá độ hiệu quả của một xét nghiệm
y khoa, người ta thường sử dụng các khái niệm độ nhạy và đặc trưng Giả sử chúng
ta xét nghiệm xem một vài người nào đó có bệnh hay không
- Một số người có bệnh, và kết quả xét nghiệm là dương tính (positive) Họ được gọi là các dương tính đúng
- Một số người có bệnh, nhưng kết quả xét nghiệm âm tính (negative) Họ được gọi
Trang 8được xét nghiệm có bị bệnh" Độ nhạy càng cao, càng ít khả năng bệnh không được phát hiện (hoặc, trong trường hợp quản lý chất lượng ở nhà máy, càng ít sản phẩm lỗi được đưa ra thị trường).
+ Đặc trưng (specificity) là tỉ lệ của số người không bị bệnh có kết quả xét nghiệm
âm tính trên tổng số người không có bệnh (thực), nghĩa là (âm tính đúng)/(âm tính đúng + dương tính sai) Nó còn được coi là xác suất xét nghiệm cho kết quả âm tính đối với người không có bệnh Độ đặc trưng càng cao, càng ít người mạnh khỏeđược coi là bị bệnh (hoặc trong trường hợp nhà máy, càng ít tiền bị tốn phí do loại
bỏ các sản phẩm chất lượng tốt thay vì đem bán chúng)
Về mặt lý thuyết, độ nhạy và đặc trưng là độc lập, tức là cả hai đều có thể đạt đến 100% Trong thực tế, chúng ta phải đánh đổi cái này để được cái kia - cái này tốt lên thì cái kia xấu đi, không thể đạt được cả hai
Một điểm cần chú ý nữa, là độ nhạy và đặc trưng là độc lập với tỉ lệ giữa số
cá thể âm tính và số cá thể dương tính Tuy nhiên, giá trị của chúng thì lại phụ thuộc vào tổng số cá thể kiểm tra (population) Ví dụ: kiểm tra có kết quả: độ nhạy 99%, đặc trưng 99%
- Giả sử số người kiểm tra là 2000 người, trong đó 1000 có bệnh và 1000 khỏe mạnh Như vậy, ta phát hiện đúng 990 người dương tính đúng, 990 người âm tính đúng, và 10 âm tính sai, 10 dương tính sai Cuối cùng, tỉ lệ dự đoán trúng là 99% cho cả kết quả dương tính và âm tính Như vậy, hệ thống này được coi là khá đáng tin cậy
- Giả sử số người kiểm tra là 2000 người, trong đó chỉ có 100 là thực sự bị bệnh Giả sử ta có 99 dương tính đúng, 1 âm tính sai, 1881 âm tính đúng, và 19 dương tính sai Trong số 19+99 người xét nghiệm dương tính, chỉ có 99 người thực sự có bệnh
Trang 9CHƯƠNG 2 THỬ NGHIỆM V ĐÁNH GIÁ KẾT QUẢ
2.1 Bài toán
Suy tim là tình trạng tim không đủ khả năng bơm để cung cấp máu đảm bảo
cho các nhu cầu hoạt động của cơ thể Suy tim là con đường chung cuối cùng của hầu hết các bệnh lí tim mạch Người bệnh bị suy tim sẽ suy giảm khả năng hoạt động, suy giảm chất lượng sống, tùy từng mức độ sẽ cần sự hỗ trợ khác nhau Ngoài ra người bệnh suy tim nặng sẽ đứng trước nguy cơ tử vong cao do các rối loạn nhịp và các đợt suy tim mất bù Suy tim được chia làm hai loại là suy tim cấp tính và mạn tính
Theo thống kê, các bệnh về tim mạch (CVDs) là nguyên nhân gây tử vong
số 1 trên toàn cầu , cướp đi sinh mạng của khoảng 17,9 triệu người mỗi năm , chiếm 31% tổng số ca tử vong trên toàn thế giới Những người mắc bệnh tim mạch hoặc những người có nguy cơ tim mạch cao (do sự hiện diện của một hoặc nhiều yếu tố nguy cơ như tăng huyết áp, tiểu đường, tăng lipid máu hoặc bệnh đã
có sẵn) cần được phát hiện và quản lý sớm
Suy tim là một sự kiện phổ biến do CVDs gây ra Việc sử dụng mô hình học máy có thể giúp ích rất nhiều trong việc dự đoán tỷ lệ tử vong do suy tim
Bài toán Dự đoán khả năng sống sót của bệnh nhân suy tim đưa ra tất cả các thông tin, chỉ số của người mắc bệnh suy tim, từ đó làm căn cứ chuẩn đoán khả năng tỷ vong cao hay thấp của người bệnh
Giá trị input: Thông tin, số liệu sức khỏe của người mắc bệnh suy tim
Giá trị output: Kết quả người mắc bệnh suy tim có tỷ lệ tử vong cao hay không
Trang 10Bộ dữ liệu gồm 12 thuộc tính bao gồm:
Age ( Tuổi )
Sex (Giới tính)
Chest pain type (kiểu đau ngực)
Resting blood pressure (huyết áp nghỉ ngơi)
Cholestoral
Fasting blood sugar (đường huyết lúc đói)
Resting electrocardiographic results (kết quả điện tâm đồ lúc nghỉ )
Maximum heart rate achieved (nhịp tim tối đa đạt được)
Exercise induced angina (tập thể dục gây ra đau thắt ngực)
Oldpeak = ST depression induced by exercise relative to rest
The slope of the peak exercise ST segment
Number of major vessels 3) colored by flourosopy(số lượng các tàu chính 3) được tô màu bởi Flourrosopy)
(0- Thall
Bộ dữ liệu chia thành 2 phần: Trong đó 80% dữ liệu được làm bộ dữ liệu huyến luyện mô hình ( tập train ), 20% còn lại làm bộ dữ liệu thử nghiệm độ chính xác của mô hình ( tập test )
Trang 11Cài đặt
+Import thư viện:
+Đọc file dữ liệu, phân tích dữ liệu, chuẩn hoá, chia tỉ lệ tập train-test:
+ Max, min, giá trị trung bình, biến phân (variant), độ lêch chuẩn (std)
Trang 12+ Chạy mô hình học máy:
Trang 13+ Đánh giá mô hình dựa trên kết quả dự đoán (với độ đo đơn giản Accuracy, Precision, Recall)
+ Chuẩn hóa Min-Max của X:
Trang 14+Biểu đồ 2 chiều PCA:
+Biểu đồ thể hiện mỗi quan hệ giữa cột Age và y:
Trang 152.3 Đánh giá kết quả
In dữ liệu:
Dữ liệu đầu vào X:
Trang 16Dữ liệu đầu ra Y:
X_train,Y_train
X_test,Y_test
Trang 18Max, min, giá trị trung bình, biến phân (variant), độ lêch chuẩn (std) của X
Trang 19Chuẩn hóa min-max của X:
Đánh giá kết quả:
Sau khi thử nghiệm với bộ cơ sở dữ liệu thì kết quả phân lớp đạt 83%Đối với Precision, Recall:
Ma trận dự đoán:
Trang 20+Biểu đồ 2 chiều PCA:
+Biểu đồ phân bố 2 lớp:
Trang 21KẾT LUẬN
Kết quả đạt được : chúng em đã cài đặt được thuật toán và sử dụng dụng thư viện scikit-learn trong quá trình học tập Nhưng bên cạnh đó thuật toán vẫn còn những ưu nhược điểm như:
Ưu điểm : Nhanh chóng để mô hình hóa và đặc biệt hữu ích khi mối quan hệđược mô hình hóa không quá phức tạp và nếu bạn không có nhiều dữ liệu Hồi quytuyến tính là đơn giản để hiểu, nó rất có giá trị cho các quyết định kinh doanh
Nhược điểm : Đối với dữ liệu phi tuyến tính, hồi quy đa thức có thể khá khó khăn để thiết kế, vì người ta phải có một số thông tin về cấu trúc của dữ liệu và mối quan hệ giữa các biến tính năng
Trong quá trình thực hiện đè tài có rất nhiều ý tưởng hay, độc đáo Nhưng dokiến thức của em còn hạn hẹp và thời gian không cho phép nên em chưa thể hiện được những ý tưởng đó Mặc dù em đã cố gắng để xây dựng một chương trình hoàn chỉnh nhất, đẹp nhất nhưng trong quá trình xây chương trình em khó tránh khỏi những thiếu sót Vì vậy em rất mong rằng cô đóng góp ý kiến để em có thể hoàn thành bài báo cáo một cách hoàn chỉnh và chinh chu nhất
Trang 22TI LIỆU THAM KHẢO
1) [ML] Hồi quy tuyến tính :
https://dominhhai.github.io/vi/2017/12/ml-linear-regression/2) Machine Learning cơ bản:
https://machinelearningcoban.com/2016/12/28/linearregression/
3) Phân tích hồi quy tuyến tính đa biến : https://bit.ly/30xi3Vb4) Phân lớp nhị phân:
https://machinelearningcoban.com/2016/12/27/categories/#classification-phan-loai
5) Mô hình SVM:
https://machinelearningcoban.com/2017/04/09/smv/
6) Slide giảng dạy của thầy giáo Ngô Quốc Tạo
7) Ngoài ra, chúng em còn tham khảo các bài viết trên google, youtube,…
8) Nguồn dữ liệu: https://www.kaggle.com/