- Trong lĩnh vực kinh tế, việc hỗ trợ quyết định sẽ đưa ra cho các doanh nghiệp có các chiến lược kinh doanh để thu về lợi nhuận cao, đạt được thế cạnh tranh nhất định … - Trong lĩnh vực
Trang 1TRƯỜNG ĐẠI HỌC CÔNG NGHỆ THÔNG TIN
KHOA KHOA HỌC MÁY TÍNH
BÁO CÁO THU HOẠCH MÔN HỆ HỖ TRỢ QUYẾT ĐỊNH
PHÂN LỚP DỮ LIỆU VÀ ỨNG
DỤNG Y HỌC TRONG CHẨN ĐOÁN
BỆNH TIM Ở NGƯỜI
TRẦN QUỐC CƯỜNG (CH1301082)
TPHCM, THÁNG 6 NĂM 2014
Trang 2GVHD: PGS TS Đỗ Phúc
M c l c ục lục ục lục
Trang
1 Lời giới thiệu 3
2 Đặt vấn đề 4
3 Lý thuyết về khai thác dữ liệu 5
3.1 Khái niệm về khai thác dữ liệu 5
3.2 Các kỹ thuật trong khai phá dữ liệu 6
4 Ứng dụng phân lớp dữ liệu trong y học về việc chẩn đoán bệnh tim 7
4.1 Thông tin dữ liệu 7
4.2 Công cụ sử dụng 10
5 Kết quả thử nghiệm và đánh giá 10
5.1 Kết quả thử nghiệm 10
5.2 Đánh giá 14
6 Kết luận 14
Tài liệu tham khảo 15
Trang 31 Lời giới thiệu
- Ngày nay, công nghệ thông tin đã tạo ra một cuộc cách mạng khoa học kỹ thuật có ảnh hưởng lớn trên toàn thế giới, đã và đang giúp thay đổi toàn diện và hiệu quả trong tất cả các lĩnh vực như: khoa học, kinh tế, chính trị, xã hội, giáo dục, y tế …
- Chiến lược đưa công nghệ thông tin vào tất cả các lĩnh vực để phục vụ tốt cho việc quản lý, điều hành đã đem những lợi ích to lớn và đạt được những thành công nhất định
- Sức mạnh của công nghệ thông tin không chỉ nằm ở mức quản lý, điều hành mà nó còn nâng lên một tầm cao mới: hỗ trợ giúp con người đưa ra những quyết định dựa trên việc phân tích dữ liệu
- Trong lĩnh vực kinh tế, việc hỗ trợ quyết định sẽ đưa ra cho các doanh nghiệp có các chiến lược kinh doanh để thu về lợi nhuận cao, đạt được thế cạnh tranh nhất định …
- Trong lĩnh vực ngân hàng, hỗ trợ quyết định giúp ta phân loại các khách hàng sử dụng dịch vụ thẻ,
từ đó, ngân hàng sẽ có những gói sản phẩm dành cho mỗi khách hàng hoặc trong xử lý giao dịch,
hệ thống sẽ hỗ trợ dự báo các giao dịch có khả năng gian lận …
- Trong lĩnh vực y tế, các máy móc xét nghiệm cũng ứng dụng các công nghệ tiên tiến để giảm thao tác, nâng cao độ chính xác, giúp các bác sĩ quyết định lâm sàng một cách nhanh chóng và chính xác
- Trong phạm vi bài thu hoạch này, nhóm xin tập trung việc ứng dụng công nghệ thông tin trong lĩnh vực y tế, hỗ trợ ra quyết định trong việc chuẩn đoán bệnh tim
- Bài thu hoạch chủ yếu là được dịch từ bài báo “Data mining techniques to find out heart diseases” [ CITATION Ahm \l 1033 ] có lược dịch và bổ sung thêm Nội dung gồm ba phần chính:
Tìm hiểu tổng quan về kỹ thuật phân lớp trong khai phá dữ liệu
Sử dụng công cụ WEKA để xử lý dữ liệu thu thập và thực hiện tiến trình ra quyết định
Kết quả thử nghiệm và đánh giá việc ra quyết định (cụ thể là việc chuẩn đoán bệnh tim)
- Nhóm xin chân thành cám ơn PGS TS Đỗ Phúc đã tận tình giảng dạy và truyền đạt những kinh nghiệm quý báu về những kiến thức của môn học “Hệ hỗ trợ quyết định”
- Nhóm rất mong được sự góp ý của Thầy để rút kinh nghiệm cho những bài thu hoạch tiếp theo
Xin chân thành cám ơn
Trang 4GVHD: PGS TS Đỗ Phúc
2 Đặt vấn đề
- Bệnh tim là nguyên nhân chủ yếu gây tử vong trong xã hội hiện đại Việc chuẩn đoán bệnh trong y khoa là một nhiệm vụ rất quan trọng và phức tạp cần phải thực hiện một cách chính xác và hiệu quả Mặc dù đã có những tiến bộ đáng kể trong việc chuẩn đoán và điều trị bệnh tim nhưng việc nghiên cứu vẫn phải cần tiếp tục Chúng ta đã có sẵn kho dữ liệu lớn về y tế, điều này dẫn đến sự cần thiết phải có một công cụ phân tích đủ mạnh để trích xuất những thông tin hữu ích Vì thế, việc khám phá tri thức và khai thác dữ liệu đã trở nên quan trọng trong các lĩnh vực kinh doanh, y tế, khoa học… Các nhà nghiên cứu từ lâu đã quan tâm đến việc áp dụng các phương pháp thống kê và khai thác dữ liệu để cải thiện phân tích trên các tập dữ liệu lớn Chuẩn đoán bệnh là một trong những ứng dụng mà các công cụ khai phá dữ liệu đã được chứng minh kết quả thành công
- Một thách thức lớn phải đối mặt với các tổ chức chăm sóc sức khỏe(bệnh viện, trung tâm y tế) là cung cấp các dịch vụ chất lượng với giá cả phải chăng Chất lượng dịch vụ ở đây có nghĩa là chuẩn đoán đúng bệnh và điều trị hiệu quả Quyết định lâm sàng không chính xác có thể sẽ dẫn đến những hậu quả nghiêm trọng Ngoài ra, các bệnh viện cũng cần phải tìm cách để giảm thiểu chi phí thử nghiệm lâm sàng Để đạt được các kết quả này, chúng ta có thể sử dụng thông tin bệnh án được lưu trữ trong máy tính hoặc cao hơn là sử dụng các hệ thống hỗ trợ ra quyết định
- Dữ liệu về chăm sóc y tế sức khỏe là rất lớn Nó bao gồm các dữ liệu về bệnh nhân, trang thiết bị, nguồn nhân lực, hồ sơ bệnh án, quá trình khám chữa bệnh … Vì thế, tổ chức chăm sóc sức khỏe cần phải có công cụ để có khả năng phân tích được lượng dữ liệu cực lớn này
- Hồ sơ về bệnh án của hàng triệu bệnh nhân có thể được lưu trữ, tính toán và khai thác để có thể trả lời cho một số câu hỏi quan trọng liên quan đến chăm sóc sức khỏe
- Với việc có sẵn một lượng lớn thông tin qua kho dữ liệu, đã làm nên sự thay đổi nhận thức của các bác sĩ, bệnh nhân và người chi trả viện phí từ việc quan sát trực tiếp dữ liệu lâm sàng đòi hỏi một cách đánh giá định lượng hơn là thông tin với sự hỗ trợ của tất cả các dữ liệu lâm sàng và hình ảnh
đi kèm Chuẩn đoán y tế được coi là một nhiệm vụ phức tạp nhưng quan trọng hơn hết vẫn là chính xác và hiệu quả Vì thế, việc tự động hóa chuẩn đoán trong trường hợp này sẽ rất có lợi
- Các quyết định lâm sàng thường được thực hiện dựa trên trực giác và kinh nghiệm của bác sĩ chứ không dựa trên các dữ liệu về bệnh án sẵn có Điều này, có khi dẫn đến kết quả không mong muốn (cùng một kết quả kết nghiệm nhưng chuẩn đoán của các bác sĩ có khi là khác nhau), chi phí có lúc tăng lên (vì phải làm thêm một số xét nghiệm mà đôi khi không cần thiết)
- Dựa vào các vấn đề đã nêu ở trên, việc đề xuất tích hợp hỗ trợ quyết định lâm sàng dựa trên dữ liệu
về bệnh án có thể làm giảm sai sót trong việc chuẩn đoán, tăng niềm tin của bệnh nhân, giảm các chi phí xét nghiệm không cần thiết
- Trong bài thu hoạch này, nhóm sẽ trình bày về kỹ thuật phân lớp trong data mining để dự đoán bệnh tim sử dụng các thuật toán để chạy và so sánh
Trang 53 Lý thuyết về khai thác dữ liệu
3.1 Khái niệm về khai thác dữ liệu
- Khám phá tri thức trong cơ sở dữ liệu là một quá trình được xác định qua nhiều bước khác nhau Khai thác dữ liệu là bước quan trọng mà kết quả thu được là phát hiện ra những dữ liệu ẩn nhưng hữu ích từ kho dữ liệu
- Một định nghĩa chính thức về data mining như sau: Data mining là quá trình khai thác không tầm thường những thông tin tiềm ẩn trước đó chưa được biết và có khả năng cung cấp những thông tin
có ích
- Công nghệ khai thác dữ liệu làm việc theo phương pháp tiếp cận hướng người dùng Tri thức được phát hiện ra có thể được sử dụng để hỗ trợ ra quyết định cho các mục tiêu và chiến lược của công
ty, hay trong lĩnh vực y tế, những tri thức mới này có thể được sử dụng bởi các nhân viên chăm sóc sức khỏe để nâng cao chất lượng dịch vụ, đưa ra đề nghị một liệu pháp điều trị tương đương mà ít tốn kém, dự đoán các triệu chứng của bệnh nhân cũng là một trong những ứng dụng quan trọng của
kỹ thuật khai thác dữ liệu có thể được sử dụng trong quản lý chăm sóc sức khỏe
- Sự phát triển của công nghệ thông tin đã tạo ra lượng dữ liệu lớn trong các lĩnh vực Các nghiên cứu về cơ sở dữ liệu đã làm tăng phương pháp tiếp cận để lưu trữ và thao tác trên dữ liệu này để đưa ra quyết định Khai thác dữ liệu là một quá trình thu thập các thông tin hữu ích và các mẫu từ tập dữ liệu lớn Nó còn được gọi là quá trình khám phá tri thức, khai thác kiến thức từ dữ liệu hoặc phân tích dữ liệu Mục đích của kỹ thuật này làm tìm ra những mẫu mà trước đây chưa được biết đến
- Khi đã khám phá ra các tri thức mới, ta có thể sử dụng để đưa ra quyết định nào đó cho sự phát triển của tổ chức, doanh nghiệp … Ta có các bước thực hiện như sau:
Thăm dò
Xác định mẫu
Triển khai
- Sau đây là hình ảnh mô tả tiến trình khai phá tri thức trong cơ sở dữ liệu (Knowledge Discovery in Databases) [ CITATION Bie13 \l 1033 ]
Trang 6GVHD: PGS TS Đỗ Phúc
Hình 3.1: KDD - Knowledge Discovery in Databases
3.2 Các kỹ thuật trong khai phá dữ liệu
- Hiện nay, có rất nhiều các kỹ thuật được áp dụng để khai thác dữ liệu như: phân lớp, gom cụm, trí tuệ nhân tạo, mạng nơ-ron, luật kết hợp, mẫu tuần tự, cây quyết định, thuật giải di truyền … Trong phạm vi bài thu hoạch này, nhóm xin chỉ trình bày lý thuyết về phân lớp dữ liệu vì đây là kỹ thuật được áp dụng để chuẩn đoán bệnh tim trong bài báo cáo này
Phân lớp dữ liệu
- Phân lớp là kỹ thuật khai thác dữ liệu phổ biến nhất thường được áp dụng, trong đó sử dụng một tập các dữ liệu đã biết phân lớp trước để phát triển mô hình dự đoán Khi việc học hoàn tất, hệ thống có thể dự đoán được nhãn của mẫu tin chưa biết Cách tiếp cận này thường sử dụng cây quyết định hoặc mạng nơ-ron
- Quá trình phân lớp dữ liệu liên quan đến việc học và phân loại Dữ liệu huấn luyện được phân tích bởi thuật toán phân lớp Dữ liệu thử nghiệm thì được dùng để ước lượng độ chính xác của mô hình Nếu độ chính xác có thể chấp nhận được thì các luật sinh ra có thể áp dụng cho bộ dữ liệu mới
- Các mô hình phân lớp có thể áp dụng:
Phân lớp theo cây quyết định
Phân lớp theo Bayes
Phân lớp theo mạng nơ-ron
Phân lớp theo SVM
Phân lớp dựa trên luật
Trang 74 Ứng dụng phân lớp dữ liệu trong y học về việc chẩn đoán bệnh tim
- Bệnh tim , bệnh động mạch vành, bệnh tim mạch vành hay bệnh tim thiếu máu cục bộ là một khái niệm rộng chỉ những chứng bệnh ảnh hưởng đến tim Để phát triển hệ thống hỗ trợ quyết định lâm sàng, có nhiều tài liệu đã trình bày một số nghiên cứu được thực hiện sử dụng trí tuệ nhân tạo và kỹ thuật khai thác dữ liệu Đến nay, một số nghiên cứu đã báo cáo về chuẩn đoán bệnh tim Những nghiên cứu này đã được áp dụng phương pháp tiếp cận khác nhau và đạt được độ chính xác cao
- Trong phần ứng dụng này, nhóm sẽ sử dụng công cụ WeKa sử dụng các kỹ thuật mạng nơ-ron, cây quyết định, Bayes để phân tích dữ liệu đồng thời so sánh độ chính xác của các kỹ thuật
4.1 Thông tin dữ liệu
- Dữ liệu mẫu được lấy từ trường University of California Irvine (UCI) Cơ sở dữ liệu này chứa đựng bốn tập dữ liệu từ Cleveland Clinic Foundation, Hungarian Institute of Carddiology , V.A Mediacal Center và University Hospital of Switzerland [ CITATION Aha88 \l 1033 ]
- Có tổng cộng 920 mẫu cụ thể như sau:
Trong phần ứng dụng này, nhóm sử dụng database của Hungarian để tiến hành phần lớp dữ liệu
- Có tổng cộng 76 thuộc tính (bao gồm thuộc tính phân lớp) Trong đó, dựa vào thử nghiệm đã lọc ra được 14 thuộc tính đặc trưng
Tên thuộc tính Các giá trị Thuộc tính đặc trưng Mô tả
id mỗi mẫu là 1 giá trị khác nhau mã bệnh nhân
ccf mỗi mẫu là 1 giá trị khác nhau số CMND
painloc {0 ; 1}
vị trí lồng ngực 1: dưới xương ức 0: ngược lại painexer {0 ; 1}
1: rối loạn khi làm việc quá sức
0: ngược lại relrest {0 ; 1}
1: căng thẳng khi nghỉ ngơi
0: ngược lại pncaden {0 ; 1 ; 2 ; 3}
tổng các giá trị của thuộc tính painloc, painexer, relrest
Trang 8GVHD: PGS TS Đỗ Phúc
1: đau nhẹ 2: đau vừa 3: đau không thắt ngực 4: không có triệu chứng
trestbps giá trị liên tục huyết áp lúc bình
thường (đơn vị mmHg) htn
chol giá trị liên tục nồng độ cholestoral
0: ngược lại
1: có tiền sử bệnh tiểu đường
0: ngược lại famhist {0 ; 1}
1: gia đình có người bệnh động mạch vành 0: ngược lại
điện tâm đồ 0: bình thường 1: sóng ST-T bất thường
2: phì đại tâm thất trái
diuretic {0 ; 1}
proto từ 1 đến 12
các bài tập thể dục 1: bruce
2: kottus 3: McHenry 4: fast Balke 5: Balke 6: Noughton 7: bike 150 kpa/min 8: bike 125 kpa/min 9: bike 100 kpa/min 10: bike 75 kpa/min 11: bike 75 kpa/min 12: arm ergometer thaldur giá trị liên tục
thaltime giá trị liên tục
met giá trị liên tục
thalach giá trị liên tục nhịp tim đập cao nhất thalrest giá trị liên tục nhịp tim đập lúc nghỉ
ngơi tpeakbps giá trị liên tục áp lực máu lúc tập thể thao (2 số đầu)
Trang 9tpeakbpd giá trị liên tục áp lức máu lúc tập thể
thao(2 số cuối)
1: đau ngực khi tập thể dục
0: ngược lại
oldpeak giá trị liên tục
hình thái đường ST 1: dốc lên
2: phẳng 3: dốc xuống rldv5 giá trị liên tục
rldv5e giá trị liên tục
restckm giá trị liên tục
exerckm giá trị liên tục
restef giá trị liên tục
restwm {0 ; 1 ; 2 ; 3}
exeref
exerwm
thalsev
thalpul
cday từ 1 đến 31
cyr giá trị liên tục
thuộc tính phân lớp 1: trên 50% mắc bệnh tim
0: dưới 50% mắc bệnh tim
lmt
ladprox
laddist
diag
cxmain
ramus
om1
om2
rcaprox
rcadist
lvx1
lvx2
lvx3
lvx4
lvf
cathef
junk
Lưu ý: có một số giá trị bị lỗi (không xác định) được phân biệt với giá trị -9
Trang 10GVHD: PGS TS Đỗ Phúc
4.2 Công cụ sử dụng
- Nhóm sử dụng phần mềm Weka của trường đại học Waikato để xử lý dữ liệu Các bước tiến hành như sau:
- Tiền xử lý dữ liệu: chỉnh sửa dữ liệu cho đúng với định dạng chương trình yêu cầu, chuẩn hóa các giá trị lỗi, thay thế bằng dấu ?
- Lựa chọn kỹ thuật: sử dụng kỹ thuật phân lớp
- Chọn thuật toán xử lý:
NavieBayes
Mạng Nơ-ron (RBF Network)
Cây quyết định (C4.5)
- Kiểm tra: sử dụng kỹ thuật test cross validation với k = 5
- Ghi nhận kết quả thu được của từng thuật toán và nhận xét
5 Kết quả thử nghiệm và đánh giá
5.1 Kết quả thử nghiệm
NavieBayes
Tổng số mẫu: 294
Số phân lớp dự đoán đúng: 247 (84.0136 %)
Số phân lớp dự đoán sai: 47 (15.9864 %)
Trang 11Hình 5.2: Kết quả thử nghiệm phân lớp sử dụng thuật toán NaviesBayes
Mạng Nơ-ron (RBF Network)
Tổng số mẫu: 294
Số phân lớp dự đoán đúng: 244 (82.9932 %)
Số phân lớp dự đoán sai: 50 (17.0068 %)
Trang 12GVHD: PGS TS Đỗ Phúc
Hình 5.3: Kết quả thử nghiệm phân lớp sử dụng thuật toán RBF Network
Cây quyết định (C4.5 – trongWeka gọi là J48)
Tổng số mẫu: 294
Số phân lớp dự đoán đúng: 233 (79.2517 %)
Số phân lớp dự đoán sai: 61 (20.7483 %)
Trang 13Hình 5.4: Kết quả thử nghiệm phân lớp sử dụng thuật toán C4.5 (J48)
- Cây quyết định sau khi đã tỉa bớt nhánh
Hình 5.5: Cây quyết định sinh ra khi dùng thuật toán C4.5 (J48)
Trang 14GVHD: PGS TS Đỗ Phúc
5.2 Đánh giá
Dựa vào kết quả thu được, ta tóm tắt lại thành bảng sau:
Tập dữ liệu sử dụng: Hungarian
Tổng số mẫu: 294
Tổng số thuộc tính: 14
Thuộc tính phân lớp: num ( 0 , 1)
Thử nghiệm: dùng thuật toán cross validation với k = 5
NaviesBayes 84.0136 %
RBF Network 82.9932 %
C4.5 (J48) 79.2517 %
- Nhóm nhận thấy rằng cả 3 thuật toán đều cho kết quả chính xác khá cao nhưng thuật toán NaviesBayes cho kết quả tốt nhất trong trường hợp này
6 Kết luận
- Bài thu hoạch đã giới thiệu việc khảo sát kỹ thuật phân lớp trong khai thác dữ liệu và ứng dụng nó
để hỗ trợ ra quyết định mà cụ thể trong trường hợp này là chuẩn đoán bệnh tim
- Ứng với mỗi thuật toán phân lớp thì cho ra độ chính xác với kết quả khác nhau Phân loại tốt nhất trong trường hợp này là: NaviesBayes
- Chúng ta nhận thấy rằng tuổi tác, giới tính, đau cơ ngực, huyết áp, tiền sử bệnh tiểu đường, nồng
độ cholesterol, … được sử dụng như là các chỉ số đáng tin cậy để dự đoán sự hiện diện của bệnh tim Chúng tôi cũng cho rằng, dữ liệu cần phải được tìm hiểu và phải được xác nhận từ đội ngũ bác
sĩ chuyên khoa giàu kinh nghiệm
- Trong hướng sắp tới, chúng tôi sẽ cố gắng tăng độ chính xác của mô hình dự đoán bằng cách tăng các thông số khác nhau được đề xuất từ các bác sĩ và sử dụng các kỹ thuật khai thác dữ liệu tiên tiến hơn