Information Gain

Một phần của tài liệu Khai phá dữ liệu với cây quyết định (Trang 36)

Entropy là một số đo đo độ pha trộn của một tập hợp, 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 mẫu của một thuộc tính. Phép đo này gọi là Information Gain, nó đơn giản là lượng giảm entropy mong đợi gây ra

bởi việc phân chia các mẫu theo thuộc tính này. Trong thuật toán ID3, để tính toán đại lượng này, người ta dùng hàm Gain:

Gain(S,A)=Entropy(S) -  Value(A) v |S| | Sv | Entropy(Sv) (2.3)

Với A là thuộc tính đang xem xét

Value(A) là tập tất cả các giá trị của thuộc tính A Sv là tập con của S ứng với thuộc tính A có giá trị là V |Sv| là số phần tử trong Sv

|S| là số phần tử trong S

Thuộc tính có giá trị Gain lớn nhất thì được xem là “tốt nhất” và được chọn trước trong quá trình xây dựng cây quyết định. Tại mỗi nút, ta sẽ tìm thuộc tính có Gain lớn nhất trong những thuộc tính chưa được xem xét trong đường đi từ gốc. Việc sắp thứ tự theo Gain như vậy giúp tạo ra cây quyết định nhỏ mà những nút lá có thể được xác định sau chỉ một vài lần cây quyết định phân chia và giúp tối thiểu hóa quá trình tạo quyết định.

2.2.3.3. Giải thuật ID3

ID3 xây dựng cây quyết định theo giải thuật sau:

Input : Tập các ví dụ huấn luyện (được thể hiện bởi các thuộc tính có giá trị rời rạc) tập_ví_dụ; Tập các thuộc tính ứng viên tập_thuộc_tính

Output: Một Cây quyết định.

Function induce_tree(tập_ví_dụ, tập_thuộc_tính) begin

Tạo một nút N

if mọi ví dụ trong tập_ví_dụ đều nằm trong cùng một lớp then returnN như 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 như một nút lá được gán nhãn bởi lớp phổ biến nhất trong

xóa A ra khỏi tập_thuộc_tính; với mỗi giá trị V của A

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 A; if phân_vùng V là rỗng then Gán vào nhánh V một nút lá có nhãn là lớp phổ biến nhất trong tập_ví_dụ else 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 end end end

Ví dụ : Để mô tả hoạt động của ID3 chúng ta sử dụng ví dụ về phân loại khách hàng trong một công ty Bưu chính cung cấp các dịch vụ gửi hàng hóa, tài liệu và dịch vụ sản xuất phong bì theo mẫu của các cá nhân, doanh nghiệp. Yêu cầu ở đây là xác định khách hàng có đặt mua phong bì của Công ty hay không. Các thuộc tính được xem xét là:

Doanh thu: có các giá trị {<1triệu; 1..3 triệu; >3 triệu} Lọai hàng gửi: Hàng hóa, Tài liệu

Lọai khách hàng: Công ty, cá nhân Lọai dịch vụ: gửi nhanh hay gửi thường

Hình thức thanh toán: Tiền mặt, chuyển khoản Bảng dưới đây có 20 mẫu dữ liệu:

STT Loại khách hàng Doanh thu Lọai hàng Lọai dịch vụ Hình thức thanh toán Mua phong

1 Cá nhân < 1 triệu Tài liệu Nhanh Chuyển khoản Không 2 Công ty > 3 triệu Tài liệu Thường Tiền mặt Có 3 Cá nhân > 3 triệu Hàng hóa Nhanh Tiền mặt Không 4 Cá nhân 1..3 triệu Tài liệu Thường Tiền mặt Không 5 Công ty < 1 triệu Tài liệu Nhanh Chuyển khoản Không 6 Cá nhân > 3 triệu Tài liệu Thường Chuyển khoản Có 7 Cá nhân > 3 triệu Hàng hóa Thường Chuyển khoản Có 8 Cá nhân > 3 triệu Tài liệu Thường Tiền mặt Có 9 Công ty 1..3 triệu Tài liệu Nhanh Chuyển khoản Có 10 Cá nhân > 3 triệu Tài liệu Thường Tiền mặt Có 11 Cá nhân 1..3 triệu Tài liệu Nhanh Chuyển khoản Không 12 Cá nhân < 1 triệu Hàng hóa Nhanh Chuyển khoản Không 13 Công ty > 3 triệu Hàng hóa Thường Chuyển khoản Có 14 Cá nhân 1..3 triệu Tài liệu Thường Tiền mặt Có 15 Cá nhân < 1 triệu Tài liệu Thường Tiền mặt Không 16 Cá nhân < 1 triệu Tài liệu Nhanh Chuyển khoản Không 17 Cá nhân 1..3 triệu Tài liệu Thường Chuyển khoản Có 18 Công ty > 3 triệu Hàng hóa Nhanh Tiền mặt Có 19 Công ty 1..3 triệu Hàng hóa Nhanh Tiền mặt Có 20 Công ty > 3 triệu Hàng hóa Thường Chuyển khoản Có

