Bài toán phân loại bệnh dựa trên kết quả xét nghiệm hóa nghiệm

Một phần của tài liệu (Luận văn thạc sĩ) Nghiên cứu một số thuật toán học máy và ứng dụng trong phân loại bệnh (Trang 45)

3.2.1. Đặt bài toán

Bài toán phân loại bệnh được trình bày ở mục 1.1 chương 1 sẽ được xem xét cụ thể như sau:

- Dữ liệu bệnh là tập dữ liệu được học viên thu thập như đã mô tả ở trên bao gồm kết quả xét nghiệm hóa nghiêm của 3863 bệnh nhân với 6 loại nhóm bệnh.

- Mô hình phân lớp được xây dựng khi sử dụng hai thuật toán học máy là cây quyết định và máy vector hỗ trợ.

- Kết quả đầu ra các bệnh nhân sẽ được phân lớp mặt bệnh phù hợp

3.2.2. Tiền xử lý dữ liệu

Làm sạch dữ liệu:

- Khử nhiễu: Dùng kỹ thuật làm trơn để xử lý loại lỗi này. Nhiễu trong dữ liệu xét nghiệm chủ yếu là các giá trị bất thường gây ra bởi máy xét nghiệm hoạt động không đạt tiêu chuẩn hoặc do sai sót, lỗi bệnh phẩm trong quá trình lấy. Các giá trị đo được của các chỉ số xét nghiệm được đối sánh với miền giá trị tham chiếu tương ứng. Những giá trị bất thường được tham khảo chuyên môn của các bác sĩ chuyên ngành xét nghiệm để loại bỏ.

- Xử lý giá trị thiếu: Với xét nghiệm thì không phải tất cả các xét nghiệm đều được thực hiện cùng thời điểm mà được thực hiện rải rác trong quá trình chẩn đoán và điều trị bệnh. Các giá trị XN này phải được tổng hợp lại thành một dòng dữ liệu duy nhất bao gồm những giá trị có thể có ý nghĩa trong chẩn đoán. Việc tổng hợp và xử lý dữ liệu thiếu được thực hiện theo các bước sau:

Bước 1: Nhóm các kết quả xét nghiệm theo từng bệnh nhân

37

Bước 2: Lập 2 dòng dữ liệu trong đó 1 dòng là tập hợp các giá trị min của từng chỉ số XN, 1 dòng là tập hợp các giá trị max của từng chỉ số XN.

Hình 3.2: Dữ liệu xét nghiệm của 1 BN đã tách thành 2 dòng dữ liệu min, max.

Dòng trên gồm các giá trị min, dòng dưới là các giá trị max

Bước 3: Chuyển dữ liệu thành 1 dòng kết quả duy nhất bằng cách tham chiếu với các khoảng tham chiếu trong tài liệu chuyên mônError! Reference source not found. và hỏi ý kiến chuyên gia để xác định giá trị có thể có ý nghĩa. Nếu vẫn còn có giá trị thiếu thì được điền bằng giá trị phổ biến nhất theo tham khảo chuyên môn.

Hình 3.3: Dữ liệu xét nghiệm có ý nghĩa của 1 BN đã được xác định

Lựa chọn, rút gọn thuộc tính

Lựa chọn thuộc tính rất cần thiết trong giai đoạn tiền xử lý dữ liệu khi triển khai các mô hình học máy. Tuy nhiên việc tìm ra tập con thuộc tính tốt nhất (làm mất đi ít nhất lượng thông tin cần thiết) thường khó thực hiện, đặc biệt trong lĩnh vực xét nghiệm y học khi các chỉ số xét nghiệm có các mối tương quan ràng buộc ẩn rất phức tạp. Vì vậy trong luận văn chọn phương pháp lựa chọn thuộc tính theo kinh nghiệm chuyên gia.

Theo kinh nghiệm của chuyên môn y tế [8], sau khi thu hẹp/loại trừ các chỉ số xét nghiệm không có ý nghĩa trong phạm vi nghiên cứu, các thuộc tính được lựa chọn còn lại 98 thuộc tính (Phụ lục).

Chuẩn hóa dữ liệu

Như đã trình bày ở mục 3.1.2, kết quả xét nghiệm hóa nghiệm có rất nhiều thuộc tính với các miền giá trị khác nhau. Việc sử dụng trực tiếp những giá trị này có thể làm ảnh hưởng khi xây dựng và đánh giá mô hình phân loại bệnh như: tốc độ xử lý, độ ổn định, … .

