DANH MỤC CÁC HÌNH VẼ Số hiệu 1.6 Ước lượng độ chính xác của mô hình bằng phương pháp holdout 15 1.8 Cây quyết định chẩn đoán bệnh bằng thuật toán ID3 25 3.1 Giấy giới thiệu mượn hồ sơ
Trang 1TRƯỜNG ĐẠI HỌC SƯ PHẠM
TRẦN VĂN ĐỒNG
ỨNG DỤNG KHAI PHÁ DỮ LIỆU
ĐỂ XÂY DỰNG HỆ THỐNG CHẨN ĐOÁN BỆNH HEN PHẾ QUẢN VÀ VIÊM PHẾ QUẢN
CHO TRẺ EM
LUẬN VĂN THẠC SĨ HỆ THỐNG THÔNG TIN
Đà Nẵng - Năm 2017
Trang 2TRƯỜNG ĐẠI HỌC SƯ PHẠM
TRẦN VĂN ĐỒNG
ỨNG DỤNG KHAI PHÁ DỮ LIỆU
ĐỂ XÂY DỰNG HỆ THỐNG CHẨN ĐOÁN BỆNH HEN PHẾ QUẢN VÀ VIÊM PHẾ QUẢN
CHO TRẺ EM
Chuyên ngành : HỆ THỐNG THÔNG TIN
Mã số : 61.49.01.04
LUẬN VĂN THẠC SĨ HỆ THỐNG THÔNG TIN
Người hướng dẫn khoa học: TS NGUYỄN HOÀNG HẢI
Đà Nẵng - Năm 2017
Trang 3LỜI CAM ĐOAN
Tôi xin cam đoan:
- Những nội dung trong luận văn này là do tôi thực hiện dưới sự
hướng dẫn trực tiếp của TS Nguyễn Hoàng Hải
- Mọi tham khảo dùng trong luận văn đều được trích dẫn rõ ràng và
trung thực về tên tác giả, tên công trình, thời gian và địa điểm công bố
- Mọi sao chép không hợp lệ, vi phạm quy chế đào tạo, hay gian trá, tôi
xin chịu hoàn toàn trách nhiệm
Tác giả luận văn
Trần Văn Đồng
Trang 4MỤC LỤC
MỞ ĐẦU 1
1 Lý do chọn đề tài 1
2 Mục tiêu và nhiệm vụ nghiên cứu của đề tài 2
3 Đối tượng và phạm vi nghiên cứu 3
4 Phương pháp nghiên cứu 3
5 Kết quả dự kiến 4
6 Ý nghĩa khoa học và thực tiễn của luận văn 4
7 Bố cục của luận văn 5
CHƯƠNG 1 TỔNG QUAN VỀ KHAI PHÁ DỮ LIỆU 6
1.1 TỔNG QUAN VỀ KHAI PHÁ DỮ LIỆU 6
Sơ lược về khai phá dữ liệu 6
1.1.1 Quy trình khai phá dữ liệu 7
1.1.2 Các kỹ thuật khai phá dữ liệu 9
1.1.3 Ứng dụng của khai phá dữ liệu 10
1.1.4 1.2 PHÂN LỚP TRONG KHAI PHÁ DỮ LIỆU 12
Phân lớp dữ liệu 12
1.2.1 Quá trình phân lớp dữ liệu 12
1.2.2 Đánh giá độ chính xác của mô hình phân lớn 15
1.2.3 1.3 KỸ THUẬT KHAI PHÁ DỮ LIỆU BẰNG CÂY QUYẾT ĐỊNH 16
Giới thiệu chung 16
1.3.1 Biểu diễn cây quyết định 17
1.3.2 Các bước chính xây dựng cây quyết định 17
1.3.3 Ưu điểm và nhược điểm của cây quyết định 18
1.3.4 1.4 THUẬT TOÁN ID3 19
Trang 52.2 KHÁI NIỆM BỆNH HEN PHẾ QUẢN VÀ VIÊM PHẾ QUẢN 44
2.2.1 Khái niệm bệnh hen phế quản 44
2.2.2 Khái niệm bệnh viêm phế quản 45 2.3 BỆNH NGUYÊN – CƠ CHẾ SINH BỆNH HEN PHẾ QUẢN VÀ VIÊM
Trang 6Lựa chọn và áp dụng phương pháp CTDL 54
2.4.4 Phương pháp canh tác dữ liệu đánh giá đặc tính 54
2.4.5 2.5 ỨNG DỤNG CANH TÁC DỮ LIỆU TRONG KHAI PHÁ DỮ LIỆU Y KHOA 55
Vai trò của điều dưỡng, bác sĩ trong canh tác dữ liệu y khoa 55
2.5.1 Ứng dụng canh tác dữ liệu trong khai phá dữ liệu bệnh HPQ và 2.5.2 VPQ 56
KẾT LUẬN CHƯƠNG 2 59
CHƯƠNG 3 XÂY DỰNG HỆ THỐNG CHẨN ĐOÁN BỆNH HEN PHẾ QUẢN VÀ VIÊM PHẾ QUẢN 60
3.1 DỮ LIỆU 60
Thu thập dữ liệu 60
3.1.1 Xử lý dữ liệu-Chuyển đổi dữ liệu 61
3.1.2 Chọn lựa thuật toán và ngôn ngữ lập trình để tiến hành khai phá 62
3.1.3 3.2 XÂY DỰNG CHƯƠNG TRÌNH 62
Dữ liệu đầu vào 62
3.2.1 Dữ liệu đầu ra 62
3.2.2 Các chức năng chính của chương trình 63
3.2.3 Phân tích yêu cầu của bài toán 64
3.2.4 3.3 DEMO CHƯƠNG TRÌNH 67
3.4 KẾT QUẢ ĐẠT ĐƯỢC 70
3.5 SO SÁNH VỚI CÁC ĐỀ TÀI TƯƠNG TỰ 73
KẾT LUẬN CHƯƠNG 3 75
KẾT LUẬN VÀ HƯỚNG PHÁT TRIỂN CỦA ĐỀ TÀI 76 TÀI LIỆU THAM KHẢO
QUYẾT ĐỊNH GIAO ĐỀ TÀI LUẬN VĂN (Bản sao)
Trang 7DANH MỤC CÁC KÝ HIỆU VÀ TỪ VIẾT TẮT
Gain Information Gain (Gia lƣợng thông tin)
Trang 8DANH MỤC CÁC BẢNG
Số hiệu
3.1 Cơ sở dữ liệu về chẩn đoán bệnh của 20 bệnh nhân 61
Trang 9DANH MỤC CÁC HÌNH VẼ
Số hiệu
1.6 Ước lượng độ chính xác của mô hình bằng phương pháp
holdout
15
1.8 Cây quyết định chẩn đoán bệnh bằng thuật toán ID3 25
3.1 Giấy giới thiệu mượn hồ sơ bệnh án nghiên cứu 60
3.6 Biểu đồ tuần tự cho hoạt động huấn luyện dữ liệu 663.7 Biểu đồ tuần tự cho hoạt động chẩn đoán bệnh 67
Trang 11MỞ ĐẦU
1 Lý do chọn đề tài
Nhiễm khuẩn hô hấp cấp là bệnh lý phổ biến ở trẻ em và gây tỉ lệ tử vong cao nhất so với các bệnh khác Các thông báo chính tại hội nghị quốc tế về chống nhiễm khuẩn hô hấp cấp cho biết hàng năm trên thế giới
có khoảng 4,3 triệu trẻ em dưới 5 tuổi chết vì nhiễm khuẩn hô hấp [6] Mỗi năm một đứa trẻ bị 5 đến 8 lần nhiễm khuẩn hô hấp cấp làm ảnh hưởng đến ngày công lao động của bố mẹ, là gánh nặng đối với xã hội [2]
Do nhiễm khuẩn hô hấp cấp có tầm quan trọng như vậy nên tổ chức y tế thế giới và Unicef đã đưa ra chương trình phòng chống bệnh nhiễm khuẩn
hô hấp cấp với mục tiêu cụ thể là làm giảm tỉ lệ tử vong do nhiễm khuẩn
hô hấp cấp ở trẻ dưới 5 tuổi, cùng với mục tiêu lâu dài là làm giảm tỉ lệ mắc bệnh và giảm tỉ lệ kháng kháng sinh
Nhìn chung, tại các nước đang phát triển, nhiễm khuẩn hô hấp cấp là nguyên nhân mắc bệnh hàng đầu ở trẻ em dưới 5 tuổi, là nguyên nhân đến khám bệnh cũng như vào điều trị hàng đầu tại các tuyến y tế và cũng là nguyên nhân tử vong làm trẻ chết nhiều nhất Thật vậy, nguyên nhân ước tính của 12,8 triệu tử vong ở trẻ dưới 5 tuổi, 1990: nhiễm khuẩn hô hấp cấp 33,4 % (4,3 triệu), tiêu chảy 24,8% (3,2 triệu), nguyên nhân khác 41,8% (5,4 triệu) [7]
Hen phế quản là một trong những bệnh mãn tính thường gặp ở trẻ em
và là một trong những nguyên nhân buộc trẻ phải nghỉ học nhiều ngày (trung bình trẻ nghỉ học 5-7 ngày/năm do bị hen phế quản), tỷ lệ mắc bệnh cũng như tử vong do hen phế quản ngày càng tăng Tỉ lệ mắc bệnh từ 0,5-6% trước đây, hiện nay tỉ lệ mắc trung bình tử 5-10% Tỉ lệ tử vong trước đây là 1-2% hiện nay có thể cao hơn 2-3% [8]
Trang 12Nước ta đang trên đà phát triển và hội nhập Hệ thống Y tế và Giáo dục vẫn còn nhiều bất cập và hạn chế, đặc biệt là các cơ sở vùng sâu vùng
xa, chưa có điều kiện tiếp cận với công nghệ hiện đại Đội ngũ y bác sĩ chưa đủ để đáp ứng với tình trạng bệnh nhân ngày càng tăng cả về số lượng và loại bệnh Nhận thức của người dân về bệnh tật và cách sơ cứu cũng mơ hồ Nếu muốn đưa bệnh nhân đến được các bệnh viện trung tâm thì mất nhiều thời gian…Để khắc phục những khó khăn này, chúng ta cần
có công cụ gần gũi với thực tiễn, người dùng dễ sử dụng và linh hoạt để
có thể giúp bệnh nhân và y bác sĩ phát hiện bệnh và điều trị kịp thời
Việc ứng dụng Công nghệ thông tin (CNTT) vào lĩnh vực y tế còn hạn chế, nhất là việc hỗ trợ tìm kiếm, khai thác thông tin nhằm chẩn đoán các biểu hiện lâm sàng Trong đó, khai phá dữ liệu là một kỹ thuật thường được áp dụng để hỗ trợ đưa ra các quyết định khá chính xác
Chính vì vậy tôi đã chọn luận văn “Ứng dụng khai phá dữ liệu để
chẩn đoán bệnh hen phế quản và viêm phế quản cho trẻ em” làm đề tài
nghiên cứu luận văn của mình
2 Mục tiêu và nhiệm vụ nghiên cứu của đề tài
Mục tiêu
Mục tiêu của đề tài là xây dựng và áp dụng có hiệu quả việc trợ giúp
ra quyết định trong việc chẩn đoán bệnh hen phế quản và viêm phế quản cho trẻ em từ 2 tháng tuổi đến 5 tuổi
Trang 13 Đánh giá kết quả dự đoán của mô hình và lựa chọn mô hình tốt nhất
để chẩn đoán bệnh hen phế quản và viêm phế quản
Xây dựng ứng dụng khai phá dữ liệu để chẩn đoán bệnh hen phế quản
và viêm phế quản dựa vào kỹ thuật cây quyết định
3 Đối tượng và phạm vi nghiên cứu
Đối tượng nghiên cứu
Dữ liệu nghiên cứu bao gồm các yếu tố liên quan đến biểu hiện và các yếu tố lâm sàng của bệnh hen phế quản và viêm phế quản
Các kỹ thuật khai phá dữ liệu, công cụ khai phá dữ liệu và mô-đun lập trình trong khai phá dữ liệu
Phạm vi nghiên cứu
Dữ liệu thu thập gồm các hồ sơ bệnh án thuộc đối tượng trẻ em từ 2 tháng tuổi đến 5 tuổi, được chẩn đoán bệnh hen phế quản và viêm phế quản tại khoa nhi-bệnh viện đa khoa tỉnh Khánh Hòa, phòng khám đa khoa trường cao đẳng y tế Khánh Hòa và một số phòng khám tư nhân trên địa bàn tỉnh Khánh Hòa
Nghiên cứu ứng dụng về thuật toán phân lớp và kỹ thuật cây quyết định
Xây dựng ứng dụng khai phá dữ liệu để chẩn đoán bệnh hen phế quản
và viêm phế quản cho trẻ em
4 Phương pháp nghiên cứu
Phương pháp nghiên cứu lý luận
Tìm tòi, đọc hiểu, phân tích thông tin, dữ liệu từ các tài liệu, giáo trình, sách liên quan đến khai phá dữ liệu
Nghiên cứu các kỹ thuật phân lớp bằng thuật toán cây quyết định, ứng dụng các kỹ thuật đó để chuẩn đoán bệnh hen phế quản và viêm phế quản dựa vào các thông tin đầu vào
Trang 14 Phương pháp nghiên cứu thực tiễn
Sử dụng kiến thức khai phá dữ liệu cộng với tri thức chuyên gia bác sĩ,
y học chứng cớ và y học thực chứng trong quá trình khai phá dữ liệu y khoa
Tiến hành so sánh kết quả của các kỹ thuật khai phá dữ liệu để lựa chọn kỹ thuật cho kết quả chính xác nhất
Xây dựng hệ thống nhằm hỗ trợ bác sĩ trong việc chẩn đoán và điều trị bệnh
Trang 15quản sẽ hỗ trợ cho bác sĩ, cha mẹ các bé phát hiện được bệnh để có giải pháp can thiệp kịp thời trong việc chăm sóc sức khoẻ cho trẻ
7 Bố cục của luận văn
Dự kiến luận văn được trình bày bao gồm 3 chương như sau:
Chương 1: Trong chương 1 sẽ trình bày tổng quan về khai phá dữ liệu, phân lớp dữ liệu, quy trình khai phá dữ liệu, các kỹ thuật khai phá bằng cây quyết định, trình bày chi tiết hai thuật toán là ID3 và C4.5
Chương 2: Nghiên cứu và xử lý dữ liệu về bệnh hen phế quản và viêm phế quản ở trẻ em Chương này trình bày nội dung sau: Đặc điểm hệ
hô hấp của trẻ em, khái niệm về bệnh hen phế quản và viêm phế quản, bệnh nguyên, cơ chế sinh bệnh, đặc điểm lâm sàng và chẩn đoán bệnh hen phế quản, viêm phế quản cho trẻ em, trình bày về canh tác dữ liệu trong khai phá dữ liệu và ứng dụng vào khai phá dữ liệu trong y khoa
Chương 3: Xây dựng hệ thống chẩn đoán bệnh hen phế quản và viêm phế quản cho trẻ em
Trang 16CHƯƠNG 1 TỔNG QUAN VỀ KHAI PHÁ DỮ LIỆU
1.1 TỔNG QUAN VỀ KHAI PHÁ DỮ LIỆU
Sơ lược về khai phá dữ liệu
1.1.1
Khai phá dữ liệu (KPDL) là một khái niệm ra đời vào những năm cuối của thập niêm 80 của thế kỷ 20 KPDL được dùng để mô tả quá trình phát hiện ra tri thức trong cơ sở dữ liệu (CSDL) Quá trình này kết xuất ra các tri thức tiềm ẩn từ dữ liệu giúp cho việc dự báo trong kinh doanh, các hoạt động sản xuất, KPDL làm giảm chi phí về thời gian so với phương pháp truyền thống trước kia (ví dụ như phương pháp thống kê) Hình 1.1 minh họa đơn giản và trực quan cho khái niệm này
Hình 1.1 Khai phá dữ liệu trong tập dữ liệu
Khám phá tri thức trong CSDL là lĩnh vực liên quan đến nhiều ngành như: Tổ chức dữ liệu, xác suất, thống kê, lý thuyết thông tin, học máy, CSDL, thuật toán, trí tuệ nhân tạo, tính toán song song và hiệu năng cao Các kỹ thuật chính áp dụng trong KPDL phần lớn được thừa kế từ các ngành này
Sau đây là một số định nghĩa mang tính mô tả của nhiều tác giả về KPDL:
Trang 17Định nghĩa của Ferruzza: “KPDL là tập hợp các phương pháp được
dùng trong tiến trình khám phá tri thức để chỉ ra sự khác biệt các mối quan hệ và các mẫu chưa biết bên trong dữ liệu”
Định nghĩa của Parsaye: “KPDL là quá trình trợ giúp quyết định,
trong đó chúng ta tìm kiếm các mẫu thông tin chưa biết và bất ngờ trong CSDL lớn”
Định nghĩa của Fayyad: “KPDL thường được xem là việc khám phá
tri thức trong các CSDL, là một quá trình trích xuất những thông tin tiềm
ẩn, trước đây chưa biết và có khả năng hữu ích, dưới dạng các qui luật, ràng buộc, qui tắc trong CSDL”
Như vậy ta có thể tổng quát khái niệm KPDL là “quá trình khảo sát
và phân tích một lượng lớn các dữ liệu được lưu trữ trong các CSDL, kho
dữ liệu… để từ đó trích xuất ra các thông tin quan trọng, có giá trị tiềm ẩn bên trong”
Quy trình khai phá dữ liệu
Quy trình KPDL bao gồm các bước như trong hình sau:
Trang 18Hình 1.2 Quy trình khám phá tri thức từ cơ sở dữ liệu
Bước 1 Làm sạch dữ liệu: Loại bỏ nhiễu và các dữ liệu không cần
thiết
Bước 2 Tích hợp dữ liệu: Quá trình hợp nhất dữ liệu thành những
kho dữ liệu sau khi đã làm sạch và tiền xử lý
Bước 3 Trích chọn dữ liệu: 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ả việc xử lý với dữ liệu nhiễu, dữ liệu không đầy đủ
Bước 4 Chuyển đổi dữ liệu: Các dữ liệu được chuyển sang các dạng
phù hợp cho quá trình xử lý
Bước 5 Khai phá dữ liệu: Là một trong các bước quan trọng nhất,
trong đó sử dụng những phương pháp thông minh để chắt lọc ra những mẫu dữ liệu
Bước 6 Ước lượng mẫu: Quá trình đánh giá các kết quả tìm được
thông qua các độ đo nào đó
Trang 19Bước 7 Biểu diễn tri thức: 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
Các kỹ thuật khai phá dữ liệu
1.1.3
Trong thực tế có nhiều kỹ thuật KPDL khác nhau nhằm thực hiện hai chức năng mô tả và dự đoán
Một số kỹ thuật phổ biến thường được sử dụng để KPDL hiện nay là:
Phân lớp dữ liệu: Là tổ chức dữ liệu trong các lớp cho trước, dùng các
nhãn lớp cho trước tiến hành sắp xếp các đối tượng Trong đó một tập huấn luyện gồm các đối tượng đã được kết hợp với các nhãn đã biết Những thuật toán phân lớp sẽ được áp dụng cho tập các đối tượng cần phân loại để từ đó
mô hình phân lớp chúng
Phân cụm dữ liệu: Mục tiêu của phân cụm dữ liệu là nhóm các đối
tượng tương tự nhau trong tập dữ liệu vào các cụm, sao cho các đối tượng thuộc cùng một cụm dữ liệu thì tương đồng nhau
Cây quyết định: Là một công cụ mạnh và hiệu quả trong việc phân lớp
và dự báo Các đối tượng dữ liệu được phân thành các lớp Các giá trị của đối tượng dữ liệu chưa biết sẽ được dự đoán Tri thức được rút ra trong kỹ thuật này thường được mô tả dưới dạng tường minh, đơn giản, trực quan, dễ hiểu đối với người sử dụng (thông thường ở dạng cây quyết định hoặc các tập luật)
Luật kết hợp: Là khám phá ra các luật kết hợp thể hiện mối liên kết
giữa các thuộc tính dữ liệu thường xuất hiện với nhau trong các tập dữ liệu Luật kết hợp được ứng dụng nhiều trong lĩnh vực kinh doanh, tin-sinh, tài chính, thị trường chứng khoáng, y học…
Hồi quy: Là một kỹ thuật phân tích dữ liệu dùng thống kê để xây dựng
các mô hình dự báo cho các trường dự báo có giá trị liên tục Kỹ thuật tự động xác định một công thức toán học mà cực tiểu hóa một vào phép đo lỗi giữa cái
Trang 20dự báo từ mô hình hồi quy với dữ liệu thực
Mạng Nơron: Là một trong những kỹ thuật KPDL được ứng dụng phổ
biến Kỹ thuật này phát triển dựa trên một nền tảng toán học vững vàng, khả năng huấn luyện trong kỹ thuật này dựa trên mô hình thần kinh trung ương
của con người
Kết quả mà mạng nơron học được có khả năng tạo ra các mô hình dự báo, dự đoán với độ chính xác và độ tin cậy cao Có khả năng phát hiện ra được các xu hướng phức tạp mà kỹ thuật thông thường khác khó có thể phát hiện ra Tuy nhiên về phương pháp mạng nơron rất phức tạp và quá trình tiến hành gặp rất nhiều khó khăn đòi hỏi mất nhiều thời gian, nhiều lần kiểm tra thử nghiệm, nhiều dữ liệu
Ứng dụng của khai phá dữ liệu
1.1.4
KPDL tuy là một hướng tiếp cận mới nhưng đã thu hút được rất nhiều sự quan tâm của các nhà nghiên cứu và phát triển nhờ vào những ứng dụng thực tiễn của nó Một số ứng dụng điển hình của KPDL:
Kinh doanh thương mại: Xác định thói quen mua hàng của khách hàng,
dự đoán chu kỳ kinh doanh sản phẩm
Ngân hàng: Dự đoán các dấu hiệu của một giao dịch trái luật, dự đoán rủi ro của các khoản cho vay
Điều trị y học và chăm sóc y tế: Một số thông tin về chẩn đoán bệnh lưu trong các hệ thống quản lý bệnh viện Phân tích mối liên hệ giữa các triệu chứng bệnh, chẩn đoán (chế độ dinh dưỡng, tư vấn, thuốc )
Bảo hiểm: Loại khách hàng có rủi ro cao, gian lận Liệu khách hàng có thực hiện hết hợp đồng bảo hiểm, dự đoán đối tượng, vùng nào có khả năng tham gia bảo hiểm
Sản xuất và chế biến: Quy trình, phương pháp chế biến và xử lý sự cố
Text mining và Web mining: Phân lớp văn bản và các trang Web, tóm tắt văn bản,
Trang 21Lĩnh vực khoa học: Quan sát thiên văn, dữ liệu gene, dữ liệu sinh vật học, tìm kiếm, so sánh các hệ gene và thông tin di truyền, mối liên hệ gene và một số bệnh di truyền,
Mạng viễn thông: Phân tích các cuộc gọi điện thoại và hệ thống giám sát lỗi, sự cố, chất lượng dịch vụ,
Tổng quan ứng dụng khai phá dữ liệu vào hỗ trợ chẩn đoán 1.1.5
bệnh trong y tế
Ngành y tế và giáo dục luôn là vấn đề sống còn của bất kỳ quốc gia nào trên thế giới Trong những năm gần đây, chính phủ Việt Nam đặc biệt đầu tư cho hai ngành mũi nhọn này thông qua các chính sách, nguồn vốn dành cho trang bị hạ tầng và nghiên cứu khoa học Trong lĩnh vực nghiên cứu khoa học, càng ngày có nhiều công trình khoa học về y tế Tuy nhiên các nghiên cứu khoa học về ứng dụng công nghệ thông tin để giải quyết các bài toán về y tế là không nhiều
Thời gian qua cũng có những đề tài ứng dụng KPDL để xây dựng
một hệ thống nhằm chẩn đoán bệnh như: Hoàng Thị Thanh Hiền, ứng
dụng khai phá dữ liệu để xây dựng hệ thống chẩn đoán bệnh trầm cảm cho học sinh phổ thông, Đại học Đà Nẵng Trương Minh Văn, ứng dụng khai phá dữ liệu chẩn đoán bệnh sốt xuất huyết, Đại học Lạc Hồng
Nguyễn Đức Phong, ứng dụng khai phá dữ liệu xây dựng hễ thống hỗ trợ
chẩn đoán bệnh tim mạch, Đại học Đà Nẵng Mục tiêu của các đề tài trên
là nghiên cứu về KPDL và ứng dụng vào xây dựng hệ thống chẩn đoán bệnh, và đã đạt được những kết quả khả quan
Nghiên cứu thường được tiến hành theo 4 bước chính: Tìm hiểu nghiệp vụ y tế liên quan đến bệnh hen phế quản và viêm phế quản; Thu thập và tiền xử lý dữ liệu; 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 với yêu cầu bài toán đặt ra và dữ liệu thu
Trang 22thập được; Hiện thực chương trình máy tính và đánh giá ý nghĩa thực tiễn
1.2 PHÂN LỚP TRONG KHAI PHÁ DỮ LIỆU
Phân lớp dữ liệu
1.2.1
Phân lớp dữ liệu (classification) là gán các mẫu mới vào các lớp với
độ chính xác cao nhất để dự báo cho các bộ dữ liệu (mẫu) mới
Đầu vào là một tập các mẫu dữ liệu huấn luyện, với một nhãn phân lớp cho mỗi mẫu dữ liệu Đầu ra là mô hình dự đoán (bộ phân lớp) dựa
trên tập huấn luyện và những nhãn phân lớp
Quá trình phân lớp dữ liệu
Trang 23Hình 1.3 Xây dựng mô hình phân lớp
Bước thứ 2: Sử dụng mô hình
Bước thứ hai dùng mô hình đã xây dựng ở bước thứ nhất để phân lớp
dữ liệu mới Trước tiên độ chính xác mang tính chất dự đoán của mô hình phân lớp vừa tạo ra được ước lượng Holdout là một kỹ thuật đơn giản để ước lượng độ chính xác đó Kỹ thuật này sử dụng một tập dữ liệu kiểm tra với các mẫu đã được gán nhãn lớp Các mẫu này được chọn ngẫu nhiên và độc lập với các mẫu trong tập dữ liệu đào tạo Độ chính xác của mô hình trên tập dữ liệu kiểm tra đã đưa là tỉ lệ phần trăm các các mẫu trong tập dữ liệu kiểm tra được mô hình phân lớp đúng (so với thực tế) Nếu độ chính xác của mô hình được ước lượng dựa trên tập dữ liệu đào tạo thì kết quả thu được là rất khả quan vì mô hình luôn có xu hướng “quá vừa” dữ liệu Quá vừa dữ liệu là hiện tượng kết quả phân lớp trùng khít với dữ liệu thực
tế vì quá trình xây dựng mô hình phân lớp từ tập dữ liệu đào tạo có thể đã kết hợp những đặc điểm riêng biệt của tập dữ liệu đó Do vậy, cần sử dụng một tập dữ liệu kiểm tra độc lập với tập dữ liệu đào tạo
Dữ liệu huấn luyện
Bộ phân lớp (Mô hình) Thuật toán phân lớp
IF KhoKhe = „Có‟ OR SoMui=‟Co‟
THEN Benh = „HPQ‟
Trang 24Hình 1.4 Ước lượng độ chính xác
Nếu độ chính xác của mô hình là chấp nhận được, thì mô hình được
sử dụng để phân lớp những dữ liệu tương lai, hoặc những dữ liệu mà giá trị của thuộc tính phân lớp là chưa biết
Hình1.5 Phân lớp dữ liệu mới
Trong mô hình phân lớp, thuật toán phân lớp giữ vai trò trung tâm, quyết định tới sự thành công của mô hình phân lớp Do vậy chìa khóa của vấn đề phân lớp dữ liệu là tìm ra được một thuật toán phân lớp nhanh, hiệu quả, có độ chính xác cao và có khả năng mở rộng được Trong đó khả năng mở rộng được của thuật toán được đặc biệt chú trọng và phát triển
Trang 25Đánh giá độ chính xác của mô hình phân lớn
1.2.3
Ước lượng độ chính xác của bộ phân lớp là quan trọng vì nó cho phép dự đoán được độ chính xác của các kết quả phân lớp những dữ liệu tương lai (chưa biết) Độ chính xác còn giúp so sánh các mô hình phân lớp khác nhau Ở đây chỉ đề cập đến 2 phương pháp đánh giá phổ biến là
holdout và kiểm tra chéo (k-fold cross-validation) Cả 2 kỹ thuật này đều
dựa trên các phân hoạch ngẫu nhiên tập dữ liệu ban đầu
Trong phương pháp holdout, dữ liệu đưa ra được phân chia ngẫu nhiên thành 2 phần là: Tập dữ liệu đào tạo và tập dữ liệu kiểm tra Thông thường 2/3 dữ liệu cấp cho tập dữ liệu đào tạo, phần còn lại cho tập dữ liệu kiểm tra
Hình 1.6 Ước lượng độ chính xác của mô hình bằng phương pháp
holdout
Trong phương pháp k-fold cross validation tập dữ liệu ban đầu được
chia ngẫu nhiên thành k tập con (fold) có kích thước xấp xỉ nhau S1, S2, …,
Sk Quá trình học và test được thực hiện k lần Tại lần lặp thứ i, Si là tập dữ
liệu kiểm tra, các tập còn lại hợp thành tập dữ liệu đào tạo Có nghĩa là, đầu
tiên việc dạy được thực hiện trên các tập S2, S3 …, Sk, sau đó test trên tập S1; tiếp tục quá trình dạy được thực hiện trên tập S1, S3, S4,…, Sk, sau đó test trên tập S2; và cứ thế tiếp tục Độ chính xác là toàn bộ số phân lớp đúng từ k lần
lặp chia cho tổng số mẫu của tập dữ liệu ban đầu
Mô hình phân lớp
Ước tính chính xác
Dữ liệu
Dữ liệu huấn luyện
Dữ liệu kiểm tra
Trang 261.3 KỸ THUẬT KHAI PHÁ DỮ LIỆU BẰNG CÂY QUYẾT ĐỊNH
Giới thiệu chung
1.3.1
Trong lĩnh vực học máy, DT (cây quyết định) là một kiểu mô hình dự báo (predictive model), nghĩa là một ánh xạ từ các quan sát về một sự vật/hiện tượng tới các kết luận về giá trị mục tiêu của sự vật/hiện tượng Mỗi nút trong (internal node) tương ứng với một biến Đường nối giữa nó với nút con của nó thể hiện giá trị cụ thể cho biến đó Mỗi nút lá đại diện cho giá trị dự đoán của biến mục tiêu, cho trước các giá trị dự đoán của các biến được biểu diễn bởi đường đi từ nút gốc tới nút lá đó Kỹ thuật học máy dùng trong DT được gọi là học bằng cây quyết định, hay chỉ gọi với cái tên ngắn gọn là cây quyết định [12]
Ví dụ: Một người có chơi tennis hay không?
Hình 1.7 Cây quyết định cho việc chơi Tennis
Cây ở hình 1.7 trên ta thấy:
Gốc (quang cảnh): Nút trên cùng của cây
Nút trong (độ ẩm, gió): Biểu diễn một kiểm tra trên một thuộc tính đơn
Trang 27Nhánh (mũi tên): Biểu diễn các kết quả của kiểm tra trên nút trong
Nút lá (có chơi, không chơi): Biểu diễn lớp hay sự phân phối lớp (quyết định)
Để phân lớp mẫu dữ liệu chưa biết giá trị, các thuộc tính của mẫu được đưa vào kiểm tra trên DT Mỗi mẫu tương ứng có một đường đi từ gốc đến lá và lá biểu diễn dự đoán giá trị phân lớp mẫu đó
Biểu diễn cây quyết định
1.3.2
DT phân lớp các trường hợp cụ thể bằng cách sắp đặt chúng từ trên xuống và bắt đầu từ nút gốc rồi đi xuống các nút lá:
Mỗi nút trong biểu diễn một thuộc tính cần kiểm tra giá trị (an attribute to be tested)
Mỗi nhánh từ một nút sẽ tương ứng với một giá trị có thể có của thuộc tính gắn với nút đó
Mỗi nút lá biểu diễn một phân lớp (a classification)
Một DT học được sẽ phân lớp đối với một ví dụ, bằng cách duyệt cây
từ nút gốc đến một nút lá → Nhãn lớp gắn với nút lá đó sẽ được gán cho ví
dụ cần phân lớp
Một DT biểu diễn một phép tuyển (disjunction) các kết hợp (conjunctions) của các ràng buộc đối với các kết hợp của các ràng buộc đối với các giá trị thuộc tính của các ví dụ
Mỗi đường đi (path) từ nút gốc đến một nút lá sẽ tương ứng với một kết hợp của các kiểm tra giá trị thuộc tính (attribute tests)
Các bước chính xây dựng cây quyết định
1.3.3
Quá trình xây dựng DT bao gồm 2 giai đoạn: Tạo cây và tỉa cây Tạo cây: Thực hiện chia một cách đệ quy tập mẫu dữ liệu huấn luyện cho đến khi các mẫu ở nút lá thuộc cùng một lớp
Tỉa cây: Dùng để tối ưu hóa cây, là xác định và xóa những nhánh mà
Trang 28có phần tử hỗn loạn hoặc những phần tử nằm ngoài (những phần tử không thể phân vào một lớp nào đó)
Có rất nhiều biến đổi khác nhau về nòng cốt của thuật toán DT, nhưng chúng vẫn tuân theo các bước sau:
Cây được thiết lập từ trên xuống dưới và theo cách thức chia để trị
Ở thời điểm bắt đầu, các mẫu huấn luyện nằm ở gốc của cây
Thuộc tính được phân loại (rời rạc hóa các thuộc tính dạng phi số)
Chọn một thuộc tính để phân chia thành các nhánh Thuộc tính được chọn dựa trên độ đo thống kê
Tiếp tục lặp lại việc xây dựng cây quyết định cho các nhánh
Điều kiện để dừng việc phân chia:
Tất cả các mẫu rơi vào một nút thuộc về cùng một lớp (nút lá)
Không còn thuộc tính nào có thể dùng để phân chia mẫu nữa
Không còn lại mẫu nào tạo nút
Ưu điểm và nhược điểm của cây quyết định
1.3.4
Ưu điểm của cây quyết định
Cây quyết định tương đối dễ hiểu
Đòi hỏi mức tiền xử lý dữ liệu đơn giản
Có thể xử lý với cả các dữ liệu rời rạc và liên tục
Kết quả dự đoán bằng cây quyết định có thể thẩm định lại bằng cách kiểm tra thống kê
Nhược điểm của cây quyết định
Dù có những ưu điểm nổi bật trên, DT vẫn không tránh khỏi có những điểm yếu DT khó giải quyết với những dữ liệu thời gian liên tục nếu không bỏ ra nhiều công sức cho việc đặt ra sự biểu diễn dữ liệu theo các mẫu liên tục
Trang 291.4 THUẬT TOÁN ID3
Giới Thiệu
1.4.1
Thuật toán ID3 được phát biểu bởi J Ross Quinlan (trường đại học Sydney, Australia) và được công bố vào cuối thập niên 70 của thế kỷ 20 Sau đó, thuật toán ID3 được giới thiệu và trình bày trong mục Induction
on decision trees, machine learning năm 1986 ID3 được xem như là một cải tiến của thuật toán CLS (CLS được Hovland và Hint giới thiệu trong Concept learning System vào những năm 50 của thế kỷ 20) với khả năng lựa chọn thuộc tính tốt nhất để tiếp tục triển khai cây tại mỗi bước ID3 xây dựng DT từ trên-xuống (top – down)
Quinlan (1983) là người đầu tiên đưa việc sử dụng lý thuyết thông tin vào để tạo ra các DT Lý thuyết thông tin lại mang đến khái niệm về entropy để đo độ pha trộn hay ngược lại là tính thuần nhất của một tập hợp Một tập hợp là thuần nhất khi tất cả các phần tử của nó đều thuộc cùng một phân lớp, cũng có nghĩa là tập hợp này có độ pha trộn là thấp nhất Trong trường hợp của tập ví dụ, thì tập ví dụ là thuần nhất khi tất cả các ví dụ của nó đều có cùng giá trị phân loại
Xây dựng giải thuật
1.4.2
Entropy đo tính thuần nhất của tập dữ liệu: Dùng để đo tính thuần
nhất của một tập dữ liệu Entropy của một tập S được tính theo công thức
Entropy(S) = - P+ log2 (P+) - P- log2 (P-) (1.1) Trong trường hợp các mẫu dữ liệu có hai thuộc tính phân lớp "yes" (+), "no" (-) Ký hiệu P+ là để chỉ tỷ lệ các mẫu có giá trị của thuộc tính quyết định là "yes", và P-
là tỷ lệ các mẫu có giá trị của thuộc tính quyết định là "no" trong tập S
Trường hợp tổng quát, đối với tập con S có n phân lớp thì ta có công thức sau:
Trang 302 1
Cho tập dữ liệu S gồm có n thuộc tính Ai(i=1,2…n) giá trị Gain của thuộc tính A trong tập S ký hiệu là Gain(S, A) và đƣợc tính theo công thức sau:
( )
v value A
S Entropy S Entropy S
Hàm xây dựng cây quyết định trong thuật toán ID3
Function induce_tree (tập_ví_dụ, tập_thuộc_tính)
begin
if mọi ví dụ trong tập_ví_dụ đều nằm trong 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
Trang 31chọ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 tập_thuộc_tính;
với mỗi giá trị V của P
begin
tạo một nhánh của cây gán nhãn V;
Đặt vào phân_vùng V các ví dụ trong tập_ví_dụ có giá trị V tại thuộc tính P;
Gọi induce_tree (phân_vùng V, tập_thuộc_tính), gắn kết quả vào nhánh V
Trang 32 Dữ liệu ra: Mô hình cây quyết định chẩn đoán bệnh HPQ hay VPQ?
Trong ví dụ này các mẫu dữ liệu có hai thuộc tính phân lớp "HPQ" (+), "VPQ" (-) Ký hiệu P+ là để chỉ tỷ lệ các mẫu có giá trị của thuộc tính quyết định là "HPQ", và P- là tỷ lệ các mẫu có giá trị của thuộc tính quyết định là "VPQ" trong tập S
v nhanh binhthuong khotho
S Entropy S S
Trang 33Gain(S, nhịp thở) = 0.985 – ( 4
14)* 0 – ( 5
14)* 0.971 – ( 5
14)* 0.971 = 0.291 Thuộc tính “Đàm” =màu xanh, không, màu trắng
Smàu xanh = (0+, 5-); Skhông = (2+, 2-); Smàu trắng = (4+, 1-)
{mau xanh,khong, mau trang}
v
S Entropy S S
SCó = (2+, 6-); SKhông = (4+,2-)
Gain(S, sot)=Entropy(S)- S v Entropy S( v)
S
Trang 35Sau khi lập đƣợc cấp đầu tiên của cây quyết định ta lại xét nhánh đàm màu trắng
Tiếp tục lấy Entropy và Gain cho nhánh đàm màu trắng ta đƣợc hiệu suất nhƣ sau:
Hình 1.8 Cây quyết định chẩn đoán bệnh bằng thuật toán ID3
Luật rút ra từ cây quyết định:
Luật 1: if (Đàm = màu trắng) và (nhịp thở = khó thở) then chẩn đoán bệnh = HPQ
Luật 2: if (Đàm = màu trắng) và (nhịp thở = nhanh) then chẩn đoán bệnh= VPQ
Màu trắng Màu xanh Không
VPQ Đàm
Trang 36Luật 3: if (Đàm = màu xanh) then chẩn đoán bệnh = VPQ
Luật 4: if (Đàm = không) và (sốt = có) then chẩn đoán bệnh = VPQ Luật 5: if (Đàm = không) và (sốt = không) then chẩn đoán bệnh = HPQ
Nhận xét về thuật toán
1.4.4
Ưu điểm của thuật toán:
Sử dụng thuật tìm kiếm leo đồi (hill - climbing) dựa trên giá trị Gain
để tìm kiếm các thuộc tính trong toàn bộ DT
Đầu ra (Output) chỉ là một giả thuyết đơn (1 kết quả duy nhất)
Sử dụng dữ liệu huấn luyện ở từng bước, trái ngược với những thuật giải phát triển mở rộng DT (có thể hạn chế được kích thước cây không quá lớn)
Sử dụng các thuộc tính tĩnh hạn chế tối đa lỗi cho những bản ghi dữ liệu riêng lẻ, có thể ảnh hưởng tới toàn bộ dự án
Kiểm soát được dữ liệu rác, dữ liệu tạp bên ngoài bằng cách giảm bớt yêu cầu tiêu chuẩn cho việc chấp nhận những dữ liệu chưa hoàn chỉnh
Những hạn chế của thuật toán:
Không xử lý các thuộc tính có kiểu giá trị liên tục (kiểu số thực)
Không thích ứng được với những tập dữ liệu tạp (dễ phát sinh lỗi)
Không hiệu quả khi xuất hiện những dữ liệu không mong muốn
DT khi sinh ra lớn, rườm rà, chưa được tối ưu ở mức tối đa có thể
Không có khả năng xử lý các ví dụ học thiếu giá trị thuộc tính (missing-value attributes)
Trang 37cho phép xử lý trên tập dữ liệu có các thuộc tính số (numeric atributes) và làm việc đƣợc với tập dữ liệu bị thiếu và bị nhiễu Nó thực hiện phân lớp tập mẫu dữ liệu theo chiến lƣợc ƣu tiên theo chiều sâu (Depth – First) Thuật toán xét tất cả các phép thử có thể để phân chia tập dữ liệu đã cho
và chọn ra một phép thử có giá trị GainRatio tốt nhất GainRatio là một đại lƣợng để đánh giá độ hiệu quả của thuộc tính dùng để thực hiện phép tách trong thuật toán để phát triển DT
GainRatio đƣợc xác định bởi công thức sau:
( , ) ( , )
Gain S A GainRatio S A
Split omation S A
Trong đó:
Cách tính của Entropy và Gain có ở công thức 1.2 và 1.3
SplitInfomation(S, A) là độ đo độ phân chia thông tin thuộc tính A theo S Cho biết thông tin tiềm ẩn đƣợc tạo ra bằng cách chia tập A trong n tập con, với mỗi tập con tạo ra tính toán tỷ lệ của số bộ trong tập con này so với tổng số bộ dữ liệu trong tập A Công thức tính nhƣ sau
1
log ,
Với Si là tập con của S chứa các ví dụ có thuộc tính A mang giá trị vi
Để ý rằng SplitInfomation thực sự chính là Entropy của S với sự liên quan trên những giá trị của thuộc tính A Trong thuật toán C4.5 tất cả các thuộc tính sẽ đƣợc tính toán độ đo GainRatio, thuộc tính nào có độ đo GainRatio lớn nhất sẽ đƣợc chọn làm thuộc tính phân chia
Xây dựng giải thuật
1.5.2
Thuật Toán C4.5
Dữ liệu vào: Tập dữ liệu E, tập thuộc tính F, tập nhãn lớp
Dữ liệu ra: Mô hình DT
Thuật toán:Tạo cây (tập dữ liệu E, tập thuộc tính F, tập nhãn lớp)
Trang 38Nếu điều kiện dừng (E,F)=Đúng
Nutla=CreaNode(); Nutla.nhanlop=phanlop(E); Return nutla
Lặp qua từng tập phân chia vV
Đặt Ev ={e| Nutgoc.điều kiện kiểm tra (e)=v và e E}
+ Tập dữ liệu thời tiết
+ Tập danh sách thuộc tính: Ngày, quang cảnh, nhiệt độ, độ ẩm, gió + Tập nhãn lớp: Có, không
Dữ liệu ra: Mô hình cây quyết định chơi tennis hay không?
Bảng 1.2 Tập dữ liệu ví dụ thuật toán C4.5
Ngày Quang cảnh Nhiệt độ Độ ẩm Gió Chơi tennis
Trang 39Ngày Quang cảnh Nhiệt độ Độ ẩm Gió Chơi tennis