Gọi S là tập mẫu huấn luyện, S gồm 20 mẫu: 12+

và 8- Giải thuật ID3 thực hiện như sau:

- Thuộc tính “Lọai khách hàng” có hai giá trị “Cá nhân” và “Công ty”. Trong đó “Cá nhân” có [6+

, 7-], “Công ty” có [6+ , 1-] Value(Lọai khách hàng)= “Cá nhân”, “Công ty”

SCá nhân =[6+, 7-] ; SCông ty =[6+, 1-] ; Gain(S,Lọai khách hàng)= Entropy(S) -   {cánhân,Côngty} v |S| | Sv | Entropy(Sv) = Entropy(S)- (13/20) Entropy(SCá nhân) – (7/20) Entropy(SCông ty) = Entropy(S)- (13/20) Entropy([6+, 7-] ) - (7/20) Entropy([6+, 1-] ) = 0.971 – (13/20)* 0.996- (7/20)* 0.592 = 0.116

- Thuộc tính “Doanh thu” có ba giá trị “< 1 triệu”; “1..3 triệu”; “> 3 triệu” Trong đó “< 1 triệu”; có [0+

, 5-], “1..3 triệu” có [4+

, 2-]; “> 3 triệu” có [8+ , 1-]

Value(Doanh thu)= “< 1 triệu”; “1..3 triệu”; “> 3 triệu” S<1 triệu =[0+, 5-] ; S1..3 triệu =[4+, 2-] ; S>3 triệu =[8+, 1-] Gain(S, Doanh thu)= Entropy(S) - 

 

 { 1trieu,1..3trieu, 3trieu}

v |S|

| Sv |

Entropy(Sv)

= Entropy(S)- (5/20) Entropy(S<1 triệu ) – (6/20) Entropy(S1..3 triệu)- (9/20)Entropy(S>3 triệu )

= Entropy(S)- (5/20) Entropy([0+, 5-] ) - (6/20) Entropy([4+, 2-] ) - - (9/20) Entropy([8+, 1-] )

= 0.971 - (5/20)*0- (6/20) * 0.918- (9/20)* 0.503 = 0.469

- Thuộc tính “Lọai hàng” có hai giá trị “Tài liệu” và “Hàng hóa”. Trong đó “Tài liệu” có [7+

, 6-], “Hàng hóa” có [5+ , 2-] Value(Lọai hàng)= “Tài liệu”, “Hàng hóa” STài liệu =[7+, 6-] ; SHàng hóa =[5+, 2-] ;

Gain(S,Lọai hàng)= Entropy(S) -   {Tailieu,Hanghoa} v |S| | Sv | Entropy(Sv)

= Entropy(S)- (13/20) Entropy(STài liệu) – (7/20) Entropy(SHàng hóa) = Entropy(S)- (13/20) Entropy([7+, 6-] ) - (7/20) Entropy([5+, 2-] ) = 0.971 - (13/20)* 0.996- (7/20)* 0.863 = 0.022

- Thuộc tính “Lọai dịch vụ” có hai giá trị “Nhanh” và “Thường”. Trong đó “Nhanh” có [3+

, 6-], “Thường” có [9+ , 2-] Value(Lọai dịch vụ)= “Nhanh”, “Thường” SNhanh =[3+, 6-] ; SThường =[9+, 2-] ; Gain(S,Lọai dịch vụ)= Entropy(S) -   {Nhanh,Thuong} v |S| | Sv | Entropy(Sv)