38

Luận văn chọn phương pháp chuẩn hóa min-max để áp dụng chuyển đổi dữ liệu xét nghiệm hóa nghiệm sang miền giá trị mới là [0.0; 10.0]. Phương pháp min- max được thực hiện như sau:

Giả sử minA và maxA là giá trị nhỏ nhất và giá trị lớn nhất của 1 thuộc tính A. Phương pháp chuẩn hóa Min-max sẽ ánh xạ 1 giá trị ai thuộc A sang 1 giá trị bi

thuộc miền giá trị mới [new_minA; new_maxA] theo công thức: bI=

Trong hình 3.4 mô tả dữ liệu xét nghiệm hóa nghiệm được chuẩn hóa theo công thức trên sang miền giá trị [0.0; 10.0].

Hình 3.4: Dữ liệu xét nghiệm đã được chuẩn hóa với miền [0.0;10.0]

3.2.3. Các kịch bản thử nghiệm

Luận văn sẽ tiến hành thử nghiệm theo các kịch bản như trình bày dưới đây. Đối với thuật toán SVM sẽ tiến hành thử nghiệm phân loại bệnh dựa trên chiến lược 1/1 và 1/k.

Để thử nghiệm đánh giá hiệu quả phân loại bệnh khi số lượng mẫu thay đổi, bộ mẫu XN được chia làm 3 nhóm với các kích cỡ khác nhau. Sau đó áp dụng xây dựng và đánh giá mô hình phân loại bệnh lần lượt trên 3 nhóm này.

Trong luận văn, số lượng mẫu được lựa chọn cho mỗi nhóm như sau: (adsbygoogle = window.adsbygoogle || []).push({});

Nhóm 1 gồm số lượng mẫu là n = 600 được lựa chọn ngẫu nhiên trong từng nhóm bệnh sao cho tỷ lệ của mỗi nhóm tương đương tỷ lệ của chúng trong toàn bộ dữ liệu.

39

Nhóm 2 gồm số lượng mẫu là n = 1200 được lựa chọn ngẫu nhiên trong từng nhóm bệnh sao cho tỷ lệ của mỗi nhóm tương đương tỷ lệ của chúng trong toàn bộ dữ liệu.

Nhóm 3 gồm số lượng mẫu là n = 3863 toàn bộ dữ liệu đã thu thập ở trên. Trong từng nhóm bệnh phân chia ngẫu nhiên mẫu huấn luyện với tỷ lệ 70% và 30% là mẫu dữ liệu kiểm chứng.

3.2.4. Công cụ thực nghiệm

Công cụ thực nghiêm: Sử dụng phần mềm Weka version 3.9.5 [15].

Weka là một phần mềm khai tháᴄ dữ liệu mã nguồn mở đượᴄ phát triển tại Đại họᴄ Wiᴄhita. Giống như RapidMiner, Weka không ᴄó mã hóa ᴠà ѕử dụng GUI đơn giản. Sử dụng Weka ᴄó thể gọi trựᴄ tiếp ᴄáᴄ thuật toán họᴄ máу hoặᴄ nhập ᴄhúng bằng mã Jaᴠa. Nó ᴄung ᴄấp một loạt ᴄáᴄ ᴄông ᴄụ như trựᴄ quan hóa, tiền хử lý, phân loại, phân ᴄụm, ᴠ.ᴠ.

Giao diện chính của weka như trong hình 3.6 dưới đây.

Các tính năng chính của Weka:

- Weka cung cấp cho người dùng các công cụ học thuật thường dùng để khai thác dữ liệu hoặc phát triển các mô hình học thuật, bao gồm các thuật toán thường được áp dụng trực tiếp vào các bộ dữ liệu hoặc đoạn code Java. - Weka chủ yếu dành cho những ai đã quen với công việc khai thác dữ liệu và

phân tích cơ sở dữ liệu, muốn xem và phân tích các file dữ liệu ARFF, tiến hành phân nhóm hay hồi quy dữ liệu.

40

Hình 3.5: Màn hình WEKA

3.3. Kết quả thực nghiệm và đánh giá

3.3.1. Chuẩn bị dữ liệu và thực hiện thử nghiệm

