1. Trang chủ
  2. » Luận Văn - Báo Cáo

Báo cáo chuyên Đề học phần môn nhập môn học máy sử dụng mô hình máy vector hỗ trợ (svm) Để dự Đoán khả năng mắc bệnh tim mạch

28 0 0
Tài liệu đã được kiểm tra trùng lặp

Đ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

Thông tin cơ bản

Tiêu đề Báo Cáo Chuyên Đề Học Phần Môn Nhập Môn Học Máy Sử Dụng Mô Hình Máy Vector Hỗ Trợ (SVM) Để Dự Đoán Khả Năng Mắc Bệnh Tim Mạch
Tác giả Nguyễn Huy Anh, Nguyễn Hồng Tình
Người hướng dẫn Vũ Văn Định
Trường học Trường Đại Học Điện Lực
Chuyên ngành Công Nghệ Thông Tin
Thể loại Báo cáo
Năm xuất bản 2024
Thành phố Hà Nội
Định dạng
Số trang 28
Dung lượng 2,45 MB

Nội dung

Trong thuật toán này, chúng ta sẽ vẽ đồ thị dữ liệu là các điểm trong n chiều ở đây n là số lượng các tínhnăng hiện có với giá trị của mỗi tính năng sẽ là một phần liên kết.. Hình 1.1 Bi

Trang 1

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ÔN

Hà Nội, tháng 5 năm 2024

Trang 2

PHIẾU CHẤM ĐIỂM Sinh viên thực hiện:

Trang 3

MỤC LỤC

LỜI NÓI ĐẦU 1

CHƯƠNG 1: GIỚI THIỆU MÔ HÌNH SVM 2

1.1 Khái niệm về mô hình SVM 2

1.2 Các bước thực hiện của mô hình SVM 3

1.3 Cách thức hoạt động của mô hình SVM 3

1.4 Margin trong SVM 10

1.5 Kết luận về thuật toán 10

CHƯƠNG 2: ỨNG DỤNG MÔ HÌNH SVM VÀO GIẢI QUYẾT BÀI TOÁN .12

2.1 Giới thiệu bài toán 12

2.2 Giải quyết bài toán 12

2.2.1 Phân tích dữ liệu dataset 12

2.2.2 Áp dụng mô hình vào biến đổi dữ liệu 15

2.2.2.1 Cột tuổi (age) 15

2.2.2.2 Cột giới tính 16

2.2.2.3 Cột loại đau ngực 16

2.2.2.4 Cột huyết áp lúc nghỉ 17

2.2.2.5 Cột cholesterol 17

2.2.2.6 Cột lượng đường trong máu 18

2.2.2.7 Cột kết quả điện tâm đồ lúc nghỉ ngơi 18

2.2.2.8 Cột nhịp tim tối đa đạt được 19

2.2.2.9 Cột tập thể dục có gây đau thắt ngực không 19

2.2.2.10 Cột chênh lệch đoạn ST khi tập thể dục so với lúc nghỉ 20

2.2.2.11 Cột độ dốc tại đỉnh của đoạn ST khi tập thể dục 20

2.2.2.12 Cột số lượng đoạn mạch chính 21

2.2.2.13 Cột dấu hiệu của sóng 21

Trang 4

LỜI NÓI ĐẦU

Bệnh tim mạch là một trong những nguyên nhân gây tử vong hàng đầu trênthế giới, ảnh hưởng đến sức khỏe và chất lượng cuộc sống con người: số ngườichết hàng năm do bệnh tim mạch cao hơn bất kì nguyên nhân nào khác Nhữngngười mắc bệnh tim mạch hoặc có nguy cơ cao mắc bệnh tim mạch nếu được theodõi và phát hiện sớm sẽ làm giảm được tỉ lệ tử vong Tuy nhiên, vấn đề là việc theodõi và giám sát bệnh nhân liên tục và xuyên suốt đòi hỏi nhiều thời gian, kinhnghiệm, chuyên môn cao và nguồn nhân lực rất lớn

