2.2.2 Đánh giá cây quyết định
2.2.2.1 Ưu điểm của cây quyết định
So với các phương pháp khai phá dữ liệu khác, cây quyết định là phương pháp có
một số ưu điểm:
Cây quyết định dễ hiểu. Người ta có thể hiểu mơ hình cây quyết định sau khi được giải thích ngắn gọn.
Việc chuẩn bị dữ liệu cho một cây quyết định là cơ bản hoặc khơng cần thiết. Các
kỹ thuật khác thường địi hỏi chuẩn hóa dữ liệu, cần tạo các biến phụ (dummy variable)
và loại bỏ các giá trị rỗng.
Cây quyết định có thể xử lý cả dữ liệu có giá trị bằng số và dữ liệu có giá trị là tên
thể loại. Các kỹ thuật khác thường chuyên để phân tích các bộ dữ liệu chỉ gồm một loại
biến. Chẳng hạn, các luật quan hệ chỉ có thể dùng cho các biến tên, trong khi mạng
nơ-
Cây quyết định có thể xử lý tốt một lượng dữ liệu lớn trong thời gian ngắn. Có thể dùng máy tính cá nhân để phân tích các lượng dữ liệu lớn trong một thời gian đủ ngắn để cho phép các nhà chiến lược đưa ra quyết định dựa trên phân tích của cây quyết định.
2.2.2.2 Nhược điểm cây quyết định
Dù có những sức mạnh nổi bật trên, cây quyết định vẫn khơng tránh khỏi có những điểm yếu.
Khơng thích hợp với những bài tốn dự đốn giá trị của thuộc tính liên tục: Cây quyết định khơng thích hợp lắm với những bài tốn có mục tiêu dự đốn các thuộc tính có giá trị liên tục như: thu nhập, huyết áp hay lãi suất ngân hàng,... Cây quyết định cũng 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.
Dễ xảy ra lỗi khi có quá nhiều lớp: Một số cây quyết định chỉ thao tác với những lớp giá trị nhị phân dạng yes/no hay accept/reject. Số khác lại có thể chỉ định các bản ghi vào một số lớp bất kỳ, nhưng dễ xảy ra lỗi khi số ví dụ đào tạo ứng với một lớp là nhỏ. Điều này xảy ra 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 tốn đắt để đào tạo: Điều này nghe có vẻ mâu thuẫn với khẳng định ưu điểm của cây quyết định ở trên. Nhưng quá trình phát triển cây quyết định đắt về mặt tính tốn. Vì cây quyết định có rất nhiều node trong trước khi đi đến lá cuối cùng. Tại từng node, cần tính một độ đo (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 xắp xếp lại tập dữ liệu theo thứ tự giá trị của 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. Một vài thuật toán sử dụng tổ hợp các thuộc tính kết hợp với nhau có trọng số để phát triển cây quyết định. Quá trình cắt cụt cây cũng “đắt” vì nhiều cây con ứng cử phải được tạo ra và so sánh.
2.2.3 Xây dựng cây quyết định
Quá trình xây dựng cây quyết định gồm hai giai đoạn: phát triển cây và cắt tỉa cây quyết định.
Giai đoạn thứ nhất phát triển cây quyết định: Giai đoạn này phát triển bắt đầu từ gốc, đến từng nhánh và phát triển quy nạp theo cách thức chia để trị cho tới khi đạt được cây quyết định với tất cả các lá được gán nhãn lớp.
Giai đoạn thứ hai cắt và tỉa bớt các cành nhánh trên cây quyết định. Giai đoạn này nhằm mục đích đơn giản hóa và khái qt hóa từ đó làm tăng độ chính xác của cây quyết định bằng cách loại bỏ sự phụ thuộc vào mức độ nhiễu (noise) của training data mang tính chất thống kê, hay những sự biến đổi mà có thể là đặc tính riêng biệt của training data. Giai đoạn này chỉ truy cập dữ liệu trên cây quyết định đã được phát triển trong giai đoạn trước và quá trình thực nghiệm cho thấy giai đoạn này khơng tốn nhiều tài ngun tính tốn, như với phần lớn các thuật toán, giai đoạn này chiếm khoảng dưới 1% tổng thời gian xây dựng mơ hình phân lớp. Do vậy, ở đây chúng ta chỉ tập trung vào nghiên cứu giai đoạn phát triển cây quyết định.
Giải thuật cơ bản được chia thành các bước như sau:
• Bước 1: Cây được xây dựng đệ qui từ trên xuống dưới (top-down) và theo cách thức chia để trị (divide-conquer).
• Bước 2: Ở thời điểm bắt đầu, tất cả những ví dụ huấn luyện ở gốc.
• Bước 3: Thuộc tính được phân loại (nếu là giá trị liên tục chúng được rời rạc hóa).
• Bước 4: Những ví dụ huấn luyện được phân chia đệ qui dựa trên thuộc tính mà nó chọn lựa.
• Bước 5: Kiểm tra những thuộc tính được chọn dựa trên nền tảng của heristic hoặc của một định lượng thống kê.
Điều kiện để dừng việc phân chia:
• Tất cả những mẫu huấn luyện đối với một nút cho trước thuộc về cùng một lớp.
• Khơng cịn thuộc tính cịn lại nào để phân chia tiếp. • Khơng cịn mẫu nào cịn lại.
Trên cơ sở giải thuật cơ bản như đã nêu trên, đã có nhiều nghiên cứu để xây dựng
cây quyết định mà nổi bật là các thuật toán CART, ID3, C4.5. Các thuật toán này áp dụng giải thuật tham lam (greedy). Cách tiếp cận cây quyết định được xây dựng từ trên
Điểm khác biệt chính giữa các thuật tốn này chính là tiêu chuẩn (hay cịn gọi là
thuộc tính phân chia) và độ đo để chọn lựa.
2.2.4 Thuật tốn C4.5 trong cây quyết định
Có rất nhiều thuật tốn phân lớp bằng cây quyết định như CLS, ID3, C4.5, SLIQ, CART (Classification and Regression Tree),...Việc chọn thuật tốn nào để có hiệu quả phân lớp cao tùy thuộc vào rất nhiều yếu tố, trong đó cấu trúc dữ liệu ảnh hưởng rất lớn đến kết quả của các thuật toán. Chẳng hạn toán cây hồi qui phân loại (CART - Classification And Regression Tree) và C4.5 cho kết quả tốt trên các dữ liệu kiểu số (Numerical Data), trong khi đó thuật tốn ID3 cho kết quả tốt đối với dữ liệu định danh (Nominal Data).
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 • 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.
• Cắt tỉa cây: Là việc làm dùng để tối ưu hố 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á.
• Đá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ỷ lệ phân lớp chính xác trên tập mẫu đưa vào.
Thuật tốn C4.5 được phát triển và cơng bố bởi Quinlan vào năm 1996. Thuật toán C4.5 là một thuật toán được cải tiến từ thuật toán ID3 với việc cho 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.
Như vậy, nhiệm vụ của thuật toán C4.5 là học cây quyết định từ một tập các ví dụ
huấn luyện (training example) hay cịn gọi là dữ liệu huấn luyện (training data). Hay nói cách khác, giải thuật có:
• Đầu vào: Một tập hợp các ví dụ. Mỗi ví dụ bao gồm các thuộc tính mơ tả một
tình huống, hay một đối tượng nào đó, và một giá trị phân loại của nó. • Đầu ra: Cây quyết định có khả năng phân loại đúng đắn các ví dụ trong tập
dữ liệu huấn luyện, và hy vọng là phân loại đúng cho cả các ví dụ chưa gặp trong tương lai.
Cho tập mẫu S, C4.5 sinh ra cây quyết định ban đầu theo phương pháp chia để trị như sau:
• Nếu tất cả các mẫu trong S đều thuộc về cùng một lớp hay tập S nhỏ thì cây là một nút lá với nhãn là lớp xuất hiện nhiều nhấttrong S.
• Ngược lại, chọn một thuộc tính với hai hay nhiều “kết quả” trong tập thuộc tính. Tạo thuộc tính này là nút gốc của cây với mỗi nhánh là mỗi kết quả của thuộc tính, chia tập mẫu thành các tập con S1, S2, ..., Sk theo các kết quả của S, áp dụng cùng cách làm một các đệ qui cho các tập S1, ..., Sk.
C4.5 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 tố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 cây quyết định. GainRatio được tính dựa trên kết quả tính tốn đại lượng Information Gain theo cơng thức sau:
G a inR a t i O (X,T) = sp ↑^f<W'∩ (2.1)
Với: ⅛∕⅛nfo(X,T) = - X T log ' (2.2)
⅛Value(X) I T I I T I
Trong đó:
Value(X) là tập các giá trị của thuộc tính X.
Ti là tập con của tập T ứng với thuộc tính X = giá trị là vi.
Đối với các thuộc tính liên tục, chúng ta tiến hành phép thử nhị phân cho mọi giá trị của thuộc tính đó. Để thu thập được giá trị Entropy gain của tất cả các phép thử nhị phân một cách hữu hiệu ta tiến hành xắp xếp các dữ liệu theo giá trị của thuộc tính liên tục đó bằng thuật tốn Quicksort.
Thuật tốn xây dựng cây quyết định C4.5
Mơ tả thuật tốn dưới dạng giả mã như sau :
Else <Tạo một nút quyết định N>;
3. For <Với mỗi thuộc tính A> Do <Tính giá trị Gain(A)>;
4. <Tại nút N, thực hiện việc kiểm tra để chọn ra thuộc tính có giá trị Gain tốt nhất (lớn nhất). Gọi N.test là thuộc tính có Gain lớn nhất>;
5. If <Nếu N.test là thuộc tính liên tục> Then <Tìm ngưỡng cho phép tách của N.test>;
6. For <Với môi tập con T được tách ra từ tập T> Do ( T được tách ra theo quy tắc:
- Nếu N.test là thuộc tính liên tục tách theo ngưỡng ở bước 5
- Nếu N.test là thuộc tính phân loại rời rạc tách theo các giá trị
của thuộc tính này. )
7. { If <Kiểm tra, nếu T rỗng>} Then
<Gán nút con này của nút N là nút lá>; Else
8. <Gán nút con này là nút được trả về bằng cách gọi đệ qui lại đối với hàm xay dung cay(T'), với tập T'>;
} 9. <Tính tốn các lỗi của nút N>; <Trả về nút N>; } Một số công thức được sử dụng: Infox(T)=-∑jT∣ Info(T) (2.3) Gain( X) = Info(T)-Infox (T) (2.4)
Thuật toán C4.5 đã đưa ra các đại lượng GainRatio và SplitInfo (Splitinformation), chúng được xác định theo các công thức sau:
ʌ T í T' ____
SplitInfo
(X) =- ∑ ệ l0g2 lý I (2.5)
GainRatio( X) _ Gam(X^> (2.6)
SplitInfo(X)
Giá trị SplitInfo là đại lượng đánh giá thông tin tiềm năng thu thập được khi phân chia tập T thành n tập hợp con.
GainRatio là tiêu chuẩn để đánh giá việc lựa chọn thuộc tính phân loại. • Làm việc với dữ liệu bị thiếu
Thuật tốn vừa xây dựng dựa vào giả thuyết tất cả các mẫu dữ liệu có đủ các thuộc tính. Nhưng trong thực tế, xảy ra hiện tượng dữ liệu bị thiếu, tức là ở một số mẫu dữ liệu có những thuộc tính khơng được xác định, hoặc mâu thuẫn, hoặc khơng bình thường. Ta xem xét kỹ hơn với trường hợp dữ liệu bị thiếu. Đơn giản nhất là không đưa các mẫu với các giá trị bị thiếu vào, nếu làm như vậy thì có thể dẫn đến tình trạng thiếu các mẫu học. Giả sử T là một tập hợp gồm các mẫu cần được phân loại, X là phép kiểm tra theo thuộc tính L, U là số lượng các giá trị bị thiếu của thuộc tính L. Khi đó ta có: Info(T) = - Σk J=I freq(Cj,T) |T|-U *l0g2 ' freq(Cj, T ) ɔ I \T\-U ) (2.7) Infox(T) = - ∑- lι *l0g2(T) (2.8) j=1 |T|-U
Trong trường hợp này, khi tính tần số freq (Ci, T) ta chỉ tính riêng các mẫu với giá trị trên thuộc tính L đã xác định. Khi đó tiêu chuẩn (2.4) được viết lại bằng công thức (2.9) như sau:
| T | -U
Ngà
y Di Quang cảnhNắng Nhiệt độNóng Độ ẩmCao NhẹGió KhơngChơi tennis
D2 Nắng Nóng Cao Mạnh Khơng
D3 Am u Nóng Cao Nhẹ Co
Giả sử phép thử X có các giá trị O1, O2,.. ..On được lựa chọn theo tiểu chuẩn (2.9), ta cần xử lý như thế nào với các dữ liệu bị thiếu. Giả sử mẫu từ tập hợp T với đầu ra là Oi có liên quan đến tập hợp Ti thì khả năng mẫu đó thuộc tập hợp Ti là 1.
Giả sử mỗi mẫu trong Ti có một chỉ số xác định xác suất thuộc tập hợp Ti. Nếu mẫu có giá trị thuộc tính L thì có trọng số bằng 1. Nếu trong trường hợp ngược lại, thì mẫu này liên quan đến tập con T1, T2,.. .Tn với xác xuất tương ứng là :
∣T,I Td.........Td
T
∖∖ -U ,∖∖T -U '∖T \-U
Ta có thể dễ dàng thấy được rằng tổng các xác xuất này bằng 1. vɪ=1
⅛ ∣T∣ - U
Tóm lại, giải pháp này được phát biểu như sau: xác suất xuất hiện của các giá trị bị thiếu tỷ lệ thuận với xác suất xuất hiện của các giá trị khơng thiếu.
2.2.5 Ví dụ minh họa xây dựng cây quyết định
Nội dung bài toán: David là quản lý của một câu lạc bộ đánh golf nổi tiếng. Anh ta đang có rắc rối chuyện các thành viên đến hay khơng đến. Có ngày ai cũng muốn chơi golf nhưng số nhân viên câu lạc bộ lại khơng đủ phục vụ. Có hơm, khơng hiểu vì lý do gì mà chẳng ai đến chơi, và câu lạc bộ lại thừa nhân viên. Mục tiêu của David là tối ưu hóa số nhân viên phục vụ mỗi ngày bằng cách dựa theo thơng tin dự báo thời tiết để đốn xem khi nào người ta sẽ đến chơi golf. Để thực hiện điều đó, anh cần hiểu được tại sao khách hàng quyết định chơi và tìm hiểu xem có cách giải thích nào cho việc đó hay khơng. Vậy là trong hai tuần, anh ta thu thập thông tin về: Trời (outlook), nắng (sunny), nhiều mây (clouded) hoặc mưa (raining). Nhiệt độ (temperature) bằng độ F, độ ẩm (humidity), mức độ gió (windy) hay không. Và tất nhiên là số người đến chơi golf vào hơm đó. David thu được một bộ dữ liệu gồm 14 dòng và 5 cột.
Dĩĩ Nắng Ấm áp TB Mạnh Có
D12 Am u Ấm áp Cao Mạnh Có
Dĩ3 Am u Nóng TB Nhẹ Có
Tập dữ liệu này bao gồm 14 ví dụ. Mỗi ví dụ biểu diễn cho tình trạng thời tiết gồm các thuộc tính quang cảnh, nhiệt độ, độ ẩm và gió; và đều có một thuộc tính phân
loại “chơi Tennis” (có, khơng). “Khơng” nghĩa là khơng đi chơi tennis ứng với thời tiết
đó, và “Có” nghĩa là ngược lại. Giá trị phân loại ở đây chỉ có hai loại (có, khơng), hay
cịn ta nói phân loại của tập ví dụ của khái niệm này thành hai lớp (classes). Thuộc tính
‘Chơi tennis’ cịn được gọi là thuộc tính đích (target attribute).
Mỗi thuộc tính đều có một tập các giá trị hữu hạn. Thuộc tính quang cảnh có ba
giá trị (âm u, mưa, nắng), nhiệt độ có ba giá trị (nóng, mát, ấm áp), độ ẩm có hai giá trị
Hình 2.3 Cây quyết định cho khái niệm “có chơi tennis khơng”
Thực hiện các bước để xây dựng nên cây quyết định cho bài tốn trên: Cơ sở dữ liệu trên có 5 thuộc tính: OUTLOOK (thuộc tính rời rạc), TEMPERATURE (thuộc tính liên tục), HUMIDITY (thuộc tính liên tục), WINDY (thuộc tính rời rạc), PLAY (lớp)
• PLAY (5 Play, 9 Don’t Play).
• OUTLOOK: 5 sunny (3 Don’t Play, 2 Play), 4 overcast (4 Play), 5 rain (2 Don’t Play, 3 Play), TEMPERATURE, HUMIDITY, WINDY.
V E (PLAY) = E (5 Play, 9 Don’t Play) = - (5/14 log2 5/14 + 9/14
log29Z14) = 0.94.
V E (OUTLOOK) = 5/14 E (Sunny) + 4/14E (Overcast) + 5/14E (rain)
=
5/14 (3/5 log23/5 + 2/5 log22/5) + 4/14 (4/4 log24/4 + 0) + 5/14 (2/5 log22/5 + 3/5 log23/5) = 0.69.
J E (WINDY) = 8/14E (False) + 6/14 E (True) = 0.89.
Suy ra, ta có G (PLAY, OUTLOOK) là Max.
Khi đó, ta sẽ được một phần của cây quyết định như sau:
Hình 2.4 Xây dựng cây quyết định cho bài tốn Play Golf
E (TEMPERATURE) = 1/5E (<70.5) + 4/5E (≥70.5) = 0.736. E (HUMIDITY) = 2/5E (<77.5) + 3/5E (≥77.5) = 0.
E (WINDY) = 2/5E (True) + 3/5E (False) = 0.952.
÷G (OUTLOOK, HUMIDITY) là Max. Ta được cây như sau :
E (TEMPERATURE) = 3/5E (<70.5) + 2/5E (≥70.5) = 0.952. E (HUMIDITY) = 4/5E (≥77.5) + 1/5E (<77.5) = 0.648. E (WINDY) = 3/5E (False) + 2/5E (True) = 0.
÷G (OUTLOOK, WINDY) là Max. Ta có cây quyết định như sau:
Hình 2.7 Cây quyết định cho bài tốn Play Golf (Phần mềm WEKA)
Rút ra các luật từ cây quyết định