(91) 350-9520 support@omarine.org M-F: 7 AM - 7 PM; Weekends: 9 AM - 5 PM

So sánh kết quả của Football Predictions với cây quyết định ID3

Trong khi Football Predictions sử dụng mạng nơron nhằm xác định ánh xạ xấp xỉ hàm đích từ tập mẫu thì thuật toán ID3 thực hiện quy nạp để học luật cũng từ tập mẫu, và cả hai cùng có khả năng giải các lớp bài toán chung. Trong đó, ID3 đã được ứng dụng rộng rãi trong chẩn đoán bệnh đậu, dự báo thời tiết đặc biệt là giông bão, phát hiện nguyên nhân trục trặc thiết bị, đánh giá rủi ro tài chính, phân loại tìm kiếm Web, và cũng có thể áp dụng cho dự đoán bóng đá, dự đoán xu thế của thị trường chứng khoán.

Kỹ thuật quy nạp đã trở thành cổ điển và kém xa năng lực của mạng nơron, tuy nhiên ví dụ dưới đây cho thấy kết quả của chúng giống nhau rất thú vị.

Ví dụ là bài toán kinh điển chơi Tennis:

-----BEGIN DATA DEFINITION-----
OUTLOOK: Sunny Overcast Rain 
TEMPERATURE: Hot Mild Cool 
HUMIDITY: High Normal
WINDY: Weak Strong
PLAY_TENNIS: Yes No
-----END DATA DEFINITION-----

Football predictions data

Orders    OUTLOOK    TEMPERATURE    HUMIDITY    WINDY    PLAY_TENNIS
1         Sunny      Hot            High        Weak     No
2         Sunny      Hot            High        Strong   No
3         Overcast   Hot            High        Weak     Yes
4         Rain       Mild           High        Weak     Yes
5         Rain       Cool           Normal      Weak     Yes
6         Rain       Cool           Normal      Strong   No
7         Overcast   Cool           Normal      Strong   Yes
8         Sunny      Mild           High        Weak     No
9         Sunny      Cool           Normal      Weak     Yes
10        Rain       Mild           Normal      Weak     Yes
11        Sunny      Mild           Normal      Strong   Yes
12        Overcast   Mild           High        Strong   Yes
13        Overcast   Hot            Normal      Weak     Yes
14        Rain       Mild           High        Strong   No

This data is made on ...

Nguyên lý cây quyết định ID3

Trong ví dụ này chúng ta sử dụng 14 mẫu là dữ liệu của 14 ngày chơi Tennis. Các giá trị kết quả đại diện cho lớp để phân loại. Ở đây chúng ta có hai lớp Yes và No, và mỗi mẫu sẽ thuộc về một trong những lớp này. Thuật toán ID3 tìm thuộc tính quan trọng nhất của tập mẫu để tạo nút quyết định chứa thuộc tính đó và chia tập mẫu vào các nhánh theo các giá trị của thuộc tính. Đầu tiên là xử lý tập mẫu ban đầu và tạo ra nút gốc của cây. Sau đó thuật toán tiếp tục đệ quy trên mỗi tập mẫu con đối với các thuộc tính còn lại. Nếu mọi mẫu trong tập mẫu thuộc về cùng một lớp thì nút trở thành nút lá và được gắn nhãn với lớp đó. Trường hợp thiếu mẫu trong tập mẫu cho một giá trị của thuộc tính được chọn thì một nút lá được tạo và được gắn nhãn NoData (hoặc lấy lớp chung nhất trong tập mẫu để gắn nhãn cho nút lá đó với một độ may rủi nhất định). Trường hợp không còn thuộc tính để phân nhánh mà có các mẫu thuộc về các lớp khác nhau thì nút trở thành nút lá và được gắn nhãn với lớp chung nhất trong tập mẫu (với may rủi, đây là trường hợp các mẫu có kết quả trái ngược). Mỗi nút lá là một kết quả duyệt cây. Cây được duyệt từ nút gốc theo các giá trị thuộc tính.

Entropy

Entropy của tập mẫu S được kí hiệu là H(S),

entropy

trong đó, X là tập các lớp trong S và p(x) là tỉ số giữa số mẫu trong tập S thuộc lớp x và số mẫu của tập S.

Information gain

Information gain IG(S, A) là hiệu Entropy của tập mẫu S trước và sau khi chia theo thuộc tính A,