Với sự phát triển vũ bão của công nghệ, nhất là trong lĩnh vực trí tuệ nhântạo AI, hiện nay người ta đã và đang liên tục phát triển các giải pháp của cac vấn

đề trong mọi lĩnh vực, trong đó có các giải pháp kết hợp AI để tăng khả năng điềutrị trong lĩnh vực y tế, một ví dụ cụ thể hơn đó là mô hình chẩn đoán khả năng mắcbệnh tim dựa trên các số liệu theo dõi mà máy móc có thể tự động ghi nhận với tầnsuất cao trong thời gian dài

Qua những phân tích trên, chúng em quyết định chọn đề tài: “SỬ DỤNG

MÔ HÌNH MÁY VECTOR HỖ TRỢ (SVM) ĐỂ DỰ ĐOÁN KHẢ NĂNG MẮCBỆNH TIM MẠCH” để làm báo cáo chuyên đề cuối môn

Chúng em xin chân thành gửi lời cảm ơn đến các thầy cô giáo trong TrườngĐại học Điện Lực nói chung và các thầy cô trong Khoa Công nghệ thông tin nóiriêng đã tận tình giảng dạy, truyền đạt cho chúng em những kiến thức cũng nhưkinh nghiệm quý báu trong suốt quá trình học Đặc biệt, chúng em gửi lời cảm ơnđến thầy Vũ Văn Định đã tận tình theo sát giúp đỡ, trực tiếp chỉ bảo, hướng dẫntrong suốt quá trình nghiên cứu và học tập của chúng em

Trang 5

CHƯƠNG 1: GIỚI THIỆU MÔ HÌNH SVM

1.1 Khái niệm về mô hình SVM

Support Vector Machine (SVM) hay Mô hình Máy Vector hỗ trợ là mộtthuật toán giám sát, nó có thể sử dụng cho cả việc phân loại hoặc đệ quy Tuynhiên nó được sử dụng chủ yếu cho việc phân loại Trong thuật toán này, chúng

ta sẽ vẽ đồ thị dữ liệu là các điểm trong n chiều (ở đây n là số lượng các tínhnăng hiện có) với giá trị của mỗi tính năng sẽ là một phần liên kết Sau đóchúng ta thực hiện tìm “đường bay” (hyper-plane) phân chia các lớp Hyper- plane có thể hiểu đơn giản là một đường thẳng có thể phân chia các lớp ra hai

phần riêng biệt

Hình 1.1 Biểu đồ Vector hỗ trợ (SVM) phân loại dữ liệu

Ví dụ, ở hình 1.1 mô tả một biểu đồ SVM được sử dụng để phân loại hai lớp

dữ liệu khác nhau:

 Biểu đồ phân tán: Hình ảnh là một trục X và Y.

 Hai nhóm dữ liệu: Có hai nhóm dữ liệu rõ ràng được biểu diễn bằng các chấm

màu đỏ và xanh lá

 Đường biên quyết định: Một đường nét đứt biểu thị đường biên quyết định,

tác biệt hai nhóm dữ liệu này

Trang 6

 Vector hỗ trợ: “Support Vectors” được gán nhãn trên ba chấm xanh lá gầnđường biên quyết định nhất, chỉ ra rằng những điểm này được sử dụng để xácđịnh vị trí và hướng của đường biên quyết định.

Tóm lại, Support Vector có thể hiểu một cách đơn giản là các đối tượngtrên đồ thị tọa độ quan sát, Support Vector Machine là một biên giới đểchia ranh giới giữa các lớp được tốt nhất

1.2 Các bước thực hiện của mô hình SVM

Để thực hiện thuật toán của mô hình SVM, chúng ta thực hiện các bước sau:

- Xây dựng bài toán tối ưu cho SVM: Bài toán tối ưu của SVM nhằm tìm ravector trọng số (w) và hệ số dẫn (b) sao cho được tối ưu hóa một hàm mụctiêu nhất định Hàm mục tiêu thường là tối ưu hóa khoảng cách giữa cácđiểm dữ liệu và lề phân tách, đồng thời giữ cho lề càng rộng càng tốt để cácđiểm khác vẫn có thể được phân loại chính xác

