Tải bản đầy đủ
Phần 2: CÂY QUYẾT ĐỊNH VÀ CÁC THUẬT TOÁN KHAI PHÁ DỮ LIỆU BẰNG CÂY QUYẾT ĐỊNH

Phần 2: CÂY QUYẾT ĐỊNH VÀ CÁC THUẬT TOÁN KHAI PHÁ DỮ LIỆU BẰNG CÂY QUYẾT ĐỊNH

Tải bản đầy đủ

17

Cây quyết định có 2 tên khác:

 Cây hồi quy : ước lượng các hàm giá có giá trị là số thực thay vì
được sử dụng cho các nhiệm vụ phân loại.


Cây phân loại: có chứa các 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 hay thua).

Ví dụ: Cây quyết định phân lớp mức lương có các dữ kiện sau:
ID ( Định danh ), age (tuổi), salary (lương).
Phân lớp mức lương có 2 lớp: good, bad.
Tập dữ liệu như sau:
ID
Age
Salary Class
1
30
65
Good
2
23
15
Bad
3
40
7
Good
4
55
40
Bad
5
55
100
Good
6
45
60
good
Bảng 2.1 : Tập dữ liệu huấn luyện quyết định phân lớp mức lương
Cây quyết định phân lớp mức lương có dạng như sau:

18

Age?

≤ 35

> 35

salary

≤ 40

salary

>40

≤50

>5
0

bad

good

bad

good

Hình 2.1 Cây quyết đinh phân lớp mức lương

2.1.3 Ưu điểm của cây quyết định.
So với các phương pháp KPDL khác, cây quyết định có một số ưu điểm sau:
- Cây quyết định tương đối dễ hiểu. Người ta có thể hiểu được mô hình của cây
quyết định chỉ cần sau khi được giải thích ngắn gọn.
- Kỹ thuật KPDL bằng cây quyết định chỉ đòi hỏi dữ liệu được chuẩn bị một
cách cơ bản, đôi khi không cần thiết phải xử lý dữ liệu trước khi tiến hành khai phá.
Trong khi đó, các kỹ thuật khác thường đỏi hỏi phải có các thao tác xử lý dữ liệu
phức tạp hơn như: chuẩn hoá dữ liệu, tạo ra các biến phụ hay loại bỏ các giá trị
rỗng.
- Cây quyết định có thể xử lý cả dữ liệu có giá trị bằng số, liên tục và dữ liệu

dạng phân loại rời rạc. Các kỹ thuật khác thường chuyên để phân tích các bộ dữ liệu

19

chỉ gồm các thuộc tính có giá trị hoặc liên tục (dạng số) hoặc rời rạc. Chẳng hạn,
các luật quan hệ chỉ có thể dùng cho các biến tên loại rời rạc, trong khi mạng nơron
chỉ có thể dùng cho các biến có giá trị bằng số.
- Cây quyết định là một mô hình hộp trắng. Nếu có thể quan sát một tình huống
cho trước trong một mô hình, thì có thể dễ dàng giải thích điều kiện đó bằng logic
boolean.
- Có thể thẩm định một mô hình cây quyết định bằng các kiểm tra thống kê.
Điều này làm cho ta có thể tin tưởng vào kết quả của mô hình.
Cây quyết định có thể xử lý một lượng rất lớn dữ liệu và đưa ra các kết quả
phân tích trong thời gian đủ ngắn. Chính vì vậy nó giúp cho các nhà chiến lược đưa
ra các quyết định kịp thời nhanh chóng dựa vào việc phân tích cây quyết định, trong
thời đại công nghệ thông tin mà ai có được thông tin và đưa ra quyết định sớm thì
người đó gần như nắm chắc phần thắng trong kinh doanh.
2.1.4 Vấn đề xây dựng cây quyết định
Xây dựng cây quyết định là việc làm quan trọng nhất trong việc sử dụng cây
quyết định để KPDL. Có nhiều thuật toán khác nhau để xây dựng cây quyết định.
Một số thuật toán cơ bản là: CLS, ID3, C4.5, SLIQ, SPRINT, EC4.5, C5.0…Quá
trình xây dựng cây quyết định dù được thực hiện bằng thuật toán nào, thì nói chung
đều chia ra làm ba giai đoạn cơ bản như sau.
a. Xây dựng cây