ig

trong đó, vals(A) là tập các giá trị của thuộc tính A, Sv là tập mẫu con của S, gồm các mẫu mà thuộc tính A có giá trị là v.

Chọn thuộc tính quan trọng nhất

Thuộc tính A là thuộc tính quan trọng nhất của tập S và được chọn để phân rã tập S nếu nó chưa được sử dụng và có IG(S,A) là lớn nhất.

Dựng cây quyết định ID3

Ban đầu tập mẫu là tập S gồm tất cả 14 mẫu và chưa có thuộc tính nào được sử dụng. Các thuộc tính là OUTLOOK, TEMPERATURE, HUMIDITY và WINDY. Chúng ta có

H(S) = – p(Yes)log2p(Yes) – p(No)log2p(No)

= – (9/14)*log2 (9/14) – (5/14)*log2 (5/14) = 0.9402859587

Thuộc tính OUTLOOK chia tập S thành 3 tập con là SSunny, SOvercast và SRain

H(SSunny) = – (2/5)*log2 (2/5) – (3/5)*log2 (3/5) = 0.9709505945

H(SOvercast) = – (4/4)*log2 (4/4) – 0 = 0

H(SRain) = – (3/5)*log2 (3/5) – (2/5)*log2 (2/5) = 0.9709505945

Vậy IG(S, OUTLOOK) = 0.9402859587 – (5/14)*0.9709505945 – (4/14)*0 – (5/14)*0.9709505945

= 0.2467498198

Thuộc tính TEMPERATURE chia tập S thành 3 tập con là SHot, SMild và SCool

H(SHot) = – (2/4)*log2 (2/4) – (2/4)*log2 (2/4) = 1

H(SMild) = – (4/6)*log2 (4/6) – (2/6)*log2 (2/6) = 0.9182958341

H(SCool) = – (3/4)*log2 (3/4) – (1/4)*log2 (1/4) = 0.8112781245

Vậy IG(S, TEMPERATURE) = 0.9402859587 – (4/14)*1 – (6/14)*0.9182958341 – (4/14)*0.8112781245

= 0.0292225657

Thuộc tính HUMIDITY chia tập S thành 2 tập con là SHigh và SNormal

H(SHigh) = – (3/7)*log2 (3/7) – (4/7)*log2 (4/7) = 0.985228136

H(SNormal) = – (6/7)*log2 (6/7) – (1/7)*log2 (1/7) = 0.5916727786

Vậy IG(S, HUMIDITY) = 0.9402859587 – (7/14)*0.985228136 – (7/14)*0.5916727786

= 0.1518355014

Thuộc tính WINDY chia tập S thành 2 tập con là SWeak và SStrong

H(SWeak) = – (6/8)*log2 (6/8) – (2/8)*log2 (2/8) = 0.8112781245

H(SStrong) = – (3/6)*log2 (3/6) – (3/6)*log2 (3/6) = 1

Vậy IG(S, WINDY) = 0.9402859587 – (8/14)*0.8112781245 – (6/14)*1

= 0.0481270304

Như vậy, Information gain của tập S đối với thuộc tính OUTLOOK, IG(S, OUTLOOK) = 0.2467498198 là lớn nhất và OUTLOOK là thuộc tính quan trọng nhất, được chọn để tạo nút quyết định, trong trường hợp này là nút gốc. Tập S được chia thành 3 tập con SSunny, SOvercast và Srain theo thuộc tính OUTLOOK.

outlook

Chúng ta lần lượt xử lý các tập con SSunny, SOvercast và Srain. Các thuộc tính còn lại là TEMPERATURE, HUMIDITY và WINDY.

Xử lý tập con SSunny

Tại bước này tập mẫu là SSunny, với |SSunny| = 5 và chúng ta đã tính được H(SSunny) = 0.9709505945

Thuộc tính TEMPERATURE chia tập SSunny thành 3 tập con là SHot, SMild và SCool

H(SHot) = – 0 – (2/2)*log2 (2/2) = 0

H(SMild) = – (1/2)*log2 (1/2) – (1/2)*log2 (1/2) = 1

H(SCool) = – (1/1)*log2 (1/1) – 0 = 0

Vậy IG(SSunny, TEMPERATURE) = 0.9709505945 – (2/5)*0 – (2/5)*1 – (1/5)*0

= 0.5709505945

