Ví dụ về thuật toán Quinlan (Phần 2)

Bài 4: Dựa vào bảng mô tả, hãy rút ra tập luật.

q4

Vector đặc trưng cho các thuộc tính:

Thuộc tính: Outlook

V(outlook = sunny) =(T(sunny,No),T(sunny,Yes))=(3/5,2/5)

V(outlook = overcast) =(T(overcast,No),T(overcast,Yes))  =(0/4,4/4) = (0,1)

V(outlook =rain) =(T(rain,No),T(rain,Yes))=(2/5,3/5)

Thuộc tính: Temp

V(Temp = hot) =(T(hot,No),T(hot,Yes)) = (2 /4 ,2/4)

V (Temp = mild) =(T(mild,No),T(mild,Yes)) = ( 2/6 ,4/6)

V(Temp = cool) =(T(cool,No),T(cool,Yes)) = ( 1/4 ,3/4)

Thuộc tính: Humidity

V(Humidity = high) =(T(high,No),T(high,Yes)) = ( 4/7 ,3/7)

V(Humidity = normal) =(T(normal,No),T(normal,Yes)) = ( 1/7 ,6/7)

Thuộc tính: Wind

V(wind= false) =(T(false,No),T(false,Yes)) = (2 /8 ,6/8)

V(wind=true) =(T(true No),T(true,Yes)) = (3 /6 ,3/6)

Như vậy, thuộc tính Outlook có số vector đơn vị nhiều nhất nên sẽ được phân hoạch.

Sau khi phân hoạch theo Outlook xong, chỉ có phân hoạch theo Outlook (Psunny) và (Prain)  là còn chứa kết quả là Yes và No nên ta sẽ tiếp tục phân hoạch tập này. Ta sẽ thực hiện thao tác tính vector đặc trưng tương tự đối với các thuộc tính còn lại (Temp,Humidity,Wind).

TH1: Trong phân hoạch (Psunny) , tập dữ liệu của chúng ta còn lại là :

 

 Bai_Tap_Quinlan_bai4b.PNG

Thuộc tính: Temp

V(Temp = hot) =(T(hot,No),T(hot,Yes)) = (2 /2 ,0/2) = (1,0)

V (Temp = mild) =(T(mild,No),T(mild,Yes)) = ( 1/2 ,1/2)

V(Temp = cool) =(T(cool,No),T(cool,Yes)) = ( 0/1 ,2/1) = (0,1)

Thuộc tính: Humidity

V(Humidity = high) =(T(high,No),T(high,Yes)) = ( 3/3 ,0/3) = (1,0)

V(Humidity = normal) =(T(normal,No),T(normal,Yes)) = ( 0/2,2/2) = (0,1)

Thuộc tính: Wind

V(wind=false) =(T(false,No),T(false,Yes)) = (2/3,1/3)

V(wind= true) =(T(true,No),T(true,Yes)) = (1/2,1/2)

Như vậy, thuộc tính Humidity có số vector đơn vị nhiều nhất nên sẽ được phân hoạch.

TH2: Trong phân hoạch (Prain) , tập dữ liệu của chúng ta còn lại là :

Bai_Tap_Quinlan_bai4bb.PNG

 Thuộc tính: Temp

V(Temp = hot) =(T(hot,No),T(hot,Yes)) = (0,0)

V (Temp = mild) =(T(mild,No),T(mild,Yes)) = ( 1/3,2/3)

V(Temp = cool) =(T(cool,No),T(cool,Yes)) = ( 1/2 ,1/2)

Thuộc tính: Humidity

V(Humidity = high) =(T(high,No),T(high,Yes)) = ( 1/2 ,1/2)

V(Humidity = normal) =(T(normal,No),T(normal,Yes)) = ( 1/3,2/3)

Thuộc tính: Wind

V(wind=false) =(T(false,No),T(false,Yes)) = (0/3,3/3) = (0,1)

V(wind= true) =(T(true,No),T(true,Yes)) = (2/2,0/2) = (1,0)

Như vậy, thuộc tính Wind có số vector đơn vị nhiều nhất nên sẽ được phân hoạch.

Kết luận: Kết quả Cây định danh cuối cùng :

Bai_Tap_Quinlan_bai2_c.PNG

Vậy ta có tập luật:

IF Outlook = Overcast THEN Play = Yes;

IF Outlook = Sunny  AND Humidity= Normal THEN Play = Yes;

IF Outlook = Sunny AND Humidity=High THEN Play = No;

IF Outlook = Rain  AND Wind = False THEN Play = No;

IF Outlook = Rain  AND Wind = True THEN Play = Yes;

Từ tập luật ta có thể suy ra:

Ngày có Overlook là sunny,Temperature là cool, Humidity là high, wind là true thì Play sẽ là: No

Advertisements

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out /  Change )

Google+ photo

You are commenting using your Google+ account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

Connecting to %s