- Bài toán đối ngẫu cho SVM: SVM là một bài toán lồi, và nếu một bài toánlồi thoả mãn tiêu chuẩn Slater, thì strong duality thoả mãn Nếu strongduality thoả mãn, nghiệm của bài toán chính là nghiệm của hệ điều kiệnKKT (Karush-Kuhn-Tucker)

- Điều kiện KKT: Điều kiện KKT là một tập hợp các điều kiện cần thiết đểmột bài toán tối ưu có nghiệm tối ưu Trong SVM, điều kiện KKT bao gồmcác điều kiện về vector trọng số (w), hệ số dẫn (b), và các giá trị của hàmmục tiêu

- Lập trình tìm nghiệm cho SVM: Có hai cách chính để tìm nghiệm cho SVM:một là tính toán trực tiếp dựa trên công thức, và cách khác là sử dụng thưviện sklearn Cách sử dụng thư viện sklearn thường được ưa chuộng vì nótiết kiệm thời gian và công sức

- Sử dụng kernel: Kernel là một kỹ thuật quan trọng trong SVM, giúp mởrộng không gian đặc trưng của dữ liệu, cho phép SVM giải quyết các bàitoán phân loại có Decision Boundary phức tạp

- Chọn siêu tham số C: Siêu tham số C trong SVM đóng vai trò như một tham

số phạt, quyết định mức độ chấp nhận lỗi phân loại Càng lớn giá trị C, SVMcàng bị phạt nặng khi thực hiện phân loại sai, dẫn đến việc lề phân tách cànghẹp và càng ít vectơ hỗ trợ được sử dụng

Trang 7

1.3 Cách thức hoạt động của mô hình SVM

Ở nội dung trước đã minh họa việc chia hyper-plane Phần hiện tại sẽ làm rõvấn đề “Làm sao để vẽ - xác định đúng hyper-plane” Việc xác định đúng hyper- plane sẽ đi theo các tiêu chí sau:

 Quy tắc số 1:

Ở đây chúng ta có 3 đường hyper-plane (A, B và C)

Hình 1.2 Biểu đồ SVM với đường phân cách B đúng

Ta xét từng đường phân cách như sau:

- Đường A và C: Không phân tách hiệu quả hai nhóm hình dạng vì một

số ngôi sao và hình tròn chồng lên nhau

- Đường B: Phân tách hoàn hảo ngôi sao khỏi hình tròn, do đó ta chọnđường B là một phân loại hiệu quả

Do đó, quy tắc số một để chọn hyper-plane, chọn một hyper-plane đểphân chia hai lớp tốt nhất

 Quy tắc số 2:

Hình ảnh bên dưới cũng mô tả ba đường hyper-plane (A, B và C).Theo quy tắc số 1, chúng đều thỏa mãn

Trang 8

Hình 1.3 Biểu đồ SVM với khoảng cách “Margin” từ các vector

hỗ trợ đến đường hyper-plane

Quy tắc thứ hai chính là xác định khoảng cách lớn nhất từ điểm gầnnhất của một lớp nào đó đến đường hyper-plane Khoảng cách từ cácđiểm này của mỗi lớp đến đường hyper-plane được gọi là “Margin”.Khoảng cách “Margin” là yếu tố quan trọng trong việc xác định mô hìnhSVM, giúp tối ưu hóa sự phân loại và đảm bảo độ chính xác cao Đườnghyper-plane tối ưu sẽ là đường có “Margin” lớn nhất, tạo khoảng trống rõràng giữa các lớp dữ liệu

Xét hình 1.3, có thể thấy khoảng cách margin lớn nhất là đường C.Cần nhớ nếu chọn sai đường hyper-plane có margin thấp hơn thì sau nàykhi dữ liệu tăng lên thì sẽ sinh ra nguy cơ cao về việc xác định nhầm lớpcho dữ liệu

 Quy tắc số 3:

Chúng ta tiếp tục xét hình sau:

Trang 9

Hình 1.4 Biểu đồ SVM với đường phân cách A đúng giữa 2 lớp dữ

liệu

Mặc dù đường B có margin lớn hơn đường A, nhưng nó không có sựphân loại chính xác các điểm dữ liệu vì có sự chồng chéo giữa các lớp Theonguyên tắc số 1, chúng ta cần chọn hyper-plane để phân chia các lớp riêngbiệt Do đó, chúng ta chọn đường A vì nó không có sự chồng chéo và phânloại dữ liệu một cách rõ ràng, tuân thủ theo nguyên tắc đầu tiên

 Quy tắc số 4:

Tiếp tục với hình bên dưới, câu hỏi đặt ra là chúng ta có thể phân loạihai lớp trong trường hợp này không? Theo như mô tả, phần chỉ chứa cácđiểm tròn có ngôi sao, cho nên ta không thể chia thành hai lớp riêng biệtchỉ với một đường thẳng

Trang 10

Hình 1.5 Biểu đồ SVM với một ngôi sao nằm bên vùng của hình

tròn đỏ

Ở đây ta sẽ chấp nhận, một ngôi sao ở bên ngoài cuối được xem nhưmột ngôi sao phía ngoài hơn, SVM có khả năng mạnh trong việc chấpnhận ngoại lệ bằng cách tìm ra hyper-plane có biên giới tối đa, cho phépmột số ngoại lệ mà không làm giảm hiệu suất phân loại tổng thể Điềunày giúp SVM trở thành một công cụ linh hoạt và mạnh mẽ trong việcphân loại dữ liệu

Hình 1.6 Biểu đồ SVM với đường phân cách và ngoại lệ được xác

định

Trang 11

 Quy tắc số 5:

Trong trường hợp dưới đây, chúng ta không thể tìm ra một đườnghyper-plane tương đối để chia các lớp, vậy làm thế nào để SVM phântách dữ liệu thành hai lớp riêng biệt? Cho đến bây giờ chúng ta chỉ nhìnvào các đường tuyến tính hyper-plane

Hình 1.7 Biểu đồ SVM với dữ liệu không tách biệt tuyến tính

SVM có thể giải quyết được vấn đề này Trong trường hợp này, chúng

ta thêm một tính năng mới là z = x^2 + y^2, biến đổi không gian dữ liệu

từ 2D (với trục x và y) thành 3D, (với trục x, y và z mới) Trong khônggian 3D này, các lớp dữ liệu có thể được phân tách một cách rõ ràng bởimột siêu phẳng, giúp việc phân loại trở nên chính xác hơn Bây giờ, dữliệu sẽ được biến đổi như sau:

Trang 12

Hình 1.8 Biểu đồ SVM sau khi được biến đổi

Trong sơ đồ trên, các điểm cần xem xét là:

o Tất cả dữ liệu trên trục z sẽ là số dương vì nó là tổng bình phương

x và y

o Trên biểu đồ các điểm tròn đỏ xuất hiện gần trục x và y hơn, vì thế

z sẽ nhỏ hơn => nằm gần trục x hơn trong đồ thị (z,x)

Trong SVM, rất dễ dàng để có một siêu phẳng tuyến tính (linearhyper-plane) để chia thành hai lớp Câu hỏi được đặt ra là chúng ta có cầnphải thêm một tính năng phân chia này bằng tay hay không SVM có một kĩthuật được gọi là kernel trick (kỹ thuật hạt nhân), đây là tính năng có khônggian đầu vào có chiều sâu thấm và biến đổi nó thành không gian có chiềucao hơn, nơi có thể tìm được một phân loại siêu phẳng tốt hơn, giúp phânloại dễ dàng hơn Tức là nó không phân chia các vấn đề thành cac vấn đềriêng biệt, các tính năng này được gọi là kernel Nói một cách đơn giản nóthực hiện một số biến đổi dữ liệu phức tạp, sau đó tìm ra quá trình tách dữliệu dựa trên các nhãn hoặc đầu ra mà chúng ta đã xác định trước

