báo cáo bài tập lớn môn khái phá dữ liệu dành cho các bạ sinh viên ngành khoa học máy tính hoặc ngành khác muốn nghiên cứu về dataminning hoặc làm về bài tập tiểu luận tốt nghiệp chỉ dẫn cho các bạn các khai phá về dữ liệu áp dụng làm về phần mềm tư vấn mua máy tính cho sinh viên
Trang 1TRƯỜNG ĐẠI HỌC CÔNG NGHIỆP HÀ NỘI
KHOA CÔNG NGHỆ THÔNG TIN
o0o
-BÁO CÁO BÀI TẬP LỚN MÔN: KHAI PHÁ DỮ LIỆU
Đề tài: TÌM HIỂU CÂY QUYẾT ĐỊNH VÀ ID3
Giáo viên hướng dẫn : Trần Hùng Cường
Nhóm sinh viên thực hiện : Nhóm 5
Hà Nội, ngày 04 tháng 04 năm
Trang 22018 TRƯỜNG ĐẠI HỌC CÔNG NGHIỆP HÀ NỘI
KHOA CÔNG NGHỆ THÔNG TIN
o0o
-BÁO CÁO BÀI TẬP LỚN MÔN: HỆ CHUYÊN GIA
Đề tài: TÌM HIỂU CÂY QUYẾT ĐỊNH VÀ ID3
Giáo viên hướng dẫn : Trần Hùng Cường
Sinh viên thực hiện : Vũ Văn Duy
Hoàng Bá Vũ Nguyễn Thị Dịu Dương Đức Tuyến Dương Quang Nam
Hà Nội, ngày 04 tháng 04 năm
Trang 32018 LỜI CẢM ƠN
Ngày nay, công nghệ thông tin là lĩnh vực không thể thiếu trong đời sốngcon người Đặc biệt các sản phẩm của công nghệ thông tin ngày nay còn đóngvai trò như một chuyên gia trong nhiều lĩnh vực như y học, hóa học, dự báo, cóthể mã hóa các tri thức cũng như lập luận của những chuyên gia này và đưa vàomáy tính nhằm hỗ trợ người sử dụng
Với đề tài “Tìm hiểu cây quyết định và ID3”, chúng em đã bước đầu làmquen, có cách nhìn nhận đầy đủ về hệ thống và tiến tới xây dựng được phầnmềm có khả năng như chuyên gia con người trong một lĩnh vực cụ thể
Các thuật toán này sẽ hỗ trợ người sử dụng đưa ra quyết định có mua máytính hay không? Chỉ cần người sử dụng nhập vào các yêu cầu của mình về hệđiều hành, mức thu nhập của mình, yêu cầu về cấu hình máy tính, hãng sảnxuất,…
Chúng em đã cố gắng tiếp thu lời góp ý của thầy và các bạn để xây dựngđược một chương trình cơ bản sử dụng cây quyết định Tuy vậy, bài tập lớn vẫncòn nhiều thiếu sót Rất mong thầy cùng các bạn sẽ đánh giá và góp ý
Chúng em xin gửi lời cảm ơn chân thành tới thầy Tràn Hùng Cường đãtận tình hướng dẫn nhóm em nắm bắt các kiến thức cơ bản về môn học Khaiphá dữ liệu trong học kỳ này Đặc biệt, chúng em xin cảm ơn thầy đã hướng dẫn
và những nhận xét đánh giá quý báu của thầy để chúng em hoàn thành bài tậplớn
Chúng em xin gửi lời cảm ơn những ý kiến đóng góp của các bạn sinhviên trong lớp để giúp chúng em hoàn thành bài tập lớn
Chúng em xin chân thành cảm ơn!
Trang 4MỤC LỤC
CHƯƠNG 1: TÌM HIỂU ĐỀ TÀI BÀI TẬP LỚN 5
1.1 Mục đích chọn đề tài 5
1.2 Lý do chọn đề tài 5
1.3 Quy trình thực hiện 5
CHƯƠNG 2: CÂY QUYẾT ĐỊNH 6
2.1 Cây quyết định 6
2.1.1 Cây quyết định là gì? 6
2.1.2 Các kiểu cây quyết định 8
2.2 Thuật toán ID3 8
2.2.1 Thuật toán ID3 xây dựng cây quyết định 8
2.2.2 Minh họa thuật giải ID3 11
CHƯƠNG 3: KẾT QUẢ THỰC NGHIỆM 14
3.1 Bài toán 14
3.1.1 Phát biểu bài toán 15
3.1.2 Thông tin các thuộc tính 15
3.3 Giải quyết bài toán 15
3.2.1 Nhánh OS = Windows 19
3.2.2 Nhánh OS = Linux 33
3.2.3 Nhánh OS = Mac OS 44
CHƯƠNG 4: XÂY DỰNG CHƯƠNG TRÌNH 54
4.1 Lập trình bằng ngôn ngữ C# 54
4.1.1 Sơ lược về phần mềm 54
4.2 Hướng dẫn và sử dụng 55
4.2.1 Hướng dẫn sử dụng 55
CHƯƠNG 5: TÀI LIỆU THAM KHẢO 58
Trang 5CHƯƠNG 1: TÌM HIỂU ĐỀ TÀI BÀI TẬP LỚN
1.1 Mục đích chọn đề tài
Với đề tài “ Tìm hiểu cây quyết định và ID3” đã giúp nhóm hiện thựcđược môn học Hệ chuyên gia, hiểu được bản chất và cách xây dựng từng bước
để tạo nên một hệ chuyên gia với cơ sở tri thức và động cơ suy diễn của nó để
có thể đáp ứng với nhu cầu ngày càng cao của xã hội về việc công nghệ thôngtin hóa
1.2 Lý do chọn đề tài
Ngày nay, CNTT là lĩnh vực không thể thiếu trong đời sống con người.Hầu như trong mọi nghành, mọi lĩnh vực, CNTT đều có mặt Các sản phẩmphần mềm tạo ra đã phục vụ và đem lại nhiều lợi ích về kinh tế như các phầnmềm quản lý , thương mại điện tử, các dịch vụ mạng truyền thông…
Một câu hỏi đặt ra bằng cách nào ta có thể mã hóa các tri thức cũng nhưlập luận của những chuyên gia này và đưa vào máy tính nhằm hỗ trợ người sửdụng đưa ra những quyết định cũng như tư vẫn cho họ khi không có chuyên giabên cạnh
Để đáp ứng những nhu cầu trên đòi hỏi có một công cụ tư vấn giúp ngườidùng dễ dàng lựa chọn hay đưa ra quyết định Nhóm đã quyết định lựa chọn đềtài “ Tìm hiểu cây quyết định và ID3” để hỗ trợ người sử dụng có thẻ quyết địnhmua một chiếc máy tính cho bản thân
1.3 Quy trình thực hiện
- Thu thập tập dữ liệu mẫu từ thực tế
- Sử dụng thuật giải ID3 để xây dựng cây quyết định từ tập dữ liệu mẫu
- Từ cây quyết định sinh ra tập luật
Trang 6- Thiết kế và xây dựng, cài đặt suy diễn tư vấn mua máy tính.
- Sử dụng C# để phân tích tạo cây ID3
CHƯƠNG 2: CÂY QUYẾT ĐỊNH 2.1 Cây quyết định
2.1.1 Cây quyết định là gì?
Việc học trên cây quyết định dựa trên dữ liệu huấn luyện có dạng bảng,trong đó các cột là thuộc tính diều kiện và thuộc tính mục tiêu( quyết định), mỗidòng sẽ được dán nhãn là giá trị của thuộc tính mục tiêu Chẳng hạn với bảng
dữ liệu( Bảng 3.1) các thuộc tính “Age” và “Salary” là thuộc tính điều kiện cònthuộc tính “Class” là thuộc tính mục tiêu
Bảng 3.1 Dữ liệu huấn luyện
Cây quyết định là một công cụ khá phổ biến trong nhiều dạng ứng dụng,
với cơ chế rút trích các dạng luật if- then dựa trên tập liệu mẫu Sau đây là định nghĩa cây quyết định.
Trang 7Cây quyết định là dạng đặc biệt của cáu trúc cây nhằm hỗ trợ cho tiếntrình ra quyết định Cây gồm các thành phần:
o Nút trong: Biểu diễn thuộc tính
o Nhánh: Biểu diễn giá trị cụ thể của thuộc tính đó
o Nút lá: Đại diện cho giá trị dự đoán của thuộc tính mục tiêu
quyết định
Hình 3.2 Cây quyết định tương ứng với bảng 4.1
Dựa trên cây này ta có thể đưa ra được quyết định
Trang 8Chẳng hạn với mẫu x=(30,30,?) sẽ được gán nhãn là “Bad”.
2.1.2 Các kiểu cây quyết định
Cây hồi quy( Regresstion tree) :Ước lượng các hàm giá có giá trị là số thực
thay vì được sử dụng thay vì được sử dụng cho các nhiệm vụ phan loại
Cây phân loại ( Classification tree): Nếu biến chúng ta cần tìm hiểu là
biến phân loại như :giới (tính nam hay nữ ), kết quả của một trận đấu( thắng haythua)
2.2 Thuật toán ID3
2.2.1 Thuật toán ID3 xây dựng cây quyết định
Với bảng dữ liệu huấn luyện có nhiều thuộc tính điều kiện Vấn đề đặt ra
là lựa chọn thuộc tính nào làm gốc của cây Để lựa chọn thuộc tính làm gốc củacây ta đưa ra tiêu chuẩn để đánh giá, một trong các tiêu chuẩn đó là độ lợi thôngtin (information Gain) của thuộc tính Thuộc tính có độ lợi thông tin lớn nhất sẽđược chọn làm gốc của cây
Độ lợi thông tin của thuộc tính A, ký hiệu là Gain( S, A) và được xácđịnh qua công thức:
Gain(S, A)=Entropy(S) -∑((|S v | / |S|)* Entropy(S v ) ) Thuật toán ID3:
Cho X là tập vectơ đặc trưng( không gian đặc trưng):
Trang 9ID3( D, Atributes, Target)
{
Tạo nút t cho cây
Nếu tất cả các mẫu trong D đều thuộc lớp dương thì trả về cây có nút gốc
t và được dán nhãn “+”
Nếu tất cả các mẫu trong D đều thuộc lớp âm thì trả về cây có nút gốc t
và được dán nhãn “-”
Đặt t là nhãn phổ biến nhất của thuộc tính mục tiêu trong D
Nếu Atributes rỗng thì trả về cây có nút gốc trỏ bởi t
Trường hợp khác:
Đặt A* là thuộc tính phân lớp tốt nhất trong D
Thuộc tính quyết định của t là A*.
Với mỗi giá trị a của A* thực hiện:
Bổ sung nhánh mới dưới t ứng với A* = “a”
Đặt D_a là tập con của D chứa các mẫu mà A* = “a”
Nếu D_a rông thì nhánh mới này bổ sung nút lá với nhãnphổ biến nhất trong D
Ngược lại, dưới nhánh mới này bổ sung cây con ID3( D_a,Atributes – { A*}, Target)
Trả về t
}
Trang 10Sau đây là mã giả cho thuật giải ID3:
ID3( D, Atributes, Target)
{
1 t= createNode()
2 IF IF (x, c(x)) D: c(x) = 1 THEN label(t) = ‘+’ return(t) ENDIF
3 IF (x, c(x)) D: c(x) = 0 THEN label(t) = ‘-’ return(t) ENDIF
4 label(t) = mostCommonClass(D, Target)
5 IF Attributes = THEN return(t) ENDIF
Trang 112.2.2 Minh họa thuật giải ID3
Để minh họa cho thuật toán này, ta xét tập dữ liệu huấn luyện sau:
Bảng 3.2 Số liệu quan sát về điều kiện chơi bóng
Bây giờ ta tính độ lợi thông tin cho từng thuộc tính sau đó chọn thuộctính có độ lợi thông tin lớn nhất làm gốc cây quyết định
S là tập hợp của 14 mẫu, trong đó có 9 mẫu thuộc lớp YES và 5 mẫuthuộc lớp NO Khi đó:
Entropy( S)= -(9/14)* log2(9/14) - (5/14)* log2(5/14)= 0.940
Xét thuộc tính “Wind”:
Entropy( SWeak)= - (6/8)* log2(6/8) - (2/8)* log2(2/8)= 0.811
Entropy( SStrong)= - (3/6)* log2(3/6) - (3/6)* log2(3/6)= 1.00
Gain( S, Wind)= Entropy( S) – (8/14) * Entropy( SWeak) – (6/14) *Entropy( SStrong) = 0.940 – (8/14)*0.811 – (6/14)*1,00= 0.048
Trang 12Tương tự như vậy với các thuộc tính điều kiện còn lại:
Trong nhánh Outlook = Sunny, SSunny= {D1, D2, D8, D9, D11}
Gain( SSunny, Humidity) = 0.970
Gain( SSunny, Temperature) = 0.570
Gain( SSunny, Wind) = 0.019
Tương tự như vậy với nhánh Outlook= Rain, ta cũng tính được độ lợi thông tin cho các thuộc tính còn lại và chọn “Wind” làm gốc
Cuối cùng ta xây dựng được cây quyết định:
Hình 3.3 Cây quyết định ứng với bảng dữ liệu 3.2
Trang 13Sinh luật từ cây quyết định:
Mỗi luật là một đường dẫn từ gốc đến lá và các thuộc tính trên cùng một đường
đi được kết hợp bởi phép AND Từ cây quyết định này ta có tập luật sau:
Rule 1: IF Outlook= Sunny AND Humidity = High THEN Play ball= No
Rule 2: IF Outlook= Sunny AND Humidity = Normal THEN Play ball= YesRule 3: IF Outlook= Rain AND Wind = Strong THEN Play ball= No
Rule 4: IF Outlook= Overcast THEN Play ball= Yes
Rule 5: IF Outlook= Rain AND Wind= Weak THEN Play ball= Yes
Với mẫu D15 = (Overcast, Mild, Normal, Weak, ? ) thỏa mãn luật rule 4 Do đóD15 được xếp vào lớp “Yes”
Trang 14CHƯƠNG 3: KẾT QUẢ THỰC NGHIỆM
3.1 Bài toán
1 youth male high high SONY Windows Yes
2 senior male low low DELL Windows Yes
3 senior female high high APPLE Mac OS Yes
4 youth male high medium DELL Linus No
5 middle-aged male medium high APPLE Mac OS Yes
6 youth female high high DELL Windows No
7 senior male low medium SAMSUNG Linus Yes
9 middle-aged female low high APPLE Mac OS No
10 middle-aged male medium medium APPLE Mac OS Yes
11 youth female medium high ASUS Windows No
12 youth male high low ASUS Windows Yes
13 senior male medium medium HP Windows Yes
14 youth female low high DELL Windows No
15 middle-aged male low medium APPLE Mac OS No
16 senior male medium low DELL Windows Yes
17 senior female low medium SONY Windows No
18 middle-aged male high low HP Linus No
19 youth male medium high HP Linus No
20 senior female medium low APPLE Mac OS Yes
21 senior female low medium APPLE Mac OS No
22 youth female medium medium ASUS Windows Yes
23 middle-aged male low high SAMSUNG Windows No
24 youth female high medium DELL Windows Yes
25 youth male low high ASUS Linus No
26 middle-aged female medium medium APPLE Mac OS No
27 senior male high medium SONY Windows Yes
28 senior male medium high APPLE Mac OS Yes
29 middle-aged female high medium APPLE Mac OS No
30 youth male medium medium APPLE Mac OS Yes
31 senior female low high ASUS Linus Yes
32 middle-aged male low low APPLE Mac OS No
33 senior male high high ASUS Windows Yes
34 senior female high low DELL Windows Yes
35 middle-aged female medium low SONY Windows Yes
36 youth male medium low HP Linus Yes
37 middle-aged male high low ASUS Linus No
38 senior female medium high ASUS Windows No
39 youth female low medium HP Windows Yes
40 middle-aged female medium high APPLE Mac OS Yes
41 senior male medium high SONY Mac OS No
42 youth male low medium SAMSUNG Linus Yes
43 middle-aged female high high DELL Windows Yes
44 youth female medium low HP Linus No
45 middle-aged male high medium DELL Windows Yes
46 middle-aged male medium low HP Windows Yes
47 senior female high medium HP Windows No
Manufucturers STT Age Sex Income Configuration OS Buy
Bảng 4.1: Bảng dữ liệu thu thập tiêu thụ máy tính tại miền Bắc
Trang 153.1.1 Phát biểu bài toán.
Bài toán lấy dữ liệ liệu thực tế về mua bán kinh doanh máy tính tại siêuthị miền Bắc trong năm gần đây.Từ việc chọn các giượi ý trong từng thuộctính , người mua có thể quyết định được mình có nên mua máy tính này haykhông
Để tối giản nhất có thể, nhóm lựa chọn ba hệ điều hành phổ biến nhấthiện nay được nhiều người sử dụng là Windows, Mac OS, Linux
3.1.2 Thông tin các thuộc tính.
Từ dữ liệu thực tế chúng em thu thập được thông tin cho các thuộc tínhnhư
sau:
Thuộc tính Age chỉ định tuổi tác của khách hàng
Gồm : youth, senior middle- ages
Thuộc tính Sex chỉ định giới tính của khách hàng
Gồm :male, female
Thuộc tính Income chỉ định thu nhập của khách hàng
Gồm: high, medium, low
Thuộc tính Configuration chỉ định cấu hình mà khách hàng muốn mua
Gồm: high, medium, low
Thuộc tính Manifuctures chỉ định khách hàng muốn mua của nhà sản xuất nào
Gồm các hãng sau: Sony, Samsung, Dell, Apple, HP, Asus
Thuộc tính Os chỉ định hệ điểu hàng mà khách hàng muốn mua
Gồm: Window, Linux, Mac OS
Trang 163.3 Giải quyết bài toán
Sử dụng giải thuật ID3 để tạo cây quyết định:
Tập hợp S là tập có 47 mẫu, trong đó có 27 mẫu thuộc lớp “Yes” và 20mẫu thuộc lớp “ No”
Vậy ta có : Entropy( S )= -(27/47)* log2(27/47) - (20/47)* log2(20/47 )
Entropy( S ) = 0.984Tính độ lợi thông tin của các thuộc tính trong tập dữ liệu trong mẫu dựa vào thuật giải ID3 :
Xét thuộc tính “Age”:
Entropy(Syouth) = - (9/16) log2(9/16) – (7/16) log2(7/16) = 0.989
Entropy(Smiddle-aged) = - (7/15) log2(7/15) - (8/15) log2(8/15) = 0.997
Entropy(Ssenior) = - (11/16) log2(11/16) - (5/16) log2(5/16) = 0.896
→ Gian( S, Age)= Entropy( S) – (16/47)* Entropy(Syouth) – (15/47)*Entropy(Smiddle-aged) – (16/47)* Entropy(Ssenior)
= 0.984 – (16/47) * 0.989 – (15/47) * 0.997 – (16/47) * 0.896
= 0.024
Trang 17Xét thuộc tính “Sex”:
Entropy(Smale) = - (17/26)* log2(17/26) – (9/26)* log2(9/26) = 0.931
Entropy(Sfemale) = - (10/21)* log2(10/21) – (11/21)* log2(11/21) = 0.998
→ Gain(S, Sex) = Entropy(S) – (26/47) * Entropy(Smale) – (21/47) *Entropy(Sfemale)
= 0.984 – (26/47) * 0.931 – (21/47) * 0.998
= 0.023
Xét thuộc tính “Income”:
Entropy(Shigh) = - (9/15)* log2(9/15) – (6/15)* log2(6/15) = 0.971
Entropy(Smedium) = - (12/18)* log2(12/18) – (6/18)* log2(6/18) = 0.918Entropy(Slow) = - (6/14)* log2(6/14) – (8/14)* log2(8/14) = 0.985
→ Gain(S, Income) = Entropy(S) – (15/47) * Entropy(Shigh) – (18/47) *Entropy(Smedium) – (14/47) * Entropy(Slow)
= 0.984 – (15/47) * 0.971 – (18/47) * 0.918 – (14/47) * 0.985
= 0.029
Xét thuộc tính “Configuration”:
Entropy(Shigh) = - (8/17)* log2(8/17) – (9/17)* log2(9/17) = 0.998
Entropy(Smedium) = - (10/17)* log2(10/17) – (7/17)* log2(7/17) = 0.977Entropy(Slow) = - (9/13)* log2(9/13) – (4/13)* log2(4/13) = 0.890
→ Gain(S, Configuration) = Entropy(S) – (17/47) * Entropy(Shigh) –(17/47) * Entropy(Smedium) – (13/47) * Entropy(Slow)
= 0.984 – (17/47) * 0.998 – (17/47) * 0.977 – (13/47) * 0.890
= 0.023
Trang 18Xét thuộc tính “Manufacturers”:
Entropy(SSONY) = - (3/5)* log2(3/5) – (2/5)* log2(2/5) = 0.971Entropy(SAPPLE) = - (7/13)* log2(7/13) – (6/13)* log2(6/13) = 0.996Entropy(SDELL) = - (6/9)* log2(6/9) – (3/9)* log2(3/9) = 0.918Entropy(SASUS) = - (4/8)* log2(4/8) – (4/8)* log2(4/8) = 1Entropy(SSAMSUNG) = - (2/3)* log2(2/3) – (1/3)* log2(1/3) = 0.918Entropy(SHP) = - (5/9)* log2(5/9) – (4/9)* log2(4/9) = 0.991
→ Gain(S, Manufacturers) = Entropy(S) – (5/47) * Entropy(SSONY) –(13/47) * Entropy(SAPPLE) – (9/47) * Entropy(SDELL) – (8/47) *Entropy(SASUS) – (3/47) * Entropy(SSAMSUNG) – (9/47) * Entropy(SHP)
= 0.984 – (5/47) * 0.971 – (13/47) * 0.996 – (9/47) * 0.918 – (8/47) * 1–(3/47) * 0.918 – (9/47) * 0.991
→ Gain(S, OS) = Entropy(S) – (22/47) * Entropy(SWindows)
– (14/47) * Entropy(SMac OS) – (11/47) * Entropy(SLinux)
= 0.984 – (22/47) * 0.902 – (14/47) * 1 – (11/47) * 0.994
= 0.031
Trang 19Trong các thuộc tính điều kiện trên ta thấy “OS” có độ lợi thông tin lớn nhấtnên thuộc tính này sẽ được chọn làm gốc của cây.
→ Gain(SWindows, Age) = Entropy(SWindows) – (8/22) * Entropy(Syouth)– (5/22) * Entropy(Smiddle-aged) – (9/22) * Entropy(Ssenior)
= 0.902 – (8/22) * 0.954 – (5/22) * 0.722 – (9/22) * 0.918
= 0.015 Xét thuộc tính Sex:
Entropy(Smale) = - (9/10)* log2(9/10) – (1/10)* log2(1/10) = 0.469Entropy(Sfemale) = - (6/12)* log2(6/12) – (6/12)* log2(6/12) = 1
→ Gain(SWindows, Sex) = Entropy(SWindows) – (10/22) * Entropy(Smale)
- (12/22) * Entropy(Sfemale)
= 0.902 – (10/22) * 0.469 – (12/22) * 1
Trang 20= 0.131
Xét thuộc tính Income:
Entropy(Shigh) = - (8/10)* log2(8/10) – (2/10)* log2(2/10) = 0.722Entropy(Smedium) = - (5/7)* log2(5/7) – (2/7)* log2(2/7) = 0.863Entropy(Slow) = - (2/5)* log2(2/5) – (3/5)* log2(3/5) = 0.971
→ Gain(SWindows, Income) = Entropy(SWindows) – (10/22) *Entropy(Shigh) – (7/22) * Entropy(Smedium) – (5/22) * Entropy(Slow)
→ Gain(SWindows, Configuration) = Entropy(SWindows) – (8/22) *Entropy(Shigh) – (8/22) * Entropy(Smedium) – (6/22) * Entropy(Slow)
= 0.902 – (8/22) * 0.954 – (8/22) * 0.811 – (6/22) * 0
= 0.260
Xét thuộc tính Manufacturers:
Trang 21Entropy(SSONY) = - (3/4)* log2(3/4) – (1/4)* log2(1/4) = 0.811Entropy(SHP) = - (3/4)* log2(3/4) – (1/4)* log2(1/4) = 0.811Entropy(SDELL) = - (6/8)* log2(6/8) – (2/8)* log2(2/8) = 0.811Entropy(SASUS) = - (3/5)* log2(3/5) – (2/5)* log2(2/5) = 0.971Entropy(SSAMSUNG) = - (1/1)* log2(1/1) = 0
→ Gain(SWindows, Manufacturers) = Entropy(SWindows) – (4/22) *Entropy(SSONY) – (4/22) * Entropy(SHP) – (8/22) * Entropy(SDELL) –(5/22) * Entropy(SASUS) – (1/22) * Entropy(SSAMSUNG)
= 0.902 – (4/22) * 0.811 – (4/22) * 0.811 – (8/22) * 0.811 – (5/22)
* 0.971 – (1/22) * 0
= 0.092 Trong các thuộc tính điều kiện trên ta thấy “Configuration” có độ lợi thông tin
lớn nhất nên thuộc tính này sẽ được chọn làm gốc
Bây giờ ta tiếp tục xét lần lượt từng nhánh trong Configuration.
Nhánh Configuration = high Trong nhánh Configuration = high, ta có:
Trang 22Entropy(Ssenior) = - (1/2)* log2(1/2) – (1/2)* log2(1/2) = 1
→ Gain(Shigh, Age) = Entropy(Shigh) – (4/8) * Entropy(Syouth)– (2/8) * Entropy(Smiddle-aged) – (2/8) * Entropy(Ssenior)
= 0.954 – (4/8) * 0.811 – (2/8) * 1 – (2/8) * 1
= 0.049 Xét thuộc tính Sex:
Entropy(Smale) = - (2/3)* log2(2/3) – (1/3)* log2(1/3) = 0.918Entropy(Sfemale) = - (1/5)* log2(1/5) – (4/5)* log2(4/5) =0.722
→ Gain(Shigh, Sex) = Entropy(Shigh) – (3/8) * Entropy(Smale) – (5/8) * Entropy(Sfemale)
= 0.954 – (4/8) * 0.811 – (2/8) * 0 – (2/8) * 0
Trang 23= 0.549
Xét thuộc tính Manufacturers:
Entropy(SSONY) = - (1/1)* log2(1/1) = 0Entropy(SDELL) = - (1/3)* log2(1/3) - (2/3)* log2(2/3) = 0.918Entropy(SASUS) = - (1/3)* log2(1/3) - (2/3)* log2(2/3) = 0.918Entropy(SSAMSUNG) = - (1/1)* log2(1/1) = 0
→ Gain(Shigh, Manufacturers) = Entropy(Shigh) – (1/8) * Entropy(SSONY) – (3/8) * Entropy(SDELL) – (3/8) *Entropy(SASUS) – (1/8) * Entropy(SSAMSUNG)
= 0.954 – (1/8) * 0 – (3/8) * 0.918 – (3/8) * 0.918 – (1/8) * 0
= 0.266 Trong các thuộc tính điều kiện trên ta thấy Income có độ lợi thông tin lớn nhất
nên thuộc tính này được chọn làm gốc
Bây giờ ta tiếp tục xét từng nhánh trong Income
Trang 24Entropy(Ssenior) = - (1/1)* log2(1/1) = 0(YES)
→ Gain(Shigh, Age) = Entropy(Shigh) – (2/4) * Entropy(Syouth) –(1/4) * Entropy(Smiddle-aged) – (1/4) * Entropy(Ssenior)
= 0.811 – (2/4) * 1 – (1/4) * 0 – (1/4) * 0
= 0.311 Xét thuộc tính Sex:
Entropy(Smale) = - (2/2)* log2(2/2) = 0(yES)Entropy(Sfemale) = - (1/2)* log2(1/2) - (1/2) log2(1/2) = 1
→ Gain(Shigh, Sex) = Entropy(Shigh) – (2/4) * Entropy(Smale) (2/4) * Entropy(Sfemale)
-= 0.811 – (2/4) * 0 – (2/4) * 1
= 0.311 Xét thuộc tính Manufacturers:
Entropy(SSONY) = - (1/1)* log2(1/1) = 0Entropy(SDELL) = - (1/2)* log2(1/2) - (1/2)* log2(1/2) = 1Entropy(SASUS) = - (1/1)* log2(1/1) = 0
→ Gain(Shigh, Manufacturers) = Entropy(Shigh) – (1/4) *Entropy(SSONY) – (2/4) * Entropy(SDELL) – (1/4) *Entropy(SASUS)
= 0.811 – (1/4) * 0 – (2/4) * 1 – (1/4) * 0
= 0.311
Trang 25Cả 3 thuộc tính trên đều có độ lợi thông tin bằng nhau nên ta chọn 1 trong 3
thuộc tính để làm gốc Chọn thuộc tính “Age” làm gốc.
Bây giờ ta tiếp tục xét từng nhánh trong Age:
Nhánh Age = middle- age
→Gain(Syouth, Sex) = Entropy(Syouth) – (1/2)*Entropy(Sfemale) – (1/2)*Entropy(Sfemale)
= 1 – (1/2) * 0– (1/2) * 0
= 1
Xét thuộc tính Manufacturers:
Entropy(SSONY) = - (1/1)* log2(1/1)= 0Entropy(SDELL) = - (1/1)* log2(1/1)= 0
→Gain(Syouth, Manufacturers) = Entropy(Syouth) –
Trang 27Entropy(Smiddle-aged) = - (1/1)* log2(1/1) = 0Entropy(Ssenior) = - (2/4)* log2(2/4) – (2/4)* log2(2/4) = 1
→ Gain(Smedium, Age) = Entropy(Smedium) – (3/8) *Entropy(Syouth) – (1/8) * Entropy(Smiddle-aged) – (4/8) *Entropy(Ssenior)
= 0.811 – (3/8) * 0 – (1/8) * 0 – (4/8) * 1
= 0.311 Xét thuộc tính Sex:
Entropy(Smale) = - (3/3)* log2(3/3) = 0Entropy(Sfemale) = - (3/5)* log2(3/5) – (2/5)* log2(2/5) =0.971
→ Gain(Smedium, Sex) = Entropy(Smedium) – (3/8) *Entropy(Smale) – (5/8) * Entropy(Sfemale)
= 0.811 – (3/8) * 0 – (5/8) * 0.971
= 0.204 Xét thuộc tính Income:
Entropy(Shigh) = - (3/4)* log2(3/4) – (1/4)* log2(1/4) = 0.811Entropy(Smedium) = - (2/2)* log2(2/2) = 0
Entropy(Slow) = - (1/2)* log2(1/2) – (1/2)* log2(1/2) = 1
→Gain(Smedium, Income)=Entropy(Smedium)– (4/8) *Entropy(Shigh) – (2/8) * Entropy(Smedium) – (2/8) *Entropy(Slow)
Trang 28→ Gain(Smedium, Manufacturers) = Entropy(Smedium) – (2/8) * Entropy(SSONY) – (2/8) * Entropy(SDELL) – (1/8) *Entropy(SASUS) – (3/8) * Entropy(SHP)
= 0.811 – (2/8) * 1 – (2/8) * 0 – (1/8) * 0 – (3/8) * 0.918
= 0.217 Trong các thuộc tính điều kiện trên ta thấy “Age” có độ lợi thông tin lớn nhất
nên thuộc tính này được chọn làm gốc
Bây giờ ta tiếp tục xét từng nhánh trong Age
Trang 29Ssenior = {13, 17, 27, 47}
Entropy(Ssenior) = 1
Xét thuộc tính Sex:
Entropy(Smale) = - (2/2)* log2(2/2) = 0Entropy(Sfemale) = - (2/2)* log2(2/2) = 0
→ Gain(Ssenior, Sex) = Entropy(Ssenior) – (2/4) *Entropy(Smale) – (2/4) * Entropy(Sfemale)
= 1 – (2/4) * 0 – (2/4) * 0
= 1 Xét thuộc tính Income:
Entropy(Shigh) = - (1/2)* log2(1/2) – (1/2) log2(1/2)
= 1Entropy(Smedium) = - (1/1)* log2(1/1) = 0Entropy(Slow) = - (1/1)* log2(1/1) = 0
→ Gain(Ssenior, Income) = Entropy(Ssenior) – (2/4) *Entropy(Shigh) – (1/4) * Entropy(Smedium) – (1/4) *Entropy(Slow)
= 1 – (2/4) * 1 – (1/4) * 0 – (1/4) * 0
= 0.5
Trang 30Xét thuộc tính Manufacturers:
Entropy(SSONY) = - (1/2)*log2(1/2) – (1/2)log2(1/2)
= 1Entropy(SHP) = - (1/2)* log2(1/2) – (1/2)* log2(1/2)
nên thuộc tính này được chọn làm gốc