Chuẩn bị dữ liệu

Mẫu XN gồm 3863 mẫu thuộc 06 nhóm bệnh đã được tiền xử lý.

Để thử nghiệm đánh giá hiệu quả phân lớp đa lớp theo chiến lược 1/k, 1/1 và theo cây quyết định khi số lượng mẫu thay đổi, mẫu XN được chia làm 3 nhóm với các kích cỡ khác nhau sau đó áp dụng xây dựng và đánh giá mô hình lần lượt trên 3 nhóm này. Bảng 3.2 thể hiện số mẫu có trong mỗi nhóm.

Bảng 3.2: Phân bố số lượng mẫu nhóm theo kích cỡ mẫu

Tên nhóm Số lượng mẫu

Nhóm mẫu 1 600

Nhóm mẫu 2 1200

Nhóm mẫu 3 3863

Dữ liệu được phân nhóm và lựa chọn mẫu HL và KC theo quy trình sau: - Thực hiện việc phân nhóm kích cỡ mẫu:

41

 Tính tỷ lệ của kích cỡ mẫu dự định với tổng số mẫu (n = 3863)

 Chọn ngẫu nhiên mẫu trong từng nhóm bệnh sao cho tổng số mẫu được chọn bằng kích cỡ mẫu dự định với tỷ lệ mẫu chọn trong từng nhóm bệnh tương đương với tỷ lệ đã tính ở trên.

- Thực hiện việc chọn mẫu HL và KC theo từng nhóm kích cỡ mẫu:  Trong từng nhóm bệnh chọn ngẫu nhiên mẫu KC với tỷ lệ 30%.  Phần còn lại là mẫu huấn luyện.

Với các nhóm mẫu 1 và 2 được được chọn lựa và phân chia dữ liệu HL, KC theo quy trình trên. Nhóm mẫu 3 chỉ cần thực hiện bước lựa chọn mẫu HL và KC. Sau khi thực hiện phân nhóm và lựa chọn mẫu HL, KC cho từng nhóm, ta có được kết quả phân bố chi tiết số lượng mẫu HL và KC theo nhóm mặt bệnh được thể hiện tại bảng 3.3.

Bảng 3.3: Cơ cấu nhóm bệnh với số mẫu HL và KC tương ứng (adsbygoogle = window.adsbygoogle || []).push({});

TT Tên nhóm mặt bệnh Số lượng (n) Số lượng HL Số lượng KC I. Nhóm mẫu 1 600 420 180 1 Nhóm bệnh lý tim 89 62 27 2 Nhóm bệnh lý thận 116 81 35 3 Nhóm bệnh lý khớp 125 87 38 4 Nhóm bệnh lý tuyến giáp 217 152 65 5 Nhóm bệnh lý tiêu hóa 31 22 9

6 Nhóm bệnh máu và cơ quan tạo máu 22 16 6

II. Nhóm mẫu 2 1200 840 360 1 Nhóm bệnh lý tim 120 84 36 2 Nhóm bệnh lý thận 153 107 46 3 Nhóm bệnh lý khớp 203 142 61 4 Nhóm bệnh lý tuyến giáp 301 211 90 5 Nhóm bệnh lý tiêu hóa 60 42 18

42 TT Tên nhóm mặt bệnh Số lượng (n) Số lượng HL Số lượng KC

6 Nhóm bệnh máu và cơ quan tạo máu 363 254 109

III. Nhóm mẫu 3 3863 2704 1159 1 Nhóm bệnh lý tim 173 121 52 2 Nhóm bệnh lý thận 299 209 90 3 Nhóm bệnh lý khớp 384 269 115 4 Nhóm bệnh lý tuyến giáp 1575 1102 473 5 Nhóm bệnh lý tiêu hóa 71 50 21

6 Nhóm bệnh máu và cơ quan tạo máu 1361 953 408

Dữ liệu được tách ra, chuyển đổi sang dạng chuẩn arff của Weka với 99 thuộc tính gồm 98 thuộc tính chỉ số XN và 1 thuộc tính lớp theo bảng 3.4 như sau:

Bảng 3.4: Chi tiết các tập tin dữ liệu

Tên tập tin Nội dung Số thuộc tính Số bản ghi