Qua đó, SVM có thể giải quyết các vấn đề phân loại phức tạp màkhông cần phải can thiệp thủ công vào dữ liệu

Trang 13

1.4 Margin trong SVM

Hình 1.9 Margin trong SVM

Margin là khoảng cách giữa siêu phẳng đến 2 điểm dữ liệu gần nhất tương ứngvới các phân lớp Trong ví dụ quả táo quả lê đặt trên mặt bán, margin chính làkhoảng cách giữa cây que và hai quả táo và lê gần nó nhất Điều quan trọng ở đây

đó là phương pháp SVM luôn cố gắng cực đại hóa margin này, từ đó thu được mộtsiêu phẳng tạo khoảng cách xa nhất so với 2 quả táo và lê Nhờ vậy, SVM có thểgiảm thiểu việc phân lớp sai (misclassification) đối với điểm dữ liệu mới đưa vào

1.5 Kết luận về thuật toán

Là một kĩ thuật phân lớp khá phổ biến, SVM thể hiện được nhiều ưu điểmtrong số đó có việc tính toán hiệu quả trên các tập dữ liệu lớn Có thể kể thêm một

số ưu điểm của phương pháp này như:

 Xử lý trên không gian số chiều cao: SVM là một công cụ tính toán hiệu quảtrong không gian chiều cao, trong đó đặc biệt áp dụng cho các bài toán phânloại văn bản và phân tích quan điểm nơi chiều có thể cực kỳ lớn

 Tiết kiệm bộ nhớ: Do chỉ có một tập hợp con của các điểm được sử dụng trongquá trình huấn luyện và ra quyết định thực tế cho các điểm dữ liệu mới nên chỉ

có những điểm cần thiết mới được lưu trữ trong bộ nhớ khi ra quyết định

 Tính linh hoạt - phân lớp thường là phi tuyến tính Khả năng áp dụng Kernelmới cho phép linh động giữa các phương pháp tuyến tính và phi tuyến tính từ

đó khiến cho hiệu suất phân loại lớn hơn

Trang 14

 Bài toán số chiều cao: Trong trường hợp số lượng thuộc tính (p) của tập dữ liệulớn hơn rất nhiều so với số lượng dữ liệu (n) thì SVM cho kết quả khá tồi.

 Chưa thể hiện rõ tính xác suất: Việc phân lớp của SVM chỉ là việc cố gắng táchcác đối tượng vào hai lớp được phân tách bởi siêu phẳng SVM Điều này chưagiải thích được xác suất xuất hiện của một thành viên trong một nhóm là nhưthế nào Tuy nhiên hiệu quả của việc phân lớp có thể được xác định dựa vàokhái niệm margin từ điểm dữ liệu mới đến siêu phẳng phân lớp mà chúng ta đãbàn luận ở trên

Kết luận: SVM là một phương pháp hiệu quả cho bài toán phân lớp dữ liệu Nó

là một công cụ đắc lực cho các bài toán về xử lý ảnh, phân loại văn bản, phân tíchquan điểm Một yếu tố làm nên hiệu quả của SVM đó là việc sử dụng Kernelfunction khiến cho các phương pháp chuyển không gian trở nên linh hoạt hơn

Trang 15

CHƯƠNG 2: ỨNG DỤNG MÔ HÌNH SVM VÀO GIẢI QUYẾT BÀI TOÁN 2.1 Giới thiệu bài toán

Tệp dữ liệu là file mở rộng heart.csv Trong tệp dữ liệu này có 14 cột và

1026 hàng gồm:

 Age: tuổi của từng bệnh nhân

 Sex: giới tính của từng bệnh nhân

 CP: loại đau ngực của từng bệnh nhân (chest pain type)

- Giá trị 0: đau ngực không điển hình (asymptomatic)