Trong giai đoạn này, tập dữ liệu huấn luyện được chia một cách đệ quy cho
đến khi các mẫu dữ liệu huấn luyện ở mỗi nút lá là thuộc cùng một lớp, hay còn gọi
là các nút lá đều thuần khiết. Ngoại trừ các nút lá ra thì các nút không phải là nút lá
đều được kiểm tra các thuộc tính đề tìm ra thuộc tính "chiến thắng" được chọn cho
việc phân tách tiếp theo. Nhãn của nút có phép tách này là nhãn của thuộc tính
"chiến thắng" đồng thời tập dữ liệu tại nút này được phân tách ra làm các tập con
theo các giá trị của thuộc tính đó.
b. Cắt tỉa cây

20

Thông thường thì cây được sinh ra trong giai đoạn xây dựng và hoạt động tốt
trên tập dữ liệu huấn luyện, tuy nhiên cây có thể hoạt động không chính xác trên các
tập dữ liệu bị nhiễu hoặc bị thiếu. Vì vậy cần phải có giai đoạn cắt tỉa cây để tối ưu
hoá cây, đó là tối ưu hoá về độ lớn và độ chính xác của sự phân lớp các mẫu dữ
liệu.
c. Đánh giá cây

Giai đoạn này đánh giá độ chính xác của cây kết quả. Việc đánh giá cây tương
đối đơn giản. Đánh giá bằng cách cho một tập dữ kiện vào và so sánh nhãn của lớp
đã dự đoán với nhãn của lớp trên thực tế đạt được. Tiêu chí để đánh giá độ chính
xác của cây quyết định là tỷ số các mẫu được phân lớp chính xác trên tổng số các
mẫu đưa vào.
2.1.5 Rút ra các luật từ cây quyết định.
Có thể chuyển đổi qua lại giữa mô hình cây quyết định và mô hình dạng luật.
Sau khi xây dựng được cây quyết định ta có thể rút ra được tập các luật dạng
IF...THEN...và ngược lại. Từ hai mô hình này chúng ta có thể rút ra được các quy
luật, mô hình từ trong cơ sở dữ liệu.
Ví dụ: từ cây quyết định phân lớp mức lương (Hình 2.1) ta có thể rút ra được
một số luật sau:
IF (Age <= 35) AND (salary<=40) THEN class = bad
IF (Age<=35) AND (salary>40) THEN class = good
IF (Age>35) AND (salary <=50 ) THEN class = bad
IF (Age > 35) AND(salary>50) THEN class = good
2.2 Các thuật toán KPDL bằng cây quyết định
Kỹ thuật khai phá dữ liệu bằng cây quyết định là kỹ thuật thuật được trình bày
trọng tâm trong luận văn này.

21

Từ rất lâu, người ta đã quan tâm đến việc phân loại dữ liệu bằng cây quyết
định. Mỗi cách phân loại được ghi chép lại và sau đó được công bố như là một kỹ
thuật KPDL. Mỗi kỹ thuật theo thời gian và theo nhu cầu cần sử dụng đã dần bộc lộ
những điểm mạnh và điểm yếu của mình, cũng như không ngừng được cải tiến để
phục vụ mục đích KPDL.
2.2.1 Thuật toán CLS
Xây dựng cây quyết định lần đầu tiên được Hoveland và Hint giới thiệu trong
Concept Learning System (CLS) vào cuối những năm 50 của thế kỷ 20. Sau đó gọi
tắt là thuật toán CLS. Thuật toán CLS được thiết kế theo chiến lược chia để trị từ
trên xuống và gồm các bước sau:
1)

Tạo một nút T, nút này gồm tất cả các mẫu của tập huấn luyện.

2)

Nếu tất cả các mẫu trong T có thuộc tính quyết định mang giá trị "yes"

(hay thuộc cùng một lớp), thì gán nhãn cho nút T là "yes" và dừng lại. T lúc
này là nút lá.
3)

Nếu tất cả các mẫu trong T có thuộc tính quyết định mang giá trị

