Khai phá dữ liệu hồ sơ bệnh nhân ứng dụng hỗ trợ chẩn đoán bệnh tại bệnh viện Đa khoa Y học cổ truyền Tuệ Tĩnh (tt)Khai phá dữ liệu hồ sơ bệnh nhân ứng dụng hỗ trợ chẩn đoán bệnh tại bệnh viện Đa khoa Y học cổ truyền Tuệ Tĩnh (tt)Khai phá dữ liệu hồ sơ bệnh nhân ứng dụng hỗ trợ chẩn đoán bệnh tại bệnh viện Đa khoa Y học cổ truyền Tuệ Tĩnh (tt)Khai phá dữ liệu hồ sơ bệnh nhân ứng dụng hỗ trợ chẩn đoán bệnh tại bệnh viện Đa khoa Y học cổ truyền Tuệ Tĩnh (tt)Khai phá dữ liệu hồ sơ bệnh nhân ứng dụng hỗ trợ chẩn đoán bệnh tại bệnh viện Đa khoa Y học cổ truyền Tuệ Tĩnh (tt)Khai phá dữ liệu hồ sơ bệnh nhân ứng dụng hỗ trợ chẩn đoán bệnh tại bệnh viện Đa khoa Y học cổ truyền Tuệ Tĩnh (tt)Khai phá dữ liệu hồ sơ bệnh nhân ứng dụng hỗ trợ chẩn đoán bệnh tại bệnh viện Đa khoa Y học cổ truyền Tuệ Tĩnh (tt)Khai phá dữ liệu hồ sơ bệnh nhân ứng dụng hỗ trợ chẩn đoán bệnh tại bệnh viện Đa khoa Y học cổ truyền Tuệ Tĩnh (tt)Khai phá dữ liệu hồ sơ bệnh nhân ứng dụng hỗ trợ chẩn đoán bệnh tại bệnh viện Đa khoa Y học cổ truyền Tuệ Tĩnh (tt)Khai phá dữ liệu hồ sơ bệnh nhân ứng dụng hỗ trợ chẩn đoán bệnh tại bệnh viện Đa khoa Y học cổ truyền Tuệ Tĩnh (tt)Khai phá dữ liệu hồ sơ bệnh nhân ứng dụng hỗ trợ chẩn đoán bệnh tại bệnh viện Đa khoa Y học cổ truyền Tuệ Tĩnh (tt)Khai phá dữ liệu hồ sơ bệnh nhân ứng dụng hỗ trợ chẩn đoán bệnh tại bệnh viện Đa khoa Y học cổ truyền Tuệ Tĩnh (tt)
Trang 2DANH MỤC HÌNH VẼ
Hình 1.1: Các bước trong Data Mining & KĐ [3] 6
Hình 2.1: Biểu diễn cây quyết định cơ bản 22
Hình 3.1: Giao diện chính của hệ thống chương trình 22
Hình 3.2: Lấy dữ liệu đã được xử lý 23
Hình 3.3: Hiển thị dữ liệu chạy chương trình 24
Hình 3.4: Kết quả thử nghiệm với các bệnh án huyết áp cao 27
Trang 3DANH MỤC BẢNG BIỂU
Bảng 1: Phân độ THA theo Hội THA Việt Nam (2008) [8] 11 Bảng 2: Phân tầng nguy cơ tăng huyết áp 17 Bảng 3: Tệp dữ liệu đầu vào 21
Bảng 4: Kết quả chẩn đoán huyết áp cao Error! Bookmark not defined
Trang 4LỜI MỞ ĐẦU
Tăng huyết áp ngày nay vẫn đang là vấn đề thời sự vì sự gia tăng nhanh chóng trong cộng đồng Tỷ lệ tăng huyết áp rất khác nhau Ở những nghiên cứu trên những bệnh nhân cao tuổi thì tỷ lề tăng huyết áp cao hơn rất nhiều so với những nhóm khác Theo ước tính của các nhà khoa học Mỹ tỷ lệ tăng huyết áp trên thế giới năm
2000 là 26,4% (tương đương 972 triệu người, riêng các nước đang phát triển chiếm
639 triệu) và sẽ tăng lên 29,2% vào năm 2025 với tổng số người mắc bệnh tăng huyết áp trên toàn thế giới khoảng 1,56 tỷ người mà 3/4 trong số đó là người thuộc nước đang phát triển
Các số liệu điều tra thống kê tăng huyết áp Việt Nam cho thấy tỷ lệ tăng huyết áp năm 1960 chiếm 1,6% dân số, 1982 là 1,9%, năm 1992 tăng lên 11,79% dân số, 2002 ở Miền Bắc là 16,3%, riêng thành phố Hà Nội có tỷ lệ 23,2%, còn năm
2004 Thành phố Hồ Chí Minh là 20,5% và năm 2007 tại Thừa thiên -Huế là 22,77%
Công việc chẩn đoán bệnh tăng huyết áp tương đối dễ dàng dựa vào trị số đo được sau khi đo huyết áp đúng quy trình Ngưỡng chẩn đoán tăng huyết áp thay đổi tùy theo từng cách đo huyết áp và phác đồ điều trị bệnh tăng huyết áp của Bộ Y tế Việt Nam nhưng để dự đoán một bệnh nhân tăng huyết áp thì còn nhiều khó khăn trong thực tế lâm sàng Do vậy vẫn còn bệnh nhân tử vong cao, cũng như chi phí điều trị cao cho những bệnh nhân vào sốc, đây là bài toán nan giải cho Y tế cộng đồng nói chung và tại bệnh viện Tuệ tĩnh nói riêng
Với mục đích mong muốn đưa ra một số giải pháp hỗ trợ công việc của cán
bộ y tế, nhằm rút ngắn thời gian, tăng tính logic trong chẩn đoán bệnh, vì thế mà tác
giả xin đề xuất thực hiện đề tài “Khai phá dữ liệu hồ sơ bệnh nhân ứng dụng hỗ trợ chẩn đoán bệnh tại bệnh viện Đa khoa Y học cổ truyền Tuệ Tĩnh” nhằm nghiên cứu
và áp dụng một vấn đề nhỏ trong lĩnh vực y học và khai phá dữ liệu nói chung
Trang 5Mục đích nghiên cứu: Tìm ra các quy luật từ dữ liệu thực tế nhằm chẩn
đoán một số bệnh thường gặp tại bệnh viện YHCT Tuệ Tĩnh (Tăng huyết áp, Rối loạn chức năng tiền đình): xây dựng các thuật toán hỗ trợ chẩn đoán một số bệnh thường gặp tại Bệnh viện YHCT Tuệ Tĩnh; ứng dụng các thuật toán vào công việc chẩn đoán bệnh tại bệnh viện YHCT Tuệ Tĩnh
Sử dụng các phương pháp: tìm hiểu nghiệp vụ y tế liên quan đến một số bệnh
cụ thể phân chia theo độ tuổi, giới tính, …; thu thập và tiền xử lý dữ liệu tại bệnh viện YHCT Tuệ Tĩnh; tìm hiểu bài toán phân lớp trong khai phá dữ liệu, lựa chọn thuật toán phù hợp (cây quyết định và thuật toán C4.5); Phân tích và đánh giá
Cấu trúc của luận văn gồm 3 chương:
Chương I: Tổng quan về khai phá dữ liệu trong y khoa
Nội dung chương này bao gồm các phần chính sau:
- Giới thiệu về khai phá dữ liệu: Khái niệm khai phá dữ liệu; Quy trình và phương pháp khai phá dữ liệu; Một số kỹ thuật khai phá dữ liệu thông dụng; Ứng dụng khai phá dữ liệu trong y khoa; Tri thức và khai phá dữ liệu trong y khoa; Các nghiên cứu trước đây về khai phá dữ liệu trong y khoa
Chương II: Khai phá dữ liệu bệnh án
Chương này giới thiệu cụ thể về dữ liệu được nghiên cứu và các phương pháp khai phá dữ liệu, các phương pháp trích chọn đặc trưng cơ bản Nội dung cụ thể bao gồm: giới thiệu về dữ liệu thu thập được từ bệnh viện YHCT Tuệ Tĩnh; tìm hiểu cây quyết định và thuật toán C4.5; ứng dụng cây quyết định và thuật toán C4.5 vào khai phá dữ liệu bệnh án
Chương III: Thử nghiệm và đánh giá
Quá trình thu thập dữ liệu tại Bệnh viện Đa khoa Y học cổ truyền Tuệ Tĩnh: Qua kho dữ liệu để rà soát hồ sơ bệnh án; phân tích cụ thể đặc điểm và các đặc trưng của dữ liệu; Các kết quả thực nghiệm chẩn đoán bệnh từ dữ liệu thực tế sử
Trang 6dụng cây quyết định và thuật toán C4.5; Phân tích và đánh giá các kết quả thực nghiệm
Trang 7CHƯƠNG I: TỔNG QUAN VỀ KHAI PHÁ DỮ LIỆU
TRONG Y KHOA 1.1 Giới thiệu về khai phá dữ liệu
1.1.1 Sự cần thiết phải khai phá dữ liệu (datamining)
Khoảng hơn một thập kỷ trở lại đây, lượng thông tin được lưu trữ trên các thiết bị điện tử (đĩa cứng, CD-ROM, băng từ, v.v.) không ngừng tăng lên Sự tích lũy dữ liệu này xảy ra với một tốc độ bùng nổ Người ta ước đoán rằng lượng thông tin trên toàn cầu tăng gấp đôi sau khoảng hai năm và theo đó số lượng cũng như kích cỡ của các cơ sở dữ liệu (CSDL) cũng tăng lên một cách nhanh chóng Nói một cách hình ảnh là chúng ta đang “ngập” trong dữ liệu nhưng lại “đói” tri thức Câu hỏi đặt ra là liệu chúng ta có thể khai thác được gì từ những “núi” dữ liệu tưởng chừng như “bỏ đi” ấy không ?
“Necessity is the mother of invention” - Data Mining ra đời như một hướng
giải quyết hữu hiệu cho câu hỏi vừa đặt ra ở trên Khá nhiều định nghĩa về Data Mining và sẽ được đề cập ở phần sau, tuy nhiên có thể tạm hiểu rằng Data Mining
như là một công nghệ tri thức giúp khai thác những thông tin hữu ích từ những kho
dữ liệu được tích trữ trong suốt quá trình hoạt động của một công ty, tổ chức nào
đó
1.1.2 Khai phá dữ liệu là gì
Định nghĩa: Khai phá dữ liệu là một tập hợp các kỹ thuật được sử dụng để
tự động khai thác và tìm ra các mối quan hệ lẫn nhau của dữ liệu trong một tập hợp dữ liệu khổng lồ và phức tạp, đồng thời cũng tìm ra các mẫu tiềm ẩn trong tập
dữ liệu đó
Khai phá dữ liệu là một bước trong bảy bước của quá trình KDD (Knowleadge Discovery in Database) và KDD được xem như 7 quá trình khác nhau theo thứ tự sau:
Trang 81 Làm sạch dữ liệu (data cleaning & preprocessing): loại bỏ nhiễu và các
dữ liệu không cần thiết
2 Tích hợp dữ liệu (data integration): quá trình hợp nhất dữ liệu thành những kho dữ liệu (data warehouse & data marts) sau khi đã làm sạch và tiền xử lý (data cleaning & preprocessing)
3 Trích chọn dữ liệu (data selection): trích chọn dữ liệu từ những kho dữ liệu và sau đó chuyển đổi về dạng thích hợp cho quá trình khai thác tri thức Quá trình này bao gồm các việc xử lý với dữ liệu nhiễu (noisy data), dữ liệu không đầy
6 Ước lượng mẫu (knowledge evaluation): quá trình đánh giá các kết quả tìm được thông qua các độ đo nào đó
Trang 97 Biểu diễn tri thức (knowledge presentation): quá trình này sử dụng các kỹ thuật để biểu diễn và thể hiện trực quan cho người dùng
Hình 1.1: Các bước trong Data Mining & KĐ
1.1.3 Các bài toán chính của khai phá dữ liệu
Data Mining được chia nhỏ thành một số hướng chính như sau:
Trang 10- Mô tả khái niệm (concept description); luật kết hợp (association rules); phân lớp và dự đoán (classification & prediction); Phân cụm (clustering); khai phá chuỗi (sequential/ temporal patterns)
1.1.4 Ứng dụng của khai phá dữ liệu
Phân tích dữ liệu và hỗ trợ ra quyết định (data analysis & decision support); điều trị y học (medical treatment): giúp tìm ra mối liên hệ giữa các triệu chứng lâm sàng, chẩn đoán bệnh; text mining & Web mining; tin-sinh (bio-infomatics): tìm kiếm, so sánh các hệ Gen và thông tin di truyền, tìm mối liên hệ giữa các hệ Gen
và chẩn đoán một số bệnh di truyền; tài chính và thị trường chứng khoán (finance
& stock market): để phân tích tình hình tài chính, phân tích đầu tư, phân tích cổ phiếu; bảo hiểm (insurance); nhận dạng (patten recognition); thông tin kỹ thuật: phân tích các sai hỏng, điều khiển và lập lịch trình; thông tin thương mại: phân tích
dữ liệu người dùng, phân tích dữ liệu marketing, phân tích đầu tư, phát hiện gian lận
1.2 Các nghiên cứu liên quan
1.2.1 Các dạng dữ liệu đã và đang được khai phá
Phân tích dữ liệu tài chính (financial data analysis); công nghiệp bán lẻ (Retail Industry); công nghiệp viễn thông (telecommunication industry); phân tích
dữ liệu sinh học (Biological Data Analysis); phát hiện xâm nhập bất hợp pháp (Intrusion Detection); phân tích dòng dữ liệu (Analysis of Stream data)
1.2.2 Các phương pháp đã khai phá dữ liệu trong y học trước đây
a Nghiên cứu trong nước
Tác giả Đinh Thị Thu Hương nghiên cứu trên 123 người Việt Nam khỏe mạnh trung niên với tuổi 51,2 ± 13,9 bằng phương pháp không xâm nhập Complior thấy vận tốc sóng mạch cảnh đùi là 10,2 ± 1,6 m/s và tương quan thuận với tuổi r=
Trang 110,56 p<0,01; kết quả nghiên cứu tình hình tăng huyết áp của 605 đối tượng tuổi từ 40-69 tuổi tại phường Hương Xuân, thị xã Hương Trà năm 2013 cho thấy tỷ lệ mắc tăng huyết áp chung trong độ tuổi từ 40-69 tuổi là 33,9% Tỷ lệ tăng huyết áp theo phân độ I là 21,1%, độ II là 7,6%, độ III là 5,1%
b Nghiên cứu nước ngoài
Hansen T.W nghiên cứu ngẫu nhiên trên 1678 dân Đan Mạch tuổi từ 40 đến
70 tuổi nhận thấy rằng vận tốc sóng mạch động mạch chủ (AoPWV), một đo lường của CĐM chủ, cung cấp thông tin dự báo vượt trội so với các yếu tố nguy cơ truyền thống bao gồm tuổi tác, giới tính, HA, cholesterol, bệnh ĐTĐ, hút thuốc lá và HATB 24 giờ; Boutouyrie P từ năm 2002 đã tiến hành nghiên cứu cắt dọc trên 1045
cá thể tăng huyết áp, khẳng định cứng động mạch đo bằng vận tốc sóng mạch cảnh đùi là yếu tố dự báo độc lập cho biến cố bệnh động mạch vành nguyên phát trên người tăng huyết áp
1.2.3 Khai phá dữ liệu y học tại Việt Nam
Ứng dụng khai phá dữ liệu trong phân lớp bệnh nhân điều trị ngoại trú bảo hiểm y tế tại bệnh viện Tiền Giang: ứng dụng kỹ thuật phân lớp để xây dựng cây quyết định và các tập luật dự đoán các trường hợp sẽ được bảo hiểm y tế thanh toán hay giám định lại và đánh giá kết quả (luận văn ThS Nguyễn Thanh Sang, Đại học Huế) Ngoài ra khai phá dữ liệu phát hiện gian lận trong bảo hiểm y tế: sử dụng kỹ thuật khai phá dữ liệu để phát hiện các hành vi gian lận một cách tự động dựa trên dấu hiệu bất thường so với dữ liệu trong quá khứ (luận văn ThS Lã Thúy
Hà, Học viện Công nghệ bưu chính viễn thông)
Trang 12CHƯƠNG II: KHAI PHÁ DỮ LIỆU BỆNH ÁN
2.1 Khai phá dữ liệu y khoa
2.1.1 Giới thiệu về khai phá dữ liệu y khoa:
Tập dữ liệu y khoa
Cho một tập dữ liệu y khoa gồm A ={ T1,T2,T3…,Tn} là một tập thuộc tính điều kiện (conditional) , và một thuộc tính chẩn đoán D (diagnosis) Trong đó các thuộc tính có thể chuyển đổi, số hóa D có các giá trị chẩn đoán
Bài toán 1: Phân loại bệnh nhân dựa trên chuẩn đoán lâm sàng của chuyên
gia lâm sàng Mỗi chuyên bác sĩ có thể có những tệp đặc tính khác nhau Vì vậy để không bỏ sót chẩn đoán bệnh nên kết hợp kinh nghiệm của nhiều chuyên gia càng tốt
Bài toán 2: Kết hợp với bài toán 1 cùng với việc dựa vào các kết quả cận
lâm sàng tiến hành thực nghiệm chẩn đoán bệnh nhân mới nhằm chuẩn hóa các tập thuộc tính có chẩn đoán chính xác cao để các chuyên gia bác sĩ đưa ra kết luận về trạng thái bệnh lý
Bài toán 3: Sử dụng các kỹ thuật khai phá dữ liệu tạo ra các mô hình để
chẩn đoán bệnh Xây dựng công cụ chuẩn đoán cận lâm sàng tự động gồm 2 bước
cơ bản:
Bước 1: Huấn luyện (tập dữ liệu sẽ được dùng để huấn luyện mô hình học máy như mô hình Markov ẩn, mô hình mạng Baysian, mô hình cây quyết định (trong luận văn này tác giả đã sử dụng kỹ thuật khai phai dữ liệu bằng cây quyết định)
Bước 2: Sau khi được huấn luyện, thì mô hình học máy này sẽ được sử dụng để chẩn đoán bệnh nhân mới Kết quả chẩn đoán bệnh nhân mới này được dùng để kiểm chứng mô hình cũng như tập con thuộc tính đã được lựa chọn trong bài toán 1
Trang 13Các lời giải cho các bài toán khai phá tập dữ liệu y khoa:
Lời giải cho bài toán 1
Để chọn ra các tập con các thuộc tính người ta thường chọn theo kinh nghiệm của chuyên gia
Tham khảo ý kiến chuyên gia bác sĩ tại Bệnh viện Tuệ Tĩnh và các nghiên cứu khoa học (y học chứng cớ và y học thực chứng tại bệnh viện ) chọn ra các thuộc tính có đặc tính liên quan chẩn đoán:
Chọn thuộc tính tuôi (khoangtuoi) còn thông tin hành chính Họ và tên bệnh nhân, địa chỉ thường trú, giới tính, tình trạng gia đình, tiền sử bệnh không có giá trị trong chẩn đoán bệnh tăng huyết áp
Triệu chứng lâm sàng: chọn thuộc tính huyết áp, nhức đầu, ù tai, mờ mắt, giảm trí nhớ [theo kinh nghiệm của lâm sàng của chuyên gia bác sĩ tại bệnh viện Tuệ Tĩnh]
Tình trạng đến khám hoặc nhập viện
Thuộc tính nhập viện được chọn: bệnh nhân tăng huyết áp nhập viện càng muộn tỉ lệ bệnh mắc phải càng cao theo các cấp độ
Đặc điểm kết quả của bài toán này: mang tính ngẫu nhiên
Lời giải cho bài toán 2
Kết hợp với dữ liệu được mô tả ở bài toán 1 cùng với dữ liệu được mô tả ở bài toàn 2 để các chuyên gia bác sĩ đưa ra kết luận trạng thái bệnh lý cụ thể như sau:
Cận lâm sàng
Xét nghiệm
Trang 14- Chọn Hct, tiểu cầu còn xét nghiệm khác (bạch cầu, công thưc máu, …) không có giá trị trong chẩn đoán bệnh nhân tăng huyết áp [theo kinh nghiệm của lâm sàng của chuyên gia bác sĩ tại bệnh viện Tuệ Tĩnh]
Tình trạng đến khám hoặc nhập viện
Thuộc tính nhập viện được chọn: bệnh nhân tăng huyết áp nhập viện càng muộn tỉ lệ bệnh mắc phải càng cao theo các cấp độ
Bảng 1: Phân độ THA theo Hội THA Việt Nam (2008) [8].
Lời giải cho bài toán 3
Sử dụng kỹ thuật khai phá dữ liệu bằng cây quyết định với thuật toán C4.5 để tạo ra các luật và tiến hành chẩn đoán bệnh nhân mới
2.1.2 Dữ liệu y khoa tại bệnh viện YHCT Tuệ Tĩnh
Các thuộc tính được lưu trữ trong bệnh án bao gồm:
Tập thuộc tính ban đầu: Khi bệnh nhân đến khám bệnh hoặc nhập viện
gồm có những thông tin sau:
Thông tin hành chính: Họ và tên bệnh nhân; địa chỉ thường trú; tuổi; giới
tính; tiền sử bệnh
Trang 15Các triệu chứng lâm sàng, bao gồm:
Triệu chứng cơ năng (khai thác bệnh nhân bằng hỏi); Triệu chứng thực thể
(thăm khám); Dấu hiệu lâm sàng
Triệu chứng Cận lâm sàng: mục đích để đánh giá nguy cơ tim mạch, tổn
thương thận và tìm nguyên nhân
- Xét nghiệm máu: Ure, creatinin để đánh giá biến chứng suy thận,
Cholesterol, triglycerid, HDL- Cholesterol, LDL- Cholesterol, Glucoese máu, HbA1C… để phát hiện các yếu tố nguy cơ của người bệnh tăng huyết áp
- Xét nghiệm nước tiểu: Protein, hồng cầu trong nước tiểu
- Điện tim: phát hiện dày thất trái, hở van hai lá do biến chứng suy tim trái
- Siêu âm tim mạch: đánh giá chức năng tâm thu thất trái, tình trạng xơ vữa
Trang 16Hình 2.1: Biểu diễn cây quyết định cơ bản
a Xây dựng cây quyết định
Xây dựng cây; đánh giá cây; cắt tỉa cây
Mã giả cho quá trình Xây dựng cây
Make Tree (Training Data T)
{ Partition(T) }
Partition(Data S)
{ if (all points in S are in the same class) then
return for each attribute A do
evaluate splits on attribute A;
use best split found to partition S into S1,
S2, , Sk Partition(S1) Partition(S2) Partition(Sk)
}
Trang 17b Tính chất của cây quyết định
- Khả năng sinh ra các quy tắc hiểu được; khả năng thực thi trong những lĩnh vực hướng quy tắc; dễ dàng tính toán trong khi phân lớp; khả năng xử lý với cả thuộc tính liên tục và thuộc tính rời rạc; thể hiện rõ ràng những thuộc tính tốt nhất; quá trình xây dựng cây tương đối đơn giản
2.2.2 Khai phá dữ liệu bằng cây quyết định
a Thuật toán ID3
Thuật toán được mô tả đơn giản như sau:
Function induce_tree (tập_ví dụ, tập thuộc tính)
BEGIN
If mọi ví dụ trong tập_ví_vụ đều nằm cùng một lớp
then Return một nút lá được gán nhãn bởi lớp
đó
Else if tập thuộc tính là rỗng then
Return nút lá được gán nhãn bởi tuyển của tất cả các lớp trong
tập_ví_dụ
Else
BEGIN
Chọn một thuộc tính P, lấy nó làm gốc cho cây hiện tại;
Xóa P ra khỏi tap_thuộc_tính;
Với mỗi giá trị V của P
Begin
Tạo một nhãn của cây gán nhãn V;