Thuộc tính HUMIDITY chia tập SSunny thành 2 tập con là SHigh và SNormal

H(SHigh) = – 0 – (3/3)*log2 (3/3) = 0

H(SNormal) = – (2/2)*log2 (2/2) – 0 = 0

Vậy IG(SSunny, HUMIDITY) = 0.9709505945 – (3/5)*0 – (2/5)*0

= 0.9709505945

Thuộc tính WINDY chia tập SSunny thành 2 tập con là SWeak và SStrong

H(SWeak) = – (1/3)*log2 (1/3) – (2/3)*log2 (2/3) = 0.9182958341

H(SStrong) = – (1/2)*log2 (1/2) – (1/2)*log2 (1/2) = 1

Vậy IG(SSunny, WINDY) = 0.9709505945 – (3/5)*0.9182958341 – (2/5)*1

= 0.019973094

Như vậy, Information gain của tập SSunny đối với thuộc tính HUMIDITY, IG(SSunny, HUMIDITY) = 0.9709505945 là lớn nhất và HUMIDITY là thuộc tính quan trọng nhất, được chọn để tạo nút quyết định, là nút con đầu tiên của nút gốc. Nút quyết định này sẽ có 2 nút con ứng với 2 tập con SHigh và SNormal được chia từ tập SSunny theo thuộc tính HUMIDITY. Tập SHigh gồm các mẫu cùng một lớp No nên nút dành cho nó là một nút lá được gắn nhãn No. Tập SNormal gồm các mẫu cùng một lớp Yes nên nút dành cho nó là một nút lá được gắn nhãn Yes. Đệ quy theo nhánh Sunny đến đây là kết thúc.

humidity

Xử lý tập con SOvercast

Tập SOvercast gồm các mẫu cùng một lớp Yes nên nút dành cho nó là một nút lá được gắn nhãn Yes. Đệ quy theo nhánh Overcast đến đây là kết thúc.

Xử lý tập con SRain

Tại bước này tập mẫu là SRain, với |SRain| = 5 và chúng ta đã tính được H(SRain) = 0.9709505945

Thuộc tính TEMPERATURE chia tập SRain thành 2 tập con là SMild và SCool

H(SMild) = – (2/3)*log2 (2/3) – (1/3)*log2 (1/3) = 0.9182958340

H(SCool) = – (1/2)*log2 (1/2) – (1/2)*log2 (1/2) = 1

Vậy IG(SRain, TEMPERATURE) = 0.9709505945 – (3/5)*0.9182958340 – (2/5)*1

= 0.019973094

Thuộc tính HUMIDITY chia tập SRain thành 2 tập con là SHigh và SNormal

H(SHigh) = – (1/2)*log2 (1/2) – (1/2)*log2 (1/2) = 1

H(SNormal) = – (2/3)*log2 (2/3) – (1/3)*log2 (1/3) = 0.9182958340

Vậy IG(SRain, HUMIDITY) = 0.9709505945 – (2/5)*1 – (3/5)*0.9182958340

= 0.019973094

Thuộc tính WINDY chia tập SRain thành 2 tập con là SWeak và SStrong

H(SWeak) = – (3/3)*log2 (3/3) – 0 = 0

H(SStrong) = – 0 – (2/2)*log2 (2/2) = 0

Vậy IG(SRain, WINDY) = 0.9709505945 – (3/5)*0 – (2/5)*0

= 0.9709505945

Như vậy, Information gain của tập SRain đối với thuộc tính WINDY, IG(SRain, WINDY) = 0.9709505945 là lớn nhất và WINDY là thuộc tính quan trọng nhất, được chọn để tạo nút quyết định, là nút con thứ ba của nút gốc. Nút quyết định này sẽ có 2 nút con ứng với 2 tập con SWeak và SStrong được chia từ tập SRain theo thuộc tính WINDY. Tập SWeak gồm các mẫu cùng một lớp Yes nên nút dành cho nó là một nút lá được gắn nhãn Yes. Tập SStrong gồm các mẫu cùng một lớp No nên nút dành cho nó là một nút lá được gắn nhãn No. Thuật toán kết thúc và cây quyết định được hoàn thành.

tennis

Cây quyết định thể hiện các luật sau:

if OUTLOOK = Sunny and HUMIDITY = High then PLAY_TENNIS = No

if OUTLOOK = Sunny and HUMIDITY = Normal then PLAY_TENNIS = Yes