"no" (hay thuộc cùng một lớp), thì gán nhãn cho nút T là "no" và dừng lại. T
lúc này là nút lá.
4) Trường hợp ngược lại các mẫu của tập huấn luyện thuộc cả hai lớp
"yes" và "no" thì:
i. Chọn một thuộc tính X trong tập thuộc tính của tập mẫu dữ
liệu, X có các giá trị v1,v2, …vn.
ii. Chia tập mẫu trong T thành các tập con T 1, T2,….,Tn. chia theo
giá trị của X.
iii. Tạo n nút con Ti (i=1,2…n) với nút cha là nút T.
iv. Tạo các nhánh nối từ nút T đến các nút Ti (i=1,2…n)
5)

Thực hiện lặp cho các nút con Ti(i =1,2..n) và quay lại bước 2.

22

Ví dụ: Cho tập dữ liệu huấn luyện thể hiện trong bảng dữ liệu 2.2, xây dựng
cây quyết định đi chơi tennis.
Day

Outlook

Temparature

Humidity

Wind

Play tennis

D1

Sunny

Hot

High

Weak

No

D2

Sunny

Hot

High

Strong

No

D3

Overcast

Hot

High

Weak

Yes

D4

Rain

Mild

High

Weak

Yes

D5

Rain

Cool

Normal

Weak

Yes

D6

Rain

Cool

Normal

Strong

No

D7

Overcast

Cool

Normal

Strong

Yes

D8

Sunny

Mild

High

Weak

No

D9

Sunny

Cool

Normal

Weak

Yes

D10

Rain

Mild

Normal

Weak

Yes

D11

Sunny

Mild

Normal

Strong

Yes

D12

Overcast

Mild

High

Strong

Yes

D13

Overcast

Hot

Normal

Weak

Yes

D14

Rain

Mild

High

Strong

No

Bảng 2.2 tập dữ liệu huấn luyện quyết định chơi tennis
Bảng dữ liệu trên là một tập các mẫu mô tả quyết định đi chơi tennis. Trong
bảng, thuộc tính Day được dùng để định danh (chỉ số). Các thuộc tính outlook
(quang cảnh bầu trời), temperature (nhiệt độ), humidity (độ ẩm), wind (gió) là các
thuộc tính ứng cử viên được dùng để xét. Còn thuộc tính play tennis là thuộc tính
khẳng định được dùng để phân lớp các mẫu dữ liệu. Khi đó cây quyết định được
xây dựng theo thuật toán CLS đối với tập dữ liệu trong bảng 2.2 được xây dựng như
sau:
-

Chọn thuộc tính outlook = {sunny, overcast, rain} ta có cây như sau:

23

Outlook
[ D1,D2,D3,D4,D5,D6,D7,D8,D9,D10,D11,D12,D13,D14 ]

Sunny

[D1,D2,D8,D9,D11]

(Cần mở rộng)

Overcast

Rain

[ D3,D7,D12,D13]

yes

[D4,D5,D6,D10,D14]

(cần mở rộng)

Hình 2.2
Với giá trị thuộc tính Outlook ="overcast" các giá trị thuộc tính play tennis của
{D3,D7,D12,D13} đếu có giá trị là yes, chúng thuộc cùng một lớp "yes", đây là nút
lá có nhãn là "yes".
-

Tiếp theo chọn thuộc tính Humidity = {High, normal} để mở rộng cho nhánh
bên trái của cây, chúng ta được cây như hình bên dưới.

24

Outlook
[ D1,D2,D3,D4,D5,D6,D7,D8,D9,D10,D11,D12,D13,D14 ]

Sunny

Overcast

[ D3,D7,D12,D13]

humidity

yes

Rain
[D4,D5,D6,D10,D14]

(cần mở rộng)

[D1,D2,D8,D9,D11]

High

normal

no

yes

Hình 2.3
-

Chọn thuộc tính wind ={weak, strong} để mở rộng cho nhánh bên phải, chúng ta
được cây con sau:

25

Outlook
[ D1,D2,D3,D4,D5,D6,D7,D8,D9,D10,D11,D12,D13,D14 ]

Sunny

Overcast

Rain
Wind

[ D3,D7,D12,D13]

Hhumidity

[D4,D5,D6,D10,D14]

yes

[D1,D2,D8,D9,D11]

Stron
High

Normal

no
no

Weak

g
no

yes

yes