= Entropy(S)- (9/20) Entropy(SNhanh) – (11/20) Entropy(SThường) = Entropy(S)- (9/20) Entropy([3+, 6-] ) - (11/20) Entropy([9+, 2-] ) = 0.971 - (9/20)* 0.9183 - (11/20)* 0.684 = 0.182

- Thuộc tính “Hình thức thanh toán” có hai giá trị “Chuyển khoản” và “Tiền mặt”. Trong đó “Chuyển khoản” có [6+

, 7-], “Tiền mặt” có [6+ , 1-] Value(Hình thức thanh toán)= “Chuyển khoản”, “Tiền mặt”

SChuyển khoản =[6+, 5-] ; STiền mặt =[6+, 3-] ;

Gain(S,Hình thức thanh toán)=Entropy(S)- 

 {Chuyenkhoan,Tienmat} v |S| | Sv | Entropy(Sv) = Entropy(S)- (11/20) Entropy(SChuyển khoản) – (9/20) Entropy(STiền mặt ) = Entropy(S)- (11/20) Entropy([6+, 5-] ) - (9/20) Entropy([6+, 3-] ) = 0.971 - (11/20)* 0.994 - (9/20)* 0.918 = 0.011

Gain(S, Doanh thu) = 0.469

Gain(S,Lọai hàng)= 0.022

Gain(S,Lọai dịch vụ) = 0.182

Gain(S,Hình thức thanh toán)=0.011

3. Chọn thuộc tính có Gain lớn nhất làm nút gốc, đó là “Doanh thu”. Có 3 nhánh được tạo ra ứng với các giá trị “< 1 triệu”; “1..3 triệu”; “> 3 triệu”. Ta thấy các nhãn ứng với giá trị “< 1 triệu” đều là “Không”, thuộc cùng một lớp nên có một nút lá có nhãn là “Không” như hình 2.3

Hình 2.3: Xây dựng cây quyết định

4. Áp dụng ID3 cho nút con của nút gốc, cho đến khi đạt đến nút lá hoặc nút có Entropy = 0.

Ta tiếp tục tính Gain của các thuộc tính còn lại:

Entropy(S1..3 triệu) = Entropy([4+, 2 -]) = - (4/6) * log2 (4/6) - (2/6) * log2 (2/6) = 0.918

Gain(S1..3 triệu, Lọai khách hàng) =0.918 - (4/6)Entropy([2+

, 2-])) – (2/6) Entropy([2+, 0 -])

= 0.918 – (4/6)* 1 –(2/6)*0 = 0.251 Gain(S1..3 triệu, Lọai hàng) =0.918 - (1/6)Entropy([1+

, 0-])) – (5/6)Entropy([3+, 2 -]) = 0.918 - (1/6)* 0 - (5/6)*0.971 = 0.109 Gain(S , Lọai dịch vụ) =0.918 - (3/6)Entropy([2+

, 1-])) – <1 triệu Doanh thu ? Không >3 triệu ? 1..3 triệu

(3/6)Entropy([2+, 1 -])

= 0.918 - (3/6)* 0.9183 - (3/6)*0.9183 = 0.0003 Gain(S1..3 triệu, Hình thức thanh toán) =0.918 - (3/6)Entropy([2+

, 1-])) – (3/6)Entropy([2+, 1 -])

= 0.918 - (3/6)* 0.9183 - (3/6)*0.9183 = 0.0003

Gain(S1..3 triệu, Lọai khách hàng) =0.251 lớn nhất nên ta chọn thuộc tính kiểm tra là “Lọai khách hàng”. Có 2 nhánh được tạo ra ứng với các giá trị “Công ty” và “Cá nhân”. Ta thấy các nhãn ứng với giá trị “Công ty” đều là “Có”, thuộc cùng một lớp nên có một nút lá có nhãn là “Có” và được cây như hình 2.4

Hình 2.4: Xây dựng cây quyết định – tiếp theo

Tiếp tục lặp lại quá trình chọn một thuộc tính mới và phân chia các mẫu tại mỗi nút cần triển khai. Trải qua một số bước, ta thu được cây kết quả như hình 2.5

Có <1 triệu Doanh thu ? Không >3 triệu Loại khách hàng 1..3 triệu Công ty ? Cá nhân

Hình 2.5: Cây quyết định kết quả

Một phần của tài liệu Khai phá dữ liệu với cây quyết định (Trang 36)

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

(129 trang)