if OUTLOOK = Overcast then PLAY_TENNIS = Yes

if OUTLOOK = Rain and WINDY = Weak then PLAY_TENNIS = Yes

if OUTLOOK = Rain and WINDY = Strong then PLAY_TENNIS = No

So sánh kết quả của Football Predictions với cây quyết định ID3

1. Khi OUTLOOK = Overcast

Luật của cây quyết định là

if OUTLOOK = Overcast then PLAY_TENNIS = Yes

Kết quả của Football Predictions và kết quả của cây quyết định ID3 hoàn toàn giống nhau

overcast1overcast2overcast3

overcast4overcast5overcast6

overcast7overcast8overcast9

overcast10overcast11overcast12

2. Khi OUTLOOK = Sunny và HUMIDITY = Normal

Luật của cây quyết định là

if OUTLOOK = Sunny and HUMIDITY = Normal then PLAY_TENNIS = Yes

Kết quả của Football Predictions hoàn toàn giống với kết quả của cây quyết định

sunny1-normalsunny2-normalsunny5-normal

sunny6-normalsunny9-normalsunny10-normal

3. Khi OUTLOOK = Sunny và HUMIDITY = High

Luật của cây quyết định là

if OUTLOOK = Sunny and HUMIDITY = High then PLAY_TENNIS = No

Kết quả của Football Predictions giống với kết quả của cây quyết định trong 5 trường hợp, khác nhau 1 trường hợp trong tất cả 6 trường hợp giả thiết khớp với luật này của cây quyết định

sunny3-highsunny4-highsunny7-high

sunny8-highsunny11-highsunny12-high

4. Khi OUTLOOK = Rain và WINDY = Weak

Luật của cây quyết định là

if OUTLOOK = Rain and WINDY = Weak then PLAY_TENNIS = Yes

Kết quả của Football Predictions hoàn toàn giống với kết quả của cây quyết định

rain2-weakrain4-weakrain6-weak

rain8-weakrain10-weakrain12-weak

5. Khi OUTLOOK = Rain và WINDY = Strong

Luật của cây quyết định là

if OUTLOOK = Rain and WINDY = Strong then PLAY_TENNIS = No

Kết quả của Football Predictions giống với kết quả của cây quyết định trong 5 trường hợp, khác nhau 1 trường hợp trong tất cả 6 trường hợp giả thiết khớp với luật này của cây quyết định

rain1-strongrain3-strongrain5-strong

rain7-strongrain9-strongrain11-strong

Như vậy, Football Predictions và thuật toán ID3 có kết quả giống nhau trong hầu hết tất cả 36 trường hợp của bài toán, chỉ có 2 trường hợp kết quả khác nhau. Điều đó chứng tỏ cả hai giải pháp cùng tiếp cận một chân lý. Lập luận logic trong thuật toán ID3 là dễ hiểu, nhưng kết quả học của mạng nơron trong Football Predictions thật đáng ngạc nhiên. Thuật toán ID3 hay phương pháp quy nạp nói chung có một số nhược điểm, trong đó việc chọn thuộc tính quyết định có tính phân biệt quá cao làm mất thông tin từ các thuộc tính khác trong một vài trường hợp.

Chúng ta xét thêm một ví dụ về một bài toán dự báo thời tiết

-----BEGIN DATA DEFINITION-----
TEMPERATURE: Warm Cold VeryCold 
SKY: Blue Normal Cloud 
PRESSURE: Up Stable Down 
WEATHER RESULTS: Rain Snow Sunny
-----END DATA DEFINITION-----

Football predictions data

Orders    TEMPERATURE    SKY    PRESSURE    WEATHER
1         Warm           Cloud  Down        Rain 
2         VeryCold       Cloud  Stable      Snow 
3         Warm           Cloud  Up          Sunny 
4         Warm           Normal Stable      Sunny 
5         Cold           Blue   Stable      Sunny 
6         Warm           Blue   Down        Rain 
7         Cold           Normal Stable      Snow 

This data is made on ... 

Cây quyết định của bài toán này như sau

 weather

Khi PRESSURE = Stable, SKY = Normal và TEMPERATURE = VeryCold thì kết luận không có dữ liệu (NoData).

Kết quả dự báo của Football Predictions trong trường hợp này là WEATHER = Snow

weather-verycold

Advertisements

Gửi phản hồi

%d bloggers like this: