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: 2.3 .1.1 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 - Tình trạng gia đình - Tiền sử bệnh
2.3.1.2 Triệu chứng lâm sàng
- Sốt ngày thứ mấy
- Huyết áp
- Có xuất huyết dưới da hay không
- Đau bụng - Ói mửa - Đau đầu, bức rức - …… 2.3 .1.3 Cận lâm sàng Xét nghiệm
- Dung tích hồng cầu (Hematocrit) Hct
- Bạch cầu
- Tiểu cầu
- Công thức máu
- ……
Chẩn đoán hình ảnh X quang- Siêu âm – Nội soi
- Siêu âm
- Chụp x quang - Nội soi dạ dày…..
2.3 .1.4 Tình trạng đến khám và nhập viện
- Tỉnh hay hôn mê.
- Đến khám (nhập viện) ngày thứ mấy của bệnh.
2.3.2 Phương pháp giải quyết
2.3.2.1 Phương pháp giải quyết công việc 1
Chọn ra các tập con đặc tính Ai
- 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 Nhi Đồng – Đồng Nai 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:
Thông tin hành chính
- 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 sốt xuất huyết Dengue[2][3].
Triệu chứng lâm sàng
- Chọn thuộc tính Sốt ngày thứ mấy,Huyết áp, Đau bụng,ói mửa còn thuộc tính, có xuất huyết dưới da hay không,đau đầu,bức rức không có giá trị dự đoán đoán SXH-VS[theo kinh nghiệm lâm sàng của chuyên gia bác sĩ bệnh viện Nhi – Đồng Nai],[3]
Cận lâm sàng
Xét nghiệm
- 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 SXH-VS [theo kinh nghiệm lâm sàng của chuyên gia bác sĩ bệnh viện Nhi – Đồng Nai],[2][3]
Chẩn đoán hình ảnh X quang - Siêu âm - Nội soi
- Chọn siêu âm [3] có giá trị chẩn đoán còn X quang và nội soi không có giá trị
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 bị sốt xuất huyết Dengue nhập viện càng muộn tỉ lệ vào sốc càng cao[2][3]
2.3.2.2 Phương pháp giải quyết công việc 2
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.3.2.3 Phương pháp giải quyết công việc 3
Phương pháp giải quyết cộng việc 3 là kết hợp phương pháp giải quyết công việc 1 và 2 để chuẩn hóa tập thuộc tính có đặc tính có tìm năng có liên quan đến chẩn đoán bệnh tốt nhất.
2.3.3 Tập thuộc tính sau khi canh tác dữ liệu
- Tuổi
- Huyết áp
- Đau bụng
- Ói mửa
- Dung tích hồng cầu (Hematocrit) Hct
- Tiểu cầu
- Tỉnh hay hôn mê, đến khám (nhập viện) ngày thứ mấy của bệnh.
2.4 KẾT CHƯƠNG
Chương II đã trình bày các nội dung chính sau:
- Giới thiệu khái niệm khai phá dữ liệu có canh tác dữ liệu. - Các quy trình và các phương pháp khai phá dữ liệu có canh tác
dữ liệu.
- Ứng dụng canh tác dữ liệu y khoa cụ thể là bệnh nhân sốt xuất huyết.
Kỹ thuật khai phá dữ liệu là công cụ quan trọng trong quá trình KDD và KPDL. KPDL thành công hay không phụ thuộc vào kỹ thuật khai phá, kỹ thuật khai phá ví như đào núi tìm vàng phải nhờ vào công cụ khai phá tinh vi thì mới có thể dễ dàng tìm ra vàng. Chương kế tiếp sẽ trình bày kỹ thuật khai phá dữ liệu bằng cây quyết định. Đây là một trong những kỹ thuật phân lớp dữ liệu đơn giản nhưng mạnh mẽ được ứng dụng thành công trong phân lớp dữ liệu.
Chương III
KỸ THUẬT KHAI PHÁ DỮ LIỆU BẰNG CÂY QUYẾT ĐỊNH
3.1 CÂY QUYẾT ĐỊNH
3.1.1 Khái niệm
Cây quyết định là một cấu trúc biễu diễn dưới dạng cây. Trong đó, mỗi node trong (internal node) biễu diễn một thuộc tính, mỗi nhánh (branch) biễu diễn giá trị có thể có của thuộc tính, mỗi lá (leaf node) biểu diễn các lớp quyết định và đỉnh trên cùng của cây gọi là gốc (root).
Hình 3.1 Biễu diễn cây quyết định cơ bản
Trong lĩnh vực học máy, 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 cây quyết định
Root
Internal node Leaf node
Leaf node Leaf node
đượ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 [10].
Ví dụ 3.1: Một người có chơi tennis hay không?
Hình 3.2 Cây quyết định cho việc chơi Tennis
Cây quyết định (Decision Tree) là một cây phân cấp có cấu trúc được dùng để phân lớp các đối tượng dựa vào dãy các luật (series of rules). Các thuộc tính của đối tượng (ngoại trừ thuộc tính phân lớp – Category attribute) có thể thuộc các kiểu dữ liệu khác nhau (Binary, Nominal, ordinal, quantitative values) trong khi đó thuộc tính phân lớp phải có kiểu dữ liệu là Binary hoặc Ordinal.
Tóm lại, cho dữ liệu về các đối tượng gồm các thuộc tính cùng với lớp (classes) của nó, cây quyết định sẽ sinh ra các luật để dự đoán lớp của các đối tượng chưa biết (unseen data).
3.1.2 Biểu diễn cây quyết định
Cây quyết định phân lớp các trường hợp cụ thể [10] bằng cách sắp đặt chúng từ trên xuống và bắt đầu từ nút gốc và đi xuống các nút lá:
Yes false Normal Humidity No Yes High No True Outlook
Sunny overcast rain
Windy
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) đối với các ví dụ kiểm tra giá trị (an attribute to be tested) đối với các ví dụ.
Mỗi nhánh từ một nút sẽ tương ứng với một giá trị có thể của thuộc tính gắn với nút đó trị có thể 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 cây quyết định 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 cây quyết định biểu diễn một phép tuyển (disjunction) của các kết hợp (conjunctions) của các ràng buộc đối với của các kết hợp (conjunctions) 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 (conjunction) của các kiểm tra giá trị thuộc tính (attribute tests).
Cây quyết định (bản thân nó) chính là một phép tuyển (disjunction) của các kết hợp (conjunctions) này.
Ví dụ 3.2:
Trở lại ví dụ 3.1 ở trên, ta hoàn toàn có thể biểu diễn cây quyết định bằng đại số quan hệ như sau để thể hiện quyết định chơi tennis:
[(Outlook=Sunny) ∧∧∧∧ (Humidity=Normal)]
∨(Outlook=Overcast) ∨∨∨∨ (Outlook Overcast)
∨ [(Outlook=Rain) ∧∧∧∧ (Wind=Weak)] 3.1.3 Các bước chính xây dựng cây quyết định
Có nhiều thuật toán khác nhau để xây dựng cây quyết định như: CLS, ID3, C4.5, SLIQ, SPRINT, C5.0…Nhưng nói chung quá trình xây dựng cây quyết định đều được chia ra làm 3 giai đoạn cơ bản:
a.Xây dựng 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 ở mối nút lá thuộc cùng một lớp
b.Cắt tỉa cây: Là việc làm dùng để tối ưu hoá cây. Cắt tỉa cây chính là việc trộn một cây con vào trong một nút lá.
c.Đánh giá cây: Dùng để đánh giá độ chính xác của cây kết quả. Tiêu chí đánh giá là tổng số mẫu được phân lớp chính xác trên tổng số mẫu đưa vào.
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) }
3.1.4 Cây quyết định so với kỹ thuật khai phá khác
So với các phương pháp KPDL khác, cây quyết định là một trong những hình thức mô tả dữ liệu tương đối đơn giản, trực quan, dễ hiểu đối với người dùng nhưng lại hiệu quả nên được sử dụng nhiều. Trong những năm qua, nhiều mô hình phân lớp dữ liệu đã được các nhà khoa học trong nhiều lĩnh vực khác nhau đề xuất như mạng notron, mô hình thống kê tuyến tính /bậc 2, cây quyết định, mô hình di truyền... Trong số những mô hình đó, cây quyết định được đánh giá là một công cụ mạnh, phổ biến đặt biệt là thích hợp cho DM nói chung cho phân lớp dữ liệu nói riêng.
3.1.4.1 Một số ưu điểm của cây quyết định
Cây quyết định có những ưu điểm sau: [7][10]
Khả năng sinh ra các quy tắc hiểu được
Cây quyết định có khả năng sinh ra các quy tắc dễ dịch (if … then …) hoặc có thể chuyển đổi được sang tiếng Anh hoặc SQL. Đây là ưu điểm nổi bật của kỹ thuật này. Thậm chí với những tập dữ liệu lớn khiến cho hình dáng
cây quyết định lớn và phức tạp, việc đi theo bất cứ đường nào trên cây là dễ dàng theo nghĩa phổ biến và rõ ràng. Do vậy sự giải thích cho bất cứ một sự phân lớp hay dự đoán nào đều tương đối minh bạch. Do đó mọi người có thể hiểu mô hình cây quyết định thông qua giải thích ban đầu.
Khả năng thực thi trong những lĩnh vực hướng quy tắc
Điều này có nghe có vẻ hiển nhiên, nhưng quy tắc quy nạp nói chung và cây quyết định nói riêng là lựa chọn hoàn hảo cho những lĩnh vực thực sự là các quy tắc. Rất nhiều lĩnh vực từ di truyền tới các quá trình công nghiệp thực sự chứa các quy tắc ẩn, không rõ ràng (underlying rules) do khá phức tạp và tối nghĩa bởi những dữ liệu lỗi (noisy). Cây quyết định là một sự lựa chọn tự nhiên khi chúng ta nghi ngờ sự tồn tại của các quy tắc ẩn, không rõ ràng.
Dễ dàng tính toán trong khi phân lớp
Mặc dù như chúng ta đã biết, cây quyết định có thể chứa nhiều định dạng, nhưng trong thực tế, các thuật toán sử dụng để tạo ra cây quyết định thường tạo ra những cây với số phân nhánh thấp và các test đơn giản tại từng node. Những test điển hình là: so sánh số, xem xét phần tử của một tập hợp, và các phép nối đơn giản. Khi thực thi trên máy tính, những test này chuyển thành các toán hàm logic và số nguyên là những toán hạng thực thi nhanh và không đắt. Đây là một ưu điểm quan trọng bởi trong môi trường thương mại, các mô hình dự đoán thường được sử dụng để phân lớp hàng triệu thậm trí hàng tỉ bản ghi.
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
Cây quyết định xử lý “tốt” như nhau với thuộc tính liên tục và thuộc tính rời rạc. Tuy rằng với thuộc tính liên tục cần nhiều tài nguyên tính toán hơn.
Thể hiện rõ ràng những thuộc tính tốt nhất
Các thuật toán xây dựng cây quyết định đưa ra thuộc tính mà phân chia tốt nhất tập dữ liệu đào tạo bắt đầu từ node gốc của cây. Từ đó có thể thấy những thuộc tính nào là quan trọng nhất cho việc dự đoán hay phân lớp.
Quá trình xây dựng cây tương đối đơn giản
Dữ liệu dùng cho cây quyết định chỉ là những dữ liệu căn bản hoặc có thể không cần thiết. Một số kỹ thuật khác có thể đòi hỏi dữ liệu chuẩn, tạo các biến giả và loại bỏ đi các giá trị trống. Quá trình xây dựng cây tương đối nhanh. 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ê.
Có khả năng thực hiện tốt đối với dữ liệu lớn trong thời gian ngắn
Một lượng lớn dữ liệu có thể được phân tích bằng máy tính cá nhân trong thời gian ngắn đủ để người sử dụng đưa ra quyết định dựa trên sự phân tích đó.
Chính những điểm mạnh này mà liên tục trong nhiều năm qua, cây quyết định được bình chọn là giải thuật được sử dụng nhiều nhất và thành công nhất. Được ứng dụng thành công trong hầu hết các lãnh vực về phân tích dữ liệu, phân loại text, spam, phân loại gien, etc
Có rất nhiều giải thuật sẵn dùng : CART (Breiman et al., 1984), C4.5 (Quinlan, 1993), etc
3.1.4.2 Một số điểm yếu của cây quyết định
Song song những sức mạnh nổi bật trên, cây quyết định cũng có điểm yếu. Đó là:
- Cây quyết định không thích hợp lắm với mục tiêu là dự đoán giá trị của thuộc tính liên tục như thu nhập, huyết áp hay lãi xuất ngân hàng.. Cây quyết định cũng khó giải quyết với thời gian liên tục.
- Dễ xảy ra lỗi khi có nhiều lớp. Một số cây quyết định chỉ thao tác với lớp giá trị nhị phân dạng yes/no hay acept/reject. Dễ xảy ra lỗi khi số ví dụ đào tạo là nhỏ và càng nhanh hơn với cây mà có nhiều tầng hay có nhiều nhánh trên một node.
- Chi phí tính toán đắt để học: do phải đi qua nhiều node để đến node lá cuối cùng. Tại từng node, cần tính toán mật độ (hay tiêu chuẩn phân chia) trên từng thuộc tính, với thuộc tính liên tục phải thêm thao tác
sắp xếp lại tập dữ liệu theo thứ tự giá trị của từng thuộc tính đó. Sau đó mới có thể chọn được một thuộc tính phát triển và tương ứng là một phân chia tốt nhất.
3.2 MỘT SỐ THUẬT TOÁN KPDL BẰNG CÂY QUYẾT ĐỊNH
Hầu hết các thuật toán đã được phát triển cho việc học cây quyết định [10] là các biến thể trên một thuật toán cốt lõi. Thuật toán đã sử dụng phương pháp tìm kiếm tham lam và từ trên xuống (top-down, greedy) thông qua không gian có thể của cây quyết định. Mục đích của luân văn làm thế nào chọn thuộc tính có đặt tính tốt nhất cho mô hình khai phá dữ liệu. Do đó tôi chỉ trình bài một cách tổng quan 3 thuật toán điển hình sau: ID3 (Quinlan 1986)[12], C4.5 (Quinlan 1993) và SPRINT(do 3 tác giả John Shafer, Rakesh Agrawal, Manish Mehta đề xuất năm 1996)[8].
3.2.1 Thuật toán ID3 3.2.1.1 Lịch sử phát triển 3.2.1.1 Lịch sử phát triển
Thuật toán ID3 là một trong những thuật toán trong khai phá dữ liệu. Là một thuật toán học đơn giản nhưng tỏ ra thành công trong nhiều lĩnh vực. ID3 là một thuật toán hay vì cách biểu diễn tri thức học được của nó, tiếp cận của nó trong việc quản lý tính phức tạp, heuristic của nó dùng cho việc chọn lựa các khái niệm ứng viên, và tiềm năng của nó đối với việc xử lý dữ liệu nhiễu. ID3 biểu diễn các khái niệm ở dạng các cây quyết định. Biểu diễn này cho phép chúng ta xác định phân loại của một đối tượng bằng cách kiểm tra các giá trị của nó trên một số thuộc tính nào đó.
Thuật toán ID3 được phát biểu bởi Quinlan (trường đại học Syney, 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 cây quyết định từ trên- xuống (top -down) [6].
3.2.1.2 Mã giã giải thuật 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;