Train1.arff Tập huấn luyện của nhóm 1 86 420 Test1.arff Tập kiểm chứng của nhóm 1 86 180 Train2.arff Tập huấn luyện của nhóm 2 86 840 Test2.arff Tập kiểm chứng của nhóm 2 86 360 Train3.arff Tập huấn luyện của nhóm 3 86 2704

Test3.arff Tập kiểm chứng của nhóm 3 86 1159

Thực hiện thử nghiệm

Trong mục này luận văn trình bày một số kết quả chính trích ra từ các bản log khi chạy trên Weka. Do giới hạn về số trang của luận văn nên không thể nêu chi tiết các thao tác trên Weka.

Các thuật toán lựa chọn thử nghiêm: - Phương pháp Cây quyết định sử dụng j48.

43

- Máy vi tính: Thử nghiệm thực hiện trên máy tính chạy Microsoft Window 10 Ultimate 64bit với cấu hình:

. CPU: Intel(R) Core(TM) i7-9700 CPU @ 3.00GHz 3.00 GHz . RAM: 24Gb

3.3.2. Kết quả thực nghiệm

1) Kết quả thử nghiệm với nhóm mẫu 1 (n = 600):

Kết quả thử nghiệm đối phương pháp SVM xây dựng mô hình theo chiến lược 1/k trong bảng 3.5.

Bảng 3.5: Kết quả phân lớp phương pháp SVM theo chiến lược 1/k với nhóm mẫu 1

Kết quả thử nghiệm đối phương pháp SVM xây dựng mô hình theo chiến lược 1/k trong bảng 3.6.

44

Bảng 3.6: Kết quả phân lớp phương pháp SVM theo chiến lược 1/1 với nhóm mẫu 1

Kết quả thử nghiệm đối phương pháp cây quyết định bảng 3.7.

Bảng 3.7: Kết quả phân lớp theo cây quyết định

Kết quả các độ đo của các thuật toán thử nghiệm trong bước huấn luyện theo kịch bản 1 được tổng hợp trong bảng 3.8.

Bảng 3.8: Bảng kết quả huấn luyện của 2 thuật toán theo nhóm mẫu 1

Các độ đo đánh giá SVM J48 (adsbygoogle = window.adsbygoogle || []).push({});

1/k 1/1

45

Độ đặc hiệu (%) 99,5 99,5 97,3

Độ chính xác dự đoán (%) 96,4 97,3 94,6 Thời gian xây dựng mô hình (s) 0,22 0,11 0,03 Kết quả kiểm chứng các mô hình được tổng hợp trong bảng 3.9.

Bảng 3.9: Bảng kết quả kiểm chứng của 2 thuật toán theo nhóm mẫu 1

Các độ đo đánh giá SVM J48

1/k 1/1

Độ nhạy (%) 95,1 96,7 88,5

Độ đặc hiệu (%) 98,9 96,8 95

Độ chính xác dự đoán (%) 95,3 97 88,5 Thời gian xây dựng mô hình (s) 0,05 0,05 0,03 2) Kết quả thử nghiệm với nhóm mẫu 2 (n = 1200):

Kết quả thử nghiệm đối phương pháp SVM xây dựng mô hình theo chiến lược 1/k trong bảng 3.10.

Bảng 3.10: Kết quả phân lớp phương pháp SVM theo chiến lược 1/k với nhóm mẫu 2

Kết quả thử nghiệm đối phương pháp SVM xây dựng mô hình theo chiến lược 1/k trong bảng 3.11.

46

Bảng 3.11: Kết quả phân lớp phương pháp SVM theo chiến lược 1/1 với nhóm mẫu 2

Kết quả thử nghiệm đối phương pháp cây quyết định bảng 3.12.

Bảng 3.12: Kết quả phân lớp theo j48

Kết quả các độ đo của các thuật toán thử nghiệm trong bước huấn luyện theo kịch bản 1 được tổng hợp trong bảng 3.13.

Bảng 3.13: Bảng kết quả huấn luyện của 2 thuật toán theo nhóm mẫu 2

Các độ đo đánh giá SVM J48

1/k 1/1

47

Độ đặc hiệu (%) 99,5 98,8 97,6

Độ chính xác dự đoán (%) 96,4 96,6 90,6 Thời gian xây dựng mô hình (s) 0,3 0,11 0,06

Kết quả kiểm chứng các mô hình được tổng hợp trong bảng 3.14.

Bảng 3.14: Bảng kết quả kiểm chứng của 2 thuật toán theo nhóm mẫu 2

Các độ đo đánh giá SVM J48

1/k 1/1

Độ nhạy (%) 95,9 96,7 91,8

Độ đặc hiệu (%) 99,9 98,5 98,2 (adsbygoogle = window.adsbygoogle || []).push({});

Độ chính xác dự đoán (%) 96,5 96,9 93 Thời gian xây dựng mô hình (s) 0,06 0,05 0,06 3) Kết quả thử nghiệm với nhóm mẫu 3 (n = 3863)

Kết quả thử nghiệm đối phương pháp SVM xây dựng mô hình theo chiến lược 1/k trong bảng 3.15.

Bảng 3.15: Kết quả phân lớp phương pháp SVM theo chiến lược 1/k với nhóm mẫu 3

Kết quả thử nghiệm đối phương pháp SVM xây dựng mô hình theo chiến lược 1/k trong bảng 3.16.

48

Bảng 3.16: Kết quả phân lớp phương pháp SVM theo chiến lược 1/1 với nhóm mẫu 3

Kết quả thử nghiệm đối phương pháp cây quyết định bảng 3.17.

Bảng 3.17: Kết quả phân lớp theo j48

Kết quả các độ đo của các thuật toán thử nghiệm trong bước huấn luyện theo kịch bản 1 được tổng hợp trong bảng 3.18.

Bảng 3.18: Bảng kết quả huấn luyện của 2 thuật toán theo nhóm mẫu 3

Các độ đo đánh giá SVM J48

1/k 1/1

49

Độ đặc hiệu (%) 98,1 98,6 98,6

Độ chính xác dự đoán (%) 96,7 97,2 94,6 Thời gian xây dựng mô hình (s) 0,67 0,33 0,28

Kết quả kiểm chứng các mô hình được tổng hợp trong bảng 3.19.

Bảng 3.19: Bảng kết quả kiểm chứng của 2 thuật toán theo nhóm mẫu 3

Các độ đo đánh giá SVM J48

1/k 1/1

Độ nhạy (%) 96,4 98 95,7

Độ đặc hiệu (%) 99,3 98,7 98,5

Độ chính xác dự đoán (%) 96,7 98 95,7 Thời gian xây dựng mô hình (s) 0,19 0,13 0,09

3.3.3. Phân tích và đánh giá kết quả thực nghiệm

Dựa vào kết quả thử nghiệm đã trình bày ở trên, trong mục này luận văn sẽ thực hiện phân tích và đánh giá kết quả.

Kết quả độ chính xác của các thuật toán thử nghiệm theo nhóm mẫu 1 trên tập huấn luyện và tập kiểm chứng được biểu diễn dưới dạng biểu đồ như trong hình 3.6.

50 96,4 97,3 94,6 95,3 97 88,5 0 10 20 30 40 50 60 70 80 90 100

Huấn luyện Kiểm chứng

1/k 1/1 j48

Hình 3.6: Biểu đồ so sánh độ chính xác của phân loại thử nghiệm theo 2 thuật toán của nhóm 1

Quan sát biểu đồ trên hình 3.6 nhận thấy rằng, các thuật toán thử nghiệm đều cho kết quả có tỉ lệ phân loại chính xác cao trên tập huấn luyện (từ 94% trở lên). (adsbygoogle = window.adsbygoogle || []).push({});

Trong đó, mô hình SVM theo chiến lược 1/1 có tỉ lệ phân loại chính xác cao nhất (97,3%) và mô hình cây quyết định (j48) có tỉ lệ phân loại chính xác thấp nhất (94,6%).

Tuy nhiên, khi thực hiện kiểm thử tỷ lệ phân loại chính xác bị sụt giảm. Trong đó, mô hình SVM theo chiến lược 1/1 có tỉ lệ phân loại chính xác cao nhất (97%) và mô hình cây quyết định (j48) có tỉ lệ phân loại chính xác thấp nhất (88,5%). Lý do của sự sụt giảm là tập huấn luyện còn nhỏ, cần phải có kích thước lớn hơn để đảm

Một phần của tài liệu (Luận văn thạc sĩ) Nghiên cứu một số thuật toán học máy và ứng dụng trong phân loại bệnh (Trang 45)