THUẬT TOÁN C4.5

Một phần của tài liệu 28056_1712202001929269LUANVAN_HAI (Trang 28)

7. Bố cục luận văn

1.4. THUẬT TOÁN C4.5

1.4.1. Giới thiệu

Vào đầu những năm 1980, J. Ross Quinlan, một nhà nghiên cứu trong lĩnh vực học máy tính, phát triển thuật toán cây quyết định đƣợc biết đến nhƣ ID3. Giải thuật C4.5 là một giải thuật học đơn giản nhƣng tỏ ra thành công trong nhiều lĩnh vực. 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, kinh nghiệm 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.

Giải thuật C4.5 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 đó [9][7].

Nhƣ vậy, nhiệm vụ của giải thuật C4.5 là học cây quyết định từ một tập các ví dụ huấn luyện hay còn gọi là dữ liệu huấn luyện. Hay nói khác hơn, 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.

Chúng ta hãy xét bài toán phân loại “chơi tennis” ứng với thời tiết nào đó không. Giải thuật C4.5 sẽ học cây quyết định từ tập dữ liệu huấn luyện sau:

Bảng 1.1. Tập ví dụ huấn luyện

Ngày Quang cảnh Nhiệt độ Độ ẩm Gió Chơi tennis

D1 Nắng Nóng Cao Nhẹ Không D2 Nắng Nóng Cao Mạnh Không D3 Âm u Nóng Cao Nhẹ Có D4 Mƣa Ấm áp Cao Nhẹ Có D5 Mƣa Mát TB Nhẹ Có D6 Mƣa Mát TB Mạnh Không D7 Âm u Mát TB Mạnh Có D8 Nắng Ấm áp Cao Nhẹ Không D9 Nắng Mát TB Nhẹ Có D10 Mƣa Ấm áp TB Nhẹ Có D11 Nắng Ấm áp TB Mạnh Có D12 Âm u Ấm áp Cao Mạnh Có D13 Âm u Nóng TB Nhẹ Có

D14 Mƣa Ấm áp Cao Mạnh Không

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ị (Cao, TB) và Gió có hai giá trị (Mạnh, Nhẹ) và có một thuộc tính phân loại “Chơi tennis” (Có, Không) và thuộc tính „Chơi tennis‟ còn đƣợc gọi là thuộc tính đích.

1.4.2. Giải thuật C4.5 xây dựng cây quyết định từ trên xuống

Giải thuật C4.5 xây dựng cây quyết định theo cách từ trên xuống và chọn một thuộc tính để kiểm tra tại nút hiện tại của cây và dùng trắc nghiệm này để phân vùng tập hợp các ví dụ, thuật toán khi đó xây dựng theo cách đệ quy một cây con cho từng phân vùng. Việc này tiếp tục cho đến khi mọi thành viên

của phân vùng đều n m trong cùng một lớp, lớp đó trở thành nút lá của cây. Ví dụ, hãy xem xét cách xây dựng cây quyết định của C4.5 trong hình sau từ tập ví dụ huấn luyện trong bảng 1.1.

Hình 1.10. Một phần cây quyết định được xây dựng

Thuật toán C4.5 đƣợc thực hiện nhƣ sau:

Function C45_builder (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

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 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 C45_builder (phân vùng V, tập thuộc tính), gắn kết quả vào nhánh V

end end end

Lƣu ý r ng, để phân loại một ví dụ, có khi cây quyết định không cần sử dụng tất cả các thuộc tính đã cho, mặc dù nó v n phân loại đúng tất cả các ví dụ.

Các khả năng có thể có của các phân vùng:

Trong quá trình xây dựng cây quyết định, phân vùng của một nhánh mới có thể có các dạng sau:

Có các ví dụ thuộc các lớp khác nhau, chẳng hạn nhƣ có cả ví dụ âm và dƣơng nhƣ phân vùng “Quang cảnh = Nắng” của ví dụ trên thì giải thuật phải tiếp tục tách một lần nữa.

Tất cả các ví dụ đều thuộc cùng một lớp, chẳng hạn nhƣ toàn âm hoặc toàn dƣơng nhƣ phân vùng “Quang cảnh = Âm u” của ví dụ trên thì giải thuật trả về nút lá với nhãn là lớp đó.

Không còn ví dụ nào, giải thuật trả về mặc nhiên.

Không còn thuộc tính nào có nghĩa là dữ liệu bị nhiễu, khi đó giải thuật phải sử dụng một luật nào đó để xử lý, chẳng hạn nhƣ luật đa số (lớp nào có nhiều ví dụ hơn sẽ đƣợc dùng để gán nhãn cho nút lá trả về).

1.4.3. Chọn thuộc tính phân loại tốt nhất

Quinlan (1983) là ngƣời đầu tiên đề xuất việc sử dụng lý thuyết thông tin để tạo ra các cây quyết định và công trình của ông là cơ sở cho phần trình bày ở đây. Lý thuyết thông tin của Claude Shannon (1948) cung cấp khái niệm entropy để đo tính thuần nhất (hay ngƣợc lại là độ pha trộn) của một tập hợp [8]. Một tập hợp là thuần nhất nếu nhƣ tất cả các phần tử của tập hợp đều thuộc cùng một loại, và khi đó ta nói tập hợp này có độ pha trộn là thấp nhất.

Khi tập ví dụ là thuần nhất thì có thể nói: ta biết chắc chắn về giá trị phân loại của một ví dụ thuộc tập này, hay ta có lƣợng thông tin về tập đó là cao nhất. Khi tập ví dụ có độ pha trộn cao nhất, nghĩa là số lƣợng các ví dụ có cùng giá trị phân loại cho mỗi loại là tƣơng đƣơng nhau, thì khi đó ta không thể đoán chính xác đƣợc một ví dụ có thể có giá trị phân loại gì, hay nói khác

hơn, lƣợng thông tin ta có đƣợc về tập này là ít nhất. Vậy, điều ta mong muốn ở đây là làm sao chọn thuộc tính để hỏi sao cho có thể chia tập ví dụ ban đầu thành các tập ví dụ thuần nhất càng nhanh càng tốt. Vậy trƣớc hết, ta cần có một phép đo để đo độ thuần nhất của một tập hợp, từ đó mới có thể so sánh tập ví dụ nào thì tốt hơn.

1.4.4. Entropy đo tính thuần nhất của tập ví dụ

Khái niệm entropy của một tập S đƣợc định nghĩa trong lý thuyết thông tin là số lƣợng mong đợi các bit cần thiết để mã hóa thông tin về lớp của một thành viên rút ra một cách ng u nhiên từ tập S. Trong trƣờng hợp tối ƣu, mã có độ dài ngắn nhất. Theo lý thuyết thông tin, mã có độ dài tối ƣu là mã gán log2p bit cho thông điệp có xác suất là p.

Trong trƣờng hợp S là tập ví dụ, thì thành viên của S là một ví dụ, mỗi ví dụ thuộc một lớp hay có một giá trị phân loại.

Entropy có giá trị n m trong khoảng [0..1].

Entropy(S) = 0: tập ví dụ S chỉ toàn thuộc cùng một loại, hay S là thuần nhất.

Entropy(S) = 1: tập ví dụ S có các ví dụ thuộc các loại là b ng nhau. 0 < Entropy(S) < 1: tập ví dụ S có số lƣợng ví dụ thuộc các loại khác nhau là không b ng nhau.

Để đơn giản ta xét trƣờng hợp các ví dụ của S chỉ thuộc loại âm (-) hoặc dƣơng (+).

Tập S là tập dữ liệu huấn luyện, trong đó thuộc tính phân loại có hai giá trị, giả sử là âm (-) và dƣơng (+). Trong đó:

p+ là phần các ví dụ dƣơng trong tập S. p_ là phần các ví dụ âm trong tập S.

Khi đó, entropy đo độ pha trộn của tập S theo công thức sau: Entropy(S) = -p+ log2 p+ - p- log2 p-

Một cách tổng quát hơn, nếu các ví dụ của tập S thuộc nhiều hơn hai loại, giả sử là có c giá trị phân loại thì công thức entropy tổng quát là:

Ví dụ: Từ 14 m u của bảng dữ liệu “Chơi tennis”, ta nhận thấy trong tập thuộc tính đích S có 9 m u thuộc lớp dƣơng và 5 m u thuộc lớp âm (ký hiệu là [9+, 5-]). Do đó:

Entropy(S) = - (9/14)log2(9/14) - (5/14)log2(5/14) = 0,940

Entropy là số đo độ pha trộn của một tập ví dụ, bây giờ chúng ta sẽ định nghĩa một phép đo hiệu suất phân loại các ví dụ của một thuộc tính. Phép đo này gọi là lƣợng thông tin thu đƣợc (hay độ lợi thông tin), nó đơn giản là lƣợng giảm entropy mong đợi gây ra bởi việc phân chia các ví dụ theo thuộc tính này.

Một cách chính xác hơn, Gain(S, A) của thuộc tính A, trên tập S, đƣợc định nghĩa nhƣ sau:

Giá trị Value (A) là tập các giá trị có thể cho thuộc tính A, và Sv là tập con của S mà A nhận giá trị v.

i 2 c 1 i ilog p p Entropy(S)     ) Entropy(S S S Entropy(S) A) Gain(S, V Value(A) V V    

Ví dụ: Trở lại với bảng dữ liệu “Chơi tennis”, áp dụng công thức trên ta có:

Gain(S, Quang cảnh) = Entropy(S) - (5/14)Entropy(Snắng) – (4/14)Entropy(S âmu) – (5/4)Entropy(Smƣa) = 0,246 Một cách tƣơng tự:

Gain(S, Độ ẩm) = 0,151 Gain(S, Nhiệt độ) = 0,029 Gain(S, Gió) = 0,048

Ta thấy, Gain(S, Quang cảnh) lớn nhất nên thuộc tính Quang cảnh đƣợc chọn làm nút phân tách cây.

Sau khi lập đƣợc cấp đầu tiên của cây quyết định ta lại xét nhánh Nắng

Tiếp tục tính Entropy và Gain cho nhánh Nắng ta đƣợc nhƣ sau: Gain(S Nắng, Độ ẩm) = 0,970

Gain(S Nắng, Nhiệt độ) = 0,570 Gain(S Nắng, Gió) = 0,019

Nhƣ vậy thuộc tính độ ẩm có hiệu suất phân loại cao nhất trong nhánh

Nắng nên ta chọn thuộc tính Độ ẩm làm nút kế tiếp ….

Tƣơng tự nhƣ vậy đối với nhánh còn lại của cây quyết định ta đƣợc cây quyết định hoàn chỉnh:

Hình 1.12. Cây quyết định đã được xây dựng hoàn chỉnh

1.4.5. Tỷ suất lợi ích Gain Ratio

Khái niệm độ lợi thông tin Gain có xu hƣớng ƣu tiên các thuộc tính có số lƣợng lớn các giá trị. Nếu thuộc tính D có giá trị riêng biệt cho mỗi bảng ghi (thuộc tính Ngày ở bảng dữ liệu trên), thì Entropy(S, D) = 0, nhƣ vậy Gain(S,D) sẽ đạt giá trị cực đại. Rõ ràng, một phân vùng nhƣ vậy thì việc phân loại là vô ích.

Thuật toán C4.5, một cải tiến của ID3, mở rộng cách tính Information Gain thành Gain Ratio để cố gắng khắc phục sự thiên lệch.

Gain Ratio đƣợc xác định bởi công thức sau:

Trong đó, SplitInformation(S, A) chính là thông tin do phân tách của A trên cơ sở giá trị của thuộc tính phân loại S. Công thức tính nhƣ sau:

Ví dụ: Tính Gain Ratio cho các thuộc tính ở bảng dữ liệu 1.1 SplitInformation(S, Quang cảnh) = - (5/14)log2(5/14)

A) mation(S, SplitInfor A) Gain(S, A) S, GainRatio(  | S | S log | S | S A) mation(S, SplitInfor 2 i c 1 i i    

-(4/14)log2(4/14) - (5/14)log2(5/14) = 1,57 Gain(S, Quang cảnh) = 0,246 GainRatio(S, Quang cảnh) = 0,246/1,57 = 0,157 Tƣơng tự, ta cũng tính đƣợc: GainRatio(S, Nhiệt độ) = 0,0187 GainRatio(S, Độ ẩm) = 0,151 GainRatio(S, Gió) = 0,049

Ta nhận thấy, GainRatio(S, Quang cảnh) có giá trị lớn nhất nên thuộc tính Quang cảnh đƣợc chọn làm nút phân tách cây.

1.4.6. Chuyển cây về dạng luật

Thông thƣờng, cây quyết định sẽ đƣợc chuyển về dạng các luật để thuận tiện cho việc cài đặt và sử dụng. Ví dụ cây quyết định cho tập dữ liệu huấn luyện trong bảng 1.1 có thể đƣợc chuyển thành một số luật nhƣ sau:

Quang cảnh Mƣa Nắng Gió Độ ẩm Mạnh Nhẹ Trung Bình Cao Không Có Có Không Có

Hình 1.13. Chuyển cây quyết định về dạng luật

-Luật 1: If (QuangCảnh =Nắng) ^ (Độ ẩm = Cao) Then ChơiTennis = Không.

-Luật 2: If (QuangCảnh =Nắng) ^ (Độ ẩm = TB) Then ChơiTennis = Có. -Luật 3: If (QuangCảnh =Âm u) Then Chơi-Tennis = Có.

-Luật 4: If (QuangCảnh =Mƣa) ^ (Gió = Mạnh) Then ChơiTennis = Không. - Luật 5: If (QuangCảnh =Mƣa) ^ (Gió= Nhẹ) Then Chơ-Tennis = Có.

1.5. RANDOM FOREST

1.5.1. Cơ sở và định nghĩa

Từ những năm 1990, cộng đồng máy học đã nghiên cứu cách để kết hợp nhiều mô hình phân loại thành tập hợp các mô hình phân loại để cho tính chính xác cao hơn so với chỉ một mô hình phân loại. Mục đích của các mô hình tập hợp là làm giảm variance và hoặc bias của các giải thuật học. Bias là khái niệm về lỗi của mô hình học (không liên quan đến dữ liệu học) và variance là lỗi do tính biến thiên của mô hình so với tính ng u nhiên của các m u dữ liệu học. Tiếp cận Random Forest (Breiman, 2001) là một trong những phƣơng pháp tập hợp mô hình thành công nhất. Giải thuật Random Forest xây dựng cây không cắt nhánh nh m giữ cho bias thấp và dùng tính ng u nhiên để điều khiển tính tƣơng quan thấp giữa các cây trong rừng.

Sự phát triển sớm của Random Forest đã bị ảnh hƣởng bởi công việc của Amit và Geman, đã giới thiệu ý tƣởng về tìm kiếm trên một tập hợp con ng u nhiên trong những quyết định có sẵn khi tách một nút, trong bối cảnh phát triển cây duy nhất. Ý tƣởng lựa chọn ng u nhiên từ không gian con của ho cũng đã có ảnh hƣởng trong việc thiết kế các khu rừng ng u nhiên. Trong phƣơng pháp này một rừng cây đƣợc trồng, và sự thay đổi giữa các cây đƣợc giới thiệu b ng cách chiếu các dữ liệu đào tạo thành một không gian con đƣợc lựa chọn ng u nhiên trƣớc khi lắp mỗi cây. Cuối cùng, ý tƣởng ng u nhiên tối ƣu hóa nút, nơi các quyết định tại mỗi nút đƣợc chọn theo một quy trình ng u nhiên, chứ không phải là tối ƣu hóa xác định lần đầu tiên đƣợc giới thiệu bởi Dietterich[12].

Random Forest đƣợc xây dựng dựa trên 3 thành phần chính là: (1) CART, (2) học toàn bộ, hội đồng các chuyên gia, kết hợp các mô hình, và (3) tổng hợp bootstrap.

Random Forest là một phương pháp học quần thể để phân loại, hồi quy và các nhiệm vụ khác, hoạt động bằng cách xây dựng vô số các cây quyết định trong thời gian đào tạo và đầu ra của lớp là mô hình phân lớp hoặc hồi quy của những cây riêng biệt. Nó như là một nhóm phân loại và hồi quy cây không cắt tỉa được làm từ các lựa chọn ngẫu nhiên của các mẫu dữ liệu huấn luyện. Tính năng ngẫu nhiên được chọn trong quá trình cảm ứng. Dự đoán được thực hiện bằng cách kết hợp (đa số phiếu để phân loại hoặc trung bình cho hồi quy) dự đoán của quần thể.

1.5.2. Tóm tắt giải thuật

Đầu vào: là tập dữ liệu đào tạo.

Đầu ra: là mô hình Random Forest, Random Forest là tập hợp nhiều cây quyết định n tree.

Với mỗi Cây n tree đƣợc xây dựng b ng các sử dụng thuật toán sau: Với N là số lƣợng các trƣờng hợp của dữ liệu đào tạo, M là số lƣợng các biến trong việc phân loại.

Lấy m là số các biến đầu vào đƣợc sử dụng để xác định việc phân chia tại 1 Nút của cây, m < M.

Chọn 1 tập huấn luyện cho cây b ng cách chọn n ng u nhiên với sự thay thế từ tất cả các trƣờng hợp đào tạo có sẵn N. Sử dụng các phần còn lại để ƣớc lƣợng các lỗi của cây, b ng cách dự đoán các lớp của chúng.

Với mỗi nút của cây, chọn ng u nhiên m là cơ sở phân chia tại nút đó (độc lập với mỗi nút). Tính chia tốt nhất dựa trên các biến m trong tập huấn luyện n.

Mỗi cây đƣợc trồng hoàn toàn và không tỉa (có thể đƣợc sử dụng trong vệ xây dựng một bộ phân loại nhƣ các cây bình thƣờng).

Đối với mỗi dự đoán mới đƣợc đƣa vào. Nó đƣợc gán nhãn của m u đạo tạo trong các nút cuối để kết thúc. Thủ tục sẽ đƣợc lập lại qua tất cả các cây

Ntree, và số phiếu bình chọn (với phân lớp) hay trung bình (với hồi quy) của các cây Ntree là dự đoán của rừng ng u nhiên.

1.5.3. Mô hình phân lớp với Random Forest

Hình 1.14. Mô hình phân lớp với Random Forest

Tạo ra n tập dữ liệu huấn luyện bằng cách sử dụng Bootstrap

Từ một quần thể ban đầu lấy ra một m u L = (x1, x2,..xn) gồm n thành phần, tính toán các tham số mong muốn. Trong các bƣớc tiếp theo lặp lại b lần việc tạo ra m u Lb cũng gồm n phần từ L b ng cách lấy lại m u với sự thay thế các thành phần trong m u ban đầu sau đó tính toán các tham số mong muốn.

Ví dụ:

Dữ liệu đào tạo {1 2 3 4 5 6 7 8 9}.

bootstrap -> dữ liệu huấn luyện 1 {1 2 4 5 1 7 2 9 5} - oob {3 6 8}.

Một phần của tài liệu 28056_1712202001929269LUANVAN_HAI (Trang 28)

Tải bản đầy đủ (PDF)

(81 trang)