- Giá trị 1: đau ngực không phải do angina (non-anginal pain)

- Giá trị 3: đau ngực điển hình (typical angina)

 Trestbps: huyết áp nghỉ cảu bệnh nhân khi nhập viện (resting blood pressure,đơn vị là mm Hg)

 Chol: lượng cholesterol trong máu (đơn vị là mg/dl)

 Fbs: chỉ số đường huyết sau khi nhịn ăn (fasting blood sugar)

 Restecg: kết quả điện tâm đồ nghỉ ngơi

 Thalach: tốc độ nhịp tim tối đa của bệnh nhân

 Exang: đau thắt ngực do tập thể dục

 Oldpeak: sự giảm của đường cong ST trên đồ thị điện tâm đồ (ECG) khi bệnhnhân tập thể dục so với khi nghỉ

 Slope: độ dốc của đoạn ST trong quá trình tập luyện cao nhất

 Ca: số lượng các đường dẫn chính

 Thal: đại diện cho rối loạn máu

 Target: xác định bệnh nhân có bị bệnh tim hay không

2.2 Giải quyết bài toán

2.2.1 Phân tích dữ liệu dataset

Chúng ta sẽ sử dụng một số thư viện cần thiết để xử lí và phân tích trực quanhóa dữ liệu:

Trang 16

Tiếp theo chúng ta sẽ load tệp dữ liệu có đuôi csv:

Trang 17

Để có thể xem tổng quát về dataset này ta có thể sử dụng các lệnh sau:

Trang 18

2.2.2 Áp dụng mô hình vào biến đổi dữ liệu

Ta sử dụng mô hình máy vector hỗ trợ (svm) để dự đoán khả năng mắc bệnh timmạch dựa trên giá trị các cột Bây giờ chúng ta sẽ sử dụng hàm distplot() từ thưviện Seaborn để vẽ các biểu đồ của các cột:

2.2.2.1 Cột tuổi (age)

=> Ta có thể thấy bệnh nhân chiếm đa số ở độ tuổi khoảng 60 tuổi

Trang 19

2.2.2.2 Cột giới tính

=> Ở đây, dữ liệu ghi nhận số bệnh nhân nữ khoảng 301, số bệnh nhân nam là trên

700

2.2.2.3 Cột loại đau ngực

Trang 20

2.2.2.4 Cột huyết áp lúc nghỉ

2.2.2.5 Cột cholesterol

Trang 21

2.2.2.6 Cột lượng đường trong máu

2.2.2.7 Cột kết quả điện tâm đồ lúc nghỉ ngơi

Trang 22

2.2.2.8 Cột nhịp tim tối đa đạt được

2.2.2.9 Cột tập thể dục có gây đau thắt ngực không

Trang 23

2.2.2.10 Cột chênh lệch đoạn ST khi tập thể dục so với lúc nghỉ

2.2.2.11 Cột độ dốc tại đỉnh của đoạn ST khi tập thể dục

Trang 24

2.2.2.12 Cột số lượng đoạn mạch chính

2.2.2.13 Cột dấu hiệu của sóng

Trang 25

2.2.2.14 Cột chuẩn đoán

Quan sát dữ liệu, ta thấy các thông số trên các cột 'sex', 'cp', 'fbs', 'restecg', 'exang', 'slope', 'ca', 'thal' là các categorical (ví dụ cp là loại triệu chứng đau ngực chẳng hạn), nếu ta để nguyên các số này thì sẽ không hợp lý, ta cần trải phẳng nó ra (sử dụng pandas.get_dummies) Thêm nữa là các cột 'age', 'trestbps', 'chol', 'thalach', 'oldpeak' là các numerical, ta cần scale nó lại, ở đây sử dụng một scaler cơ bản của pandas Code cụ thể :

Ngày đăng: 22/01/2025, 14:58

TÀI LIỆU CÙNG NGƯỜI DÙNG

  • Đang cập nhật ...

TÀI LIỆU LIÊN QUAN