Hình 2.4
Hình 2.4 là cây kết quả thu được khi áp dụng thuật toán CLS cho tập dữ liệu huấn
luyện trong bảng 2.2 với thứ tự các thuộc tính outlook, humidity, wind. Nếu áp
dụng thuật toán CLS với thứ tự khác của các thuộc tính ta sẽ thu được cây kết quả
có hình dạng khác.
Ví dụ: khi ta áp dụng thuật toán CLS để xây dựng cây với thứ tự các thuộc tính
được chọn là: Outlook, temperature, wind, humarity thì cây kết quả sẽ có hình dạng
như sau:

26

Outlook
[ D1,D2,D3,D4,D5,D6,D7,D8,D9,D10,D11,D12,D13,D14 ]

Sunny

Overcast

Rain

[ D3,D7,D12,D13]

Temperature

wind

yes

[D4,D5,D6,D10,D14]

[D1,D2,D8,D9,D11]

mild

hot
[D1,D2]

Humidity

no

[D9]

[D6,D14]

yes

[ D8,D11]
High

strong

cool

no

weak

[D4,D5,D10]
yes

normal

no

yes

Hình 2.5
Hai cây quyết định trong hình 2.4 và 2.5 là khác nhau. Điều đó nói lên rằng
khi áp dụng thuật toán CLS để xây dựng cây trên cùng một tập mẫu huấn luyện, cây
quyết định thu được phù thuộc vào việc chọn thuộc tính mở rộng cây ở bước 4).
Việc chọn thứ tụ thuộc tính mở rộng cây ảnh hưởng lớn đến hình dạng cây như độ
rộng, độ sâu hay nói cách khác là ảnh hưởng đến độ phức tạp của cây. Vậy một câu
hỏi đặt ra là thứ tự thuộc tính nào được chọn là tốt nhất để mở rộng cây sao cho độ
phức tạp của cây là nhỏ nhất và độ chính xác của việc phân lớp là tốt nhất. Vấn đề
này sẽ được giải quyết trong thuật toán ID3 dưới đây.
2.2.2. Thuật toán ID3
Thuật toán ID3 được phát biểu bởi Quinlan (trường đại học Syney,
Australia) và được công bố vào cuối thập niên 70 của thế kỷ 20. Sau đó, thuật toán
ID3 được giới thiệu và trình bày trong mục Induction on Decision Trees, Machine

27

learning năm 1986. ID3 là một thuật toán đơn giản nhưng tỏ ra thành công trong
nhiều lĩnh vực. ID3 biểu diễn các khái niệm (concept) ở dạng 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 đối tượng bằng cách kiểm tra giá
trị của nó trên một số thuộc tính nào đó. Nhiệm vụ của thuật toán ID3 là học cây
quyết định từ một tập dữ liệu rèn luyện. Nói cách khác giải thuật có:
Đầu vào: Một tập hợp các mẫu dữ liệu. Mỗi mẫu bao gồm các thuộc tính mô tả một
tình huống hoặc 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
rè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.
Thuật toán ID3 xây dựng cây quyết định dựa vào sự phân lớp các đối tượng (mẫu
huấn luyện) bằng cách kiểm tra giá trị các thuộc tính. ID3 xây dựng cây quyết định
từ trên xuống (top -down) bắt đầu từ một tập các đối tượng và các thuộc tính của nó.
Tại mỗi nút của cây, tiến hành việc kiểm tra các thuộc tính để tìm ra thuộc tính tốt
nhất được sử dụng để phân chia tập các đối tượng mẫu, theo các giá trị của thuộc
tính được chọn để mở rộng. Quá trình này được thực hiện một cách đệ quy cho đến
khi mọi đối tượng của phân vùng đều thuộc cùng một lớp; lớp đó trở thành nút lá
của cây. Để làm được việc này thuật toán ID3 có sử dụng tới hai hàm Entropy và
Gian
Hàm Entropy
Hàm Entropy dùng để đo tính thuần nhất của một tập mẫu dữ liệu. 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 bít cần thiết để mã hoá 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 hợp dữ liệu 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 bits cho thông điệp có
xác xuất là p.
Trong trường hợp S là một tập mẫu rèn luyện thì mỗi thành viên của S là một mẫu.
Mỗi mẫu thuộc một lớp hay có một giá trị phân loại.