Trang 11 5 cứu đăng trên tạp chí Scientific Reports, Madabhushi, Asha Singanamalli đã thử nghiệm thuật toán học máy sử dụng dữ liệu từ 149 bệnh nhân cho phép chẩn đoán sớm bệnh Alzheimer
Trang 1-
CAO VĂN THẮNG
ỨNG DỤNG CÁC KỸ THUẬT HỌC MÁY TRONG CHẨN ĐOÁN BỆNH
LUẬN VĂN THẠC SĨ KỸ THUẬT CÔNG NGHỆ THÔNG TIN
Hà N ộ i – 201 8
Tai ngay!!! Ban co the xoa dong chu nay!!! 17057205253551000000
Trang 2CAO VĂN THẮNG
ỨNG DỤNG CÁC KỸ THUẬT HỌC MÁY TRONG CHẨN ĐOÁN BỆNH
LUẬN VĂN THẠC SĨ KỸ THUẬT CÔNG NGHỆ THÔNG TIN
GIÁO VIÊN HƯỚNG DẪN:
PGS.TS LÊ THANH HƯƠNG
Hà N - ộ i 201 8
Trang 3i
LỜI CAM ĐOAN
Trước tiên, em xin được chân thành gửi lời cảm ơn sâu sắc tới các thầy cô giáo trong Viện Công nghệ Thông tin và Truyền thông, Bộ môn Hệ thống thông tin, Bộ môn Công nghệ phần mềm, Bộ môn Khoa học máy tính đã tận tình giảng dạy, truyền đạt cho em những kiến thức và kinh nghiệm quý báu trong suốt hơn một năm học tại trường Đại học Bách Khoa Hà Nội
Em xin được gửi lời cảm ơn chân thành đến PGS TS Lê Thanh Hương – giảng viên Bộ môn Hệ thống thông tin đã hết lòng giúp đỡ, tạo điều kiện và hướng dẫn tận tình trong quá trình em làm luận văn cao học
Cuối cùng, em xin gửi lời cảm ơn tới gia đình, bạn bè, đồng nghiệp đã quan tâm, động viên, đóng góp ý kiến và giúp đỡ em trong quá trình học tập, nghiên cứu và hoàn thành luận văn tốt nghiệp
Em xin cam đoan luận văn tốt nghiệp với đề tài “ứng dụng các kỹ thuật học máy trong chẩn đoán bệnh” là công trình nghiên cứu của em, không sao chép của bất cứ ai Các luận cứ, số liệu trong luận văn có nguồn gốc rõ ràng và
đã được công bố theo đúng quy định
Các kết quả nghiên cứu trong luận văn do em tự tìm hiểu, phân tích một cách trung thực, khách quan và phù hợp với thực tiễn của Việt Nam Các kết quả này chưa được công bố trong bất kỳ một nghiên cứu nào khác
Em xin chịu mọi trách nhiệm liên quan đến luận văn tốt nghiệp của mình
Trang 4ii
MỤC LỤC
DANH M C CÁC B Ụ ẢNG 1
DANH M C CÁC HÌNH V Ụ Ẽ, ĐỒ TH 2 Ị DANH M C CÁC THU T NG , CH Ụ Ậ Ữ Ữ VIẾ T T ẮT 3
PHẦN M Ở ĐẦ U 4
1/ Lý do chọn đề t ài 4
2/ Tìm hi u m t s h ể ộ ố ệ thống ứng dụ ng h c máy trong chẩn đoán bệnh 6 ọ 3/ Mục đích, đối tượng, phạm vi nghiên c u ứ 7
4/ Phương pháp nghiên cứu 8
5/ Bố ụ c c c a lu ủ ận văn 8
CHƯƠNG I: TỔNG QUAN 9
1/ Tổng quan về machine learning 9
1.1/ Định nghĩa 9
1.2/ Các phương pháp học trong machine learning 10
1.2.1/ H c có giám sát Supervised learning ọ – 10
1.2.2/ H c không giám sát Unsupervised learning ọ – 11
1.2.3/ H c bán giám sát Semi-Supervised learning ọ – 12
1.2.4/ H c c ọ ủng c ố – Reinforcement learning 13
2/ Ứng dụng machine learning trong lĩnh vự c y t 14 ế 2.1/ Các nghiên cứu liên quan 14
Trang 5iii
2.2/ Những thách th c ứ 16
CHƯƠNG II: CHẨN ĐOÁN BỆ NH D A TRÊN H C MÁY Ự Ọ 18
1/ Gi i thi u bài toán ớ ệ 18
2/ Phương pháp học máy áp d ng trong bài toán ụ 20
2.1/ Cây quy ết đị nh – Decision tree 20
2.1.1/ Khái ni m ệ 20
2.1.2/ Xây d ng cây quy ự ết định 21
2.1.3/ Cách phân chia m u ẫ 22
2.1.4/ Vấn đề quá phù h p v ợ ới dữ ệ li u (overfitting) 27
2.1.5/ Ưu điể m c a cây quy ủ ết định 29
2.2/ Giải thuật r ng ng u nhiên ừ ẫ 29
2.2.1/ Lịch s nghiên c u ử ứ 29
2.2.2/ Bootstrap và Bagging 30
2.2.3/ Out of bag 32
2.2.4/ Rừng ngẫu nhiên hoạt động như thế nào? 32
2.3/ Phương pháp máy vector hỗ ợ tr - Support Vector Machine 35
3/ M t s thông tin v ba lo ộ ố ề ại bệnh đượ ử ụ c s d ng trong bài toán 36
3.1/ Bệnh đái tháo đường 36
3.2/ Bệnh tăng huyết áp 37
3.3/ B nh hen ph ệ ế quản 41
CHƯƠNG III: CÀI ĐẶT TH NGHI Ử ỆM VÀ ĐÁNH GIÁ 43
Trang 6iv
1/ Cài đặt th nghi m ử ệ 43
1.1/ Ti n x ề ử lý dữ ệ li u 43
1.2/ Trích chọn đặc trưng 43
1.3/ Hu n luy n ấ ệ 46
1.3.1/ Phân chia dữ u liệ 46
1.3.2/ Huấn luyện mô hình 47
1.4/ Ki m th và k ể ử ết qu ả 49
1.5/ Ki m th v i mô hình phân l p SVM ể ử ớ ớ 55
2/ Nh n xét ậ 56
CHƯƠNG IV: KẾ T LU N Ậ 58
1/ Đánh giá 58
2/ Hướng phát tri n ể 59
TÀI LI U THAM KH O Ệ Ả 60
Trang 71
DANH MỤC CÁC BẢNG
Bảng 1: Độ chính xác c a thu t toán Boosting trên các t p d ủ ậ ậ ữ ệ li u 16
Bảng 2: Ví dụ về ữ ệ d li u phân l p ớ 24
Bảng 3: B ng t ng h ả ổ ợp thu c tính Age ộ 25
Bảng 4: Ngưỡng chẩn đoán tăng huyết áp 38
Bảng 5: Phân độ tăng huyế t áp 38
Bảng 6: Phương pháp điề u tr dựa trên nguy cơ phân tầng 41 ị Bảng 7: Kết qu ả chạy giải thuật phân l p r ng ng u nhiên ớ ừ ẫ 48
Bảng 8: Kết qu ả chạy giải thuật phân l p SVM ớ 56
Trang 82
DANH MỤC CÁC HÌNH VẼ, ĐỒ THỊ
Hình 1: H h ệ ỗ trợ chẩn đoán 6
Hình 2: Ví d v ụ ề phân c m ụ 12
Hình 3: H c bán giám sát (Semi - Suppervised learning) ọ 13
Hình 4: AlphaGo chi n th ng c ế ắ ờ thủ ố s 1 th ế ớ gi i 14
Hình 5: Ví d v ụ ề cây quyết định 21
Hình 6: Chia dữ u theo thu c tính Age liệ ộ 26
Hình 7: Cây quy ết đị nh theo thu ộc tính Age 27
Hình 8: Mô hình Bagging 31
Hình 9: B ng d ả ữ liệu ban đầu 46
Hình 10: Confusion matrix without normalization 50
Hình 11: Normalized confusion matrix 50
Hình 12: Mô hình SVM (ti n x lý d ề ử ữ ệ li u) 55
Trang 93
DANH MỤC CÁC THUẬT NGỮ, CHỮ VIẾT TẮT
Trang 10- Trong những năm gần đây, việc ứng dụng công nghệ thông tin trong hầu hết các lĩnh vực đều được được quan tâm và đầu tư mang lại hiệu quả rõ rệt, lĩnh vực y tế nhờ đó cũng có nhiều chuyển biến tích cực trong công tác điều hành, quản lý, chẩn đoán Nhờ vào ứng dụng công nghệ thông tin mà trình độ chuyên môn của bác sĩ, y tá được nâng cao; các phương tiện chẩn đoán và điều trị được
tự động hóa; công tác đào tạo, thực hành y khoa cũng được cải tiến; đặc biệt công tác hành chính, quản lý bệnh viên có những thay đổi tích cực đem lại sự thoải mái cho bệnh nhân Đây là những tiền đề để ứng dụng các thành tựu của công nghệ thông tin mạnh mẽ và hiệu quả hơn nữa
- Trên thế giới, lĩnh vực y tế đã đạt được những thành tựu đột phá nhờ ứng dụng công nghệ thông tin, đặc biệt là ứng dụng trí tuệ nhân tạo, học máy trong chẩn đoán và điều trị Có thể kể ra một số ví dụ điển hình như: Các nhà khoa học máy tính tại Stanford đó tạo ra một thuật toán dựa trên trí thông minh nhân tạo để chẩn đoán bệnh ung thư da qua một chiếc máy soi da; Trong một nghiên
Trang 115
cứu đăng trên tạp chí Scientific Reports, Madabhushi, Asha Singanamalli đã thử nghiệm thuật toán học máy sử dụng dữ liệu từ 149 bệnh nhân cho phép chẩn đoán sớm bệnh Alzheimer trước khi các triệu chứng bắt đầu can thiệp vào cuộc sống hàng ngày của bệnh nhân (theo https://www.sciencedaily.com); sức mạnh
công nghệ cùng với trí tuệ nhân tạo đã mang lại những bước tiến mới trong chẩn đoán và điều trị từ xa: Cuối tháng 4-2016, bác sĩ phụ khoa Tây Ban Nha Richard Farnam, giám đốc Khoa phẫu thuật robot, Trung tâm y tế Las Palmas, Mỹ, tiến hành ca phẫu thuật từ xa cắt bỏ dạ con Trong ca phẫu thuật này, bác sĩ Farman
và các cộng sự giới thiệu bàn chuyển động bên trong cho phép cánh tay robot và bàn phẫu thuật chuyển động đồng thời Ca mổ được truyền hình trực tiếp cho hơn 200 bác sĩ của Hội nghị phẫu thuật cắt bỏ dạ con toàn cầu 2016 tổ chức tại San Diego và 7.000 bác sĩ thuộc Hiệp hội phẫu thuật nội soi phụ khoa Mỹ theo
dõi (theo internet)
- Mới đây, ngày 23/9/2017, tại Hà Nội, Cục Công nghệ thông tin – Bộ Y
tế đã phối hợp với Tập đoàn IBM, công ty Five9 Việt Nam vừa tổ chức hội thảo
“ứng dụng trí tuệ nhân tạo trong khám, chữa bệnh” Theo các chuyên gia, việc phát triển trí tuệ nhân tạo, đặc biệt là trong các ứng dụng của ngành y tế, là việc không thể chần chừ, và đó là xu thế tất yếu của thời đại và nó có thể hỗ trợ rất nhiều trong công tác chẩn đoán điều trị Bộ Y tế đã báo cáo và Chính phủ đã chỉ đạo, kể từ ngày 1/1/2018, tất cả các bệnh viện sẽ triển khai bệnh án điện tử, nhằm đồng bộ hoá nguồn dữ liệu, tạo tiền đề cho các ứng dụng công nghệ thông
tin khác (theo http://baocongthuong.com.vn)
- Trong bối cảnh đó, tác giả quyết định chọn đề tài: “ứng dụng các kỹ thuật học máy trong chẩn đoán bệnh” với mong muốn hỗ trợ bác sĩ trong việc
Trang 126
chẩn đoán các bệnh Đái tháo đường, Tăng huyết áp và Hen phế quản dựa trên tiền sử bệnh và một số xét nghiệm đơn giản, không tốn kém
2/ Tìm hiểu một số hệ thống ứng dụng học máy trong chẩn đoán bệnh
- Đầu tiên phải kể đến máy tính hỗ trợ chẩn đoán Chẩn đoán là một nghệ thuật nhằm xác định được một bệnh dựa trên các dấu hiệu và triệu trứng [16] Điều đó mang tính chủ quan và phụ thuộc nhiều vào kinh nghiệm của người quan sát và thời gian nghiên cứu Nguyên tắc của máy tính hỗ trợ chẩn đoán là hỗ trợ các chuyên gia y tế, được huấn luyện bằng kinh nghiệm của nhiều chuyên gia, hệ thống chẩn đoán dựa trên nền tảng học máy cho phép cải thiện tính khách quan và do đó tăng độ tin cậy của chẩn đoán
Hình 1: Hệ ỗ h trợ chẩn đoán
Hệ thống học bao gồm hai giai đoạn: (1) phát hiện các bất thường sau đó gán
nhãn cho chúng, và (2) phân loại thành lành tính hoặc ác tính [16]
- Với sự phát triển của khoa học công nghệ, ngày càng có nhiều quốc gia nghiên cứu và thử nghiệm các hệ thống ứng dụng trí thông minh nhân tạo trong chẩn đoán và điều trị bệnh Mới đây, tại Hội thảo chuyên ngành y tế được tổ chức tại thành phố Hoàng Dương, Hồ Nam, Trung Quốc, phần mềm trí thông
Trang 137
minh nhân tạo (AI) được lập trình để trở thành một bác sĩ đa khoa có khả năng học hỏi liên tục các kiến thức, kinh nghiệm và quy trình chẩn đoán Phần mềm này có cơ sở dữ liệu bao gồm hàng trục triệu bệnh án, trong một đến hai tuần, phần mềm có khả năng học hỏi kiến thức và kinh nghiệm chẩn đoán của một căn bệnh mới Sau khi lắng nghe những triệu chứng của bệnh nhân, phần mềm sẽ gợi
ý các mục xét nghiệm và lời khuyên dựa trên kết quả xét nghiệm, và cuối cùng bác sĩ sẽ vẫn là người quyết định liệu pháp điều trị Còn tại Mỹ, phần mềm Human Dx được phát triển trên nền tảng trí tuệ nhân tạo sử dụng học máy để phân tích dữ liệu bệnh nhân và đưa ra một danh sách các chẩn đoán Phần mềm
sẽ giúp các bác sĩ có thể tư vấn từ xa và cùng nhau phối hợp trong chẩn đoán bệnh, nhiều tổ chức y tế hàng đầu của các quốc gia đã tin tưởng, ủng hộ và sẵn sàng đưa phần mềm vào thử nghiệm như: Hiệp hội y khoa Hoa Kỳ, Hiệp hội cáctrường cao đẳng y tế Hoa Kỳ
3/ Mục đích, đối tượng, phạm vi nghiên cứu
- Đối tượng nghiên cứu:
o Học máy, các phương pháp học có giám sát
o Kỹ thuật phân lớp
- Phạm vi nghiên cứu:
o Cây quyết định
Trang 148
o Rừng ngẫu nhiên (Random forest)
o Máy vector hỗ trợ (Support Vector Machine)
o Dữ liệu nghiên cứu: được thu thập tại các bệnh viện và trung tâm
y tế của Tây Bắc bao gồm hơn 700 bệnh án của ba bệnh: bệnh Đái tháo đường (ĐTĐ), bệnh Tăng huyết áp (THA) và bệnh Hen phế quản (HPQ)
4/ Phương pháp nghiên cứu
- Nghiên cứu lý thuyết: Nghiên cứu các tài liệu liên quan đến học máy, học có giám sát, phân lớp dữ liệu, cây quyết định, rừng ngẫu nhiên, máy vector
hỗ trợ; tìm hiểu về nguyên nhân, triệu chứng, quy trình chẩn đoán một số bệnh; nghiên cứu và thiết kế mô hình phân lớp với Random forest
- Nghiên cứu thực nghiệm: Thực thi kỹ thuật phân lớp Random forest (RF) trên dữ liệu bệnh án của ba bệnh trên nhằm chẩn đoán các bệnh đó Song song với kỹ thuật phân lớp Random forest, với chính bộ dữ liệu trên, luận văn còn thử nghiệm kỹ thuật SVM (Support Vector Machine) và so sánh kết quả của hai kỹ thuật này
5/ Bố cục của luận văn
Nội dung chính của luận văn được chia thành 4 chương:
- Chương I: Trình bày tổng quan cơ sở lý thuyết về học máy và việc ứng dụng học máy trong chẩn đoán bệnh
- Chương II: Mô tả bài toán và trình bày phương pháp giải quyết bài toán
- Chương III: Cài đặt thử nghiệm và đánh giá
- Chương IV: Kết luận và hướng phát triển
Trang 15mà lại có sự ảnh hưởng lớn như vậy? Trước tiên, hãy xem mối quan hệ của nó với Trí tuệ nhân tạo (AI), Big Data và Dự đoán tương lai.
o Trí tuệ nhân tạo (AI) đang khiến cả thế giới phải phát sốt với những sản phẩm công nghệ được dán nhãn AI, từ những chiếc điện thoại thông minh đến những chiếc ô tô hay những Robot đều được trang
bị công nghệ AI AI – theo giới hàn lâm là một ngành khoa học được sinh ra với mục đích làm cho máy tính có được trí thông minh,
tư duy và cảm xúc như con người Rõ ràng AI thể hiện mục tiêu của con người, machine learning là một công cụ nhằm giúp con người đạt được mục tiêu đó Đến đây bạn đã hình dung ra được machine learning là gì Tiếp theo, chúng ta hãy xem nó với Big Data [19]
o Big Data là một cụm từ dùng để chỉ thời kỳ bùng nổ dữ liệu hiện nay, đây là hệ quả tất yếu của mạng internet ngày càng được mở rộng Với sự ra đời của các mạng xã hội như Facebook, Instagram,
Trang 1610
Twitter, Youtube, nhu cầu chia sẻ thông tin của con người tăng lên một cách chóng mặt Big Data chỉ thực sự bắt đầu được quan tâm khi chúng ta hiểu được giá trị của thông tin ẩn chứa trong đó và có
đủ tài nguyên cũng như công nghệ để có thể khai thác chúng trên quy mô toàn cầu, và machine learning chính là thành phần mấu chốt của công nghệ đó [19]
o Machine learning có mối quan hệ mật thiết với thống kê, nó sử dụng các mô hình thống kê để ghi nhớ lại sự phân bố của dữ liệu, đồng thời còn phải có khả năng khái quát hoá những gì đã nhìn thấy và đưa ra dự đoán cho những trường hợp chưa được nhìn thấy [19]
- Machine learning là một lĩnh vực của trí tuệ nhân tạo liên quan đến việc nghiên cứu và xây dựng các kĩ thuật cho phép các hệ thống "học" tự động từ dữ liệu để giải quyết những vấn đề cụ thể (theo wikipedia)
1.2/ Các phương pháp học trong machine learning
Các thuật toán dựa trên phương pháp học trong machine learning bao gồm: Học có giám sát (Supervised learning), học không giám sát (Unsupervised learning), học bán giám sát (Semi-Supervised learning) và học củng cố
1.2.1/ Học có giám sát – Supervised learning
- Ý tưởng chính của Supervised learning là ghi nhớ và tổng quát hoá một số quy tắc từ các quan sát được gán nhãn, máy tính có thể tự gán nhãn cho các quan sát mới Diễn tả theo toán học tức là khi chúng ta có một tập hợp biến đầu vào X = {x1, x2, , xN} và một tập hợp nhãn tương ứng Y = {y1, y2, yN} Các tập dữ liệu này gọi là dữ liệu huấn luyện, từ tập dữ liệu
Trang 17- Có hai bài toán chính trong học có giám sát là phân lớp (Classification) và hồi quy (Regression)
1.2.2/ Học không giám sát – Unsupervised learning
- Thuật toán này chỉ có dữ liệu đầu vào mà không biết được dữ liệu đầu ra (hay label), tức là chúng ta chỉ có dữ liệu vào X mà không biết label Y tương ứng
- Các bài toán học không giám sát bao gồm:
o Clustering - Bài toán phân nhóm: toàn bộ dữ liệu đầu vào X được phân thành các nhóm nhỏ dựa trên sự liên quan giữa các dữ liệu trong mỗi nhóm Ví dụ: phân nhóm khách hàng dựa trên hành vi mua hàng; phân nhóm thu nhập dựa trên mức thu nhập của mỗi người
Trang 1812
Hình 2: Ví d v phân c mụ ề ụ
o Association: là bài toán khi chúng ta muốn tìm ra một quy luật dựa trên các dữ liệu đầu vào cho trước (dữ liệu này phải đủ lớn) Ví dụ: các khách hàng nam mua quần áo thường có xu hướng mua thêm thắt lưng hoặc ví da, những khán giả đã xem phim Spider Man thường có xu hướng xem thêm phim Iron Man chúng ta dựa vào những quy luật đó để tạo ra một hệ thống gợi ý (Recommendation System) phục vụ nhu cầu của khách hàng
1.2.3/ Học bán giám sát – Semi-Supervised learning
- Học bán giám sát tức là khi chúng ta có một lượng lớn dữ liệu nhưng chỉ một phần trong số đó được gán nhãn (label) Thực tế có rất nhiều bài toán trong machine learning sử dụng phương pháp học này vì việc thu thập dữ liệu có gán nhãn tốn rất nhiều thời gian và chi phí, nhiều loại dữ liệu cần phải có chuyên gia mới có thể gán nhãn được (điển hình là các hình ảnh trong y tế)
Trang 2014
Hình 4: AlphaGo chiến th ng c ắ ờthủ s 1 th gi i ố ế ớ
2/ Ứng dụng machine learning trong lĩnh vực y tế
2.1/ Các nghiên cứu liên quan
Amit Kumar Dewangan (2015) đã đề xuất một phương pháp phân lớp bệnh đái tháo đường sử dụng các kỹ thuật học máy, đó là kết hợp kỹ thuật khai phá dữ liệu Multi layer Perceptron và kỹ thuật phân lớp Bayesian Net Bộ dữ liệu sử dụng là Pima Indian Diabetes Data set có 8 thuộc tính và 768 mẫu thử nghiệm Phương pháp này cho kết quả khá tốt với độ chính xác (Accuracy) đạt tỷ
Trang 21và nữ trên toàn cầu Thuật toán adaBoost xây dựng các bộ phân lớp yếu và trong quá trình huấn luyện thuật toán sẽ cập nhật lại trọng số để chuẩn bị cho việc xây dựng các bộ phân lớp yếu tiếp theo và kết hợp các bộ phân lớp yếu này để tạo ra một bộ phân lớp mạnh [12]
Nghiên cứu được thực nghiệm trên bốn tập dữ liệu Cleveland Clinic Foundation (CCF), Hungarian Institute of Cardiology (HIC), Long Beach Medical Center (LBMC) và University Hospital in Switzerland (SUH) và cho kết quả dự đoán rất cao trên tập dữ liệu huấn luyện và tập dữ liệu kiểm thử, cụ thể:
Training data set Testing data set
Trang 2216
Training data set Testing data set
Bả ng 1: Độ chính xác c a thu t toán Boosting trên các t p d u [12] ủ ậ ậ ữliệ
Đỗ Thanh Nghị và cộng sự (2015) đề xuất giải pháp nâng cao hiệu quả phân lớp của rừng ngẫu nhiên bằng cách thay thế luật bình chọn số đông ở nút lá của cây quyết định bằng luật gán nhãn cục bộ, k láng giềng Nhóm nghiên cứu thực hiện thực nghiệm mô hình trên 10 tập dữ liệu gen với số chiều của mỗi tập dữ liệu là rất lớn và so sánh với mô hình rừng ngẫu nhiên truyền thống và mô hình máy học vector (Support Vector Machine) [15]
Kết quả của mô hình mới cho độ chính xác tốt nhất so với hai mô hình truyền thống trên cả 10 tập dữ liệu (1: 100%; 2: 100%; 3: 75%; 4: 100%; 5: 100%; 6: 91.67%; 7: 95.24%; 8: 100%; 9: 100%; 10: 100%) [15]
2.2/ Những thách thức
- Học máy (Machine learning) được tìm thấy trong các ứng dụng của nhiều lĩnh vực khác nhau như: di truyền học, xử lý ngôn ngữ tự nhiên, bộ máy tìm kiếm, thị giác máy tính, tính toán tài chính và phân tích thị trường chứng khoán Trong lĩnh vực y tế, việc ứng dụng học máy còn khá mới mẻ, tuy nhiên, xu hướng này ngày càng gia tăng và có nhiều công trình nghiên cứu ứng dụng họcmáy được công bố mỗi năm Sự chậm trễ này cũng dễ hiểu bởi vì có khá nhiều thách thức khi ứng dụng học máy để giải quyết các vấn đề trong y tế, có thể thấy:
Trang 23o Thứ hai: Đối tượng được quan tâm là bệnh nhân – con người, vậy nên các rủi ro phải được giảm thiểu ở mức tối đa và các phương pháp thực sự được chuyển thành các quy trình lâm sàng cần phải được hiểu
rõ và có độ tin cậy cao [16]
o Thứ ba: Dữ liệu được huấn luyện phải đủ lớn để tránh xảy ra tình trạng Overfitting (tức là quá phù hợp với dữ liệu – khi huấn luyện thì cho độ chính xác cao nhưng khi chạy thực tế thì ngược lại) và có đủ khả năng để khái quát hoá
o Thứ tư: Hầu hết các nhiệm vụ trong học máy đều phải được giám sát,
d u cữ liệ ần được x lý một cách thủ công (đây là một công việc khá ử
tẻ nhạt, yêu cầu sự kiên trì và tập trung cao) đòi hỏi phải có một đội ngũ chuyên gia y tế giám sát và mất rất nhiều thời gian
Trang 2418
CHƯƠNG II: CHẨN ĐOÁN BỆNH DỰA TRÊN HỌC MÁY
1/ Giới thiệu bài toán
- Trong một chuyến công tác cùng đồng nghiệp tại mộ ố ệt s b nh viện và trạm y tế Tây Bở ắc, tác giả mới thực s thấy đượự c s thiếu thốự n v đội ngũ y ềbác sĩ cũng như trang thiết bị y tế tại đây, có những bệnh nhân đến khám trong tình trạng bệnh đã nặng và phải được chuyển ngay lên bệnh viện tuyến trên Có thể do thói quen sinh ho t c ng vạ ộ ới sự thiếu hiểu biết nên bà con nơi đây thường mắc phải mộ ố ệnh như: Đái tháo đường, Tăng huyết s b t áp, Hen phế quản và Lao phổi Ý tưởng về việc xây dựng một hệ thống chẩn đoán bệnh nhằm hỗ ợ tr cho các y bác sĩ và bệnh nhân được hình thành t ừ đây
- Trong khuôn kh cổ ủa luận văn, tác giả ứ ng dụng phương pháp phân lớp rừng ngẫu nhiên (Random Forest) và máy vector hỗ ợ tr (Support Vector Machine) để chẩn đoán ba ạlo i bệnh: Đái tháo đường, Tăng huyết áp và Hen phế quản dựa vào mộ ố đặc trưng củt s a ba b nh này Khi nhệ ập vào các thông tin của
b nh nhân, ệ chương trình ẽ s thông báo bệnh nhân bị bệnh gì Đối với b nh nhâệ n được chẩn đoán là Tăng huyết áp, chương trình sẽ phân loại theo cấp độ ặng/ nnhẹ (THA độ I, THA độ II, THA độ III) dựa trên hai ch s ỉ ố huyết áp tâm thu và huyết áp tâm trương của người bệnh
- T p dậ ữ liệu sử dụng trong bài toán là hơn 700 bản ghi (tương ứng với hơn 700 ệb nh án) của ba loại bệnh được thu thậ ừp t mộ ố ệt s b nh viện của tỉnh Sơn La: Đái tháo đường (gồm 151 trường thông tin), tăng huyết áp (77 trường thông tin), và hen phế quản (32 trường thông tin)
Trang 2519
Ứng dụng học máy để giải quyết bài toán trên:
Cho một tập gồm n bệnh án đầu vào (input) kí hiệu: D={d 1,d2, ,dn}, trong quá trình học, kỹ thuật phân lớp rừng ngẫu nhiên sẽ phân các bệnh án trên vào một tập gồm m lớp (cụ thể m = 5), kí hiệu là: C= {c1,c2, ,cm} Kết thúc quá trình học sẽ được một mô hình (model), sử dụng mô hình này để chẩn đoán cho những bệnh án (bệnh nhân) mới Sau đó, dữ liệu được chạy vớimô hình phân lớp máy vector hỗ trợ nhằm sánh chính xác so độ so với mô hình phân lớp rừngngẫu nhiên
Quy trình thực hiện
Cũng giống như các bài toán học máy khác, bài toán phân loại bệnh cũng bao gồm hai bước chính đó là Học (learning) và Dự đoán kết quả (Prediction) Bước học (learning): sử dụng các kĩ thuật học máy để tìm ra được một mô hình (model) hợp lý nhất cho bài toán, nó bao gồm các bước như sau:
• Tiền xử lý dữ liệu (Cleaning data): làm sạch dữ liệu trước khi bắt đầu bất kì xử lý nào trên tập dữ liệu
• Trích chọn đặc trưng (Feature Extraction): lựa chọn các đặc trưng tiêu biểu có tính đại diện cho tập dữ liệu để làm input cho thuật toán phân lớp
• Huấn luyện (Training): sử dụng các thuật toán học máy để tìm ra mô hình tốt nhất nhằm sử dụng trong bước tiếp theo, việc huấn luyện được thực hiện trên cả tập dữ liệu (dataset) và mô hình (model)
Bước dự đoán (Prediction): đem mô hình thu được sau khi học (learning) đi vào thực tế để xem nó có thực sự đủ tốt hay không, việc huấn luyện lại mô hình
Trang 2620
là không cần thiết mà sử dụng trực tiếp mô hình có sẵn để dự đoán đầu
ra (output)
2/ Phương pháp học máy áp dụng trong bài toán
- Luận văn ử ụ s d ng phương pháp phân lớp r ng ngẫu nhiên (Random ừForest) cho bài toán phân lo i bạ ệnh Giải thuật rừng ngẫu nhiên cho độ chính xác cao so với các giải thuật phân lớp tốt nhất hiện nay bao gồm Boosting và SVM (Support Vector Machine), cộng với thời gian huấn luyện mô hình nhanh, khảnăng chịu nhiễu tốt và không bị “học vẹt” Thêm vào đó, luận văn còn sử dụng phương pháp máy vector hỗ trợ nhằm kiểm chứng lại kết quả và đối chiếu độ chính xác so với mô hình rừng ngẫu nhiên
- Thành phần chính tạo nên rừng ngẫu nhiên chính là cây quyết định, luận văn xin trình bày một số kiến thức cơ bản về cây quyết định làm nền tảng để tìm hiểu về rừng ngẫu nhiên
2.1/ Cây quyết định – Decision tree
2.1.1/ Khái niệm
- Trong học máy có nhiều mô hình phân lớp đã được các nhà khoa học đề xuất như giải thuật di truyền, mạng noron, thống kê tuyến tính, cây quyết định Trong đó, cây quyết định được sử dụng phổ biến và rất thích hợp cho khai phá
dữ liệu (data mining) nói chung và phân lớp dữ liệu nói riêng bởi đây là một công cụ mạnh và thường cho kết quả chính xác cao hơn so với các phương pháp khác
- Cây quyết định là một cấu trúc phân cấp của các nút và các nhánh, có 3 loại nút:
o Nút gốc
Trang 2721
o Nút nội bộ: mang tên thuộc tính của CSDL
o Nút lá: mang tên lớp
o Nhánh: mang giá trị của thuộc tính
- Ví dụ: Để xác định một người là CAO hay THẤP, người ta bắt đầu từ GIỚI TÍNH của họ
o Nếu giới tính là NỮ và chiều cao nhỏ hơn 1.3m thì được coi là thấp, ngược lại chiều cao từ 1.3m dưới 1.6m thì được coi là trung bình, - còn lại được coi là cao
o Nếu giới tính là NAM và chiều cao nhỏ hơn 1.5m thì được coi là thấp, ngược lại chiều cao từ 1.5m dưới 1.8m thì được coi là trung - bình, còn lại được coi là cao
Sơ đồ bên dưới là một dạng cây quyết định
2.1.2/ Xây dựng cây quyết định
Gend
<1.3 >1.6shor Mediu Tall
<1.5 >1.8shor Mediu Tall
Nút
Nút nội b ộ
Nút lá
Hình 5: Ví d v cây quyụ ề ết định
Trang 2822
Quá trình xây dựng cây quyết định gồm hai giai đoạn:
Giai đoạn 1: Phát triển cây quyết định bằng phương pháp đệ quy:
- Xác định nút gốc
- Kiểm tra giá trị thuộc tính
- Xác định thuộc tính cho tiêu chuẩn tốt nhất (có độ đo tốt nhất) được dùng
để phân chia các mẫu (đệ quy)
- Lặp lại cho đến khi gặp điều kiện dừng
Giai đoạn 2: Cắt tỉa bớt các cành nhánh trên cây quyết định nhằm loại bỏ các nhánh không ổn định hoặc các nhánh cá biệt, tăng độ tập trung của cây, nâng cao
độ chính xác
Thuật toán xây d ng cây quyự ết định
- Ý tưởng chung của thuật toán như sau:
1 Ở nút hiện tại, nếu tất cả các đối tượng huấn luyện đều thuộc vào một lớp nào đó thì đó chính là nút lá có tên là nhãn lớp chung của các đối tượng Ngược lại, sử dụng một độ đo, chọn thuộc tính phân chia tốt nhất tập mẫu huấn luyện có tại nút
2 Tạo các nút con của nút hiện tại bằng số các giá trị khác nhau của thuộc tính được chọn, gán cho mỗi nhánh từ nút cha đến nút con một giá trị của thuộc tính rồi phân chia các đối tượng huấn luyện vào các nút con tương ứng
3 Nút con M được gọi là thuần nhất và trở thành nút lá nếu tất cả các mẫu tại đó đều thuộc vào cùng một lớp
4 Lặp lại các bước 1 - 2 đối với mỗi nút con chưa thuần nhất
2.1.3/ Cách phân chia mẫu
Trang 29o Entropy (Information Gain): độ lợi thông tin (chọn thuộc tính có
độ lợi thông tin cao nhất), được sử dụng trong thuật toán ID3, C4.5Giả sử:
D: tập huấn luyện Ci,D: tập các mẫu của D thuộc lớp Ci với i = {1, …,m}
|Ci,D |, |D|: số lượng của tập Ci,D và D tương ứng
Pi là xác suất để một mẫu bất kì của D thuộc về lớp C i Thông tin kì vọng để phân lớp một mẫu trong D là:
Thông tin cần thiết để phân chia D theo thuộc tính A:
Trang 3024
Độ lợi thông tin (information gain) d a trên phân chia theo ựthu c tính A: ộ
Gain(A) = Info(D) - InfoA(D)
Ví dụ: cho bảng dữ liệu bên dưới (được lấy từ bài giảng về khai phá
dữ liệu – tham khảo trên internet)
Age Income Student Credit_rating Buy_computer
Bảng 2: Ví d v d ụ ề ữliệ u phân l p ớ
Trang 31* Tính độ l i thông tin dợ ựa trên phân chia theo thu c tính Age: ộ
- Ký hiệu: lớp P: buy_computer = “Yes”;
Infoage(D) =
Trang 32Độ lợi thông tin dựa trên phân chia theo thuộc tính “age” là lớn nhất nên ta sẽ chia dữ liệu theo thuộc tính “age”, thu được cây như sau:
Thực hiện lại tuần tự các bước đối với bảng (1) và bảng (2) (tính info(D) cho bảng mới, đối với từng bảng lại xác định độ lợi thông tin cho từng thuộc tính), cuối cùng ta thu được cây như sau:
Age
31 4
Thỏa mãn
Trang 3327
Nhược điểm: có xu hướng thiên vị cho các thuộc tính có nhiều giá trị
Information Gain Ratio: tỉ lệ độ lợi thông tin (chọn thuộc tính có
độ đo Gain Ratio lớn nhất), được sử dụng trong thuật toán C4.5 Gini Index - chỉ mục Gini:
Dùng để phân chia tập D thành v tập con {D1, D2, Dv} theo thuộc tính A {a1, a2, av}
Khi phân chia dữ liệu, chọn thuộc tính có chỉ mục Gini nhỏ nhất
2.1.4/ Vấn đề quá phù hợp với dữ liệu (overfitting)
Trang 3428
- Đối với các cây có số nút lớn thì tỉ lệ lỗi đối với tập huấn luyện giảm, độ chính xác tăng, nhưng trên tập dữ liệu kiểm tra thì tỷ lệ lỗi lại tăng lên
- Đối với các nút có nhiều nhánh thì sẽ nâng độ chính xác của tập
dữ liệu huấn luyện (quá phù hợp với tập dữ liệu huấn luyện) nhưng khi áp dụng đối với tập dữ liệu kiểm tra thì lại làm tăng tỷ lệ lỗi, vấn đề này gọi
là overfitting
- Nguyên nhân:
o Cây có quá nhiều nhánh (có thể do nhiễu hoặc do cá biệt)
o Do thiếu mẫu
o Độ chính xác kém khi phân lớp các mẫu mới
- Khắc phục: có hai phương pháp khắc phục vấn đề quá phù hợp với
dữ liệu:
o Loại bỏ trước: xác định ngưỡng của độ đo nào đó (IG, Gini…), khi nó đạt được mức sấp sỉ ngưỡng thì dừng ngay việc thêm nhánh mới
Nhược điểm: khó chọn ngưỡng thích hợp tuy chi phí thấp
o Loại bỏ sau: xây dựng cây hoàn chỉnh, sau đó mới cắt tỉa cây bằng cách sử dụng tập dữ liệu độc lập để kiểm tra và loại bớt nhánh
Nhược điểm: chi phí cao nhưng lại cho độ chính xác cao hơn nên hay được sử dụng
- Cách xác định chính xác kích thước cây kết quả:
o Phân chia: tập dữ liệu huấn luyện (2/3), tập kiểm tra (1/3)