You are on page 1of 55

Khai Phá Dữ Liệu

Nguyễn Nhật Quang


quangnn-fit@mail.hut.edu.vn

Viện Công nghệ Thông tin và Truyền thông


Trường Đại học Bách Khoa Hà Nội
Năm học 2010-2011
Nội dung môn học:

„ Giới thiệu về Khai phá dữ liệu


„ Giới thiệu về
ề công cụ WEKA
„ Tiền xử lý dữ liệu
„ Phát hiện các luật kết hợp
„ Các kỹ thuật phân lớp và dự đoán
‰ Phân lớp bằng phương pháp học Bayes
‰ Học cây quyết định

„ Các kỹ thuật phân nhóm

Khai Phá Dữ Liệu


2
Bài toán phân lớp
„ Bài toán phân lớp (Classification)
‰ Đối với một
ộ tập
ập các ví dụ/bản
ụ ghi
g ((instances/records)) – gọ
gọi là tập
ập
huấn luyện/học (training/learning set)
„ Mỗi bản ghi được biểu diễn bằng một tập các thuộc tính, trong
đó có một
ộ thuộc
ộ tính phân
p lớp
p ((class attribute))
‰ Tìm/học một hàm cho thuộc tính phân lớp (hàm phân lớp) đối
với các giá trị của các thuộc tính khác

„ Sử dụng một tập các ví dụ khác với các ví dụ học để


kiểm tra độ chính xác của hàm phân lớp học được – gọi
là tập kiểm thử (test set)
‰ Thông thường, tập dữ liệu ban đầu được chia thành 2 tập (không
giao nhau): training set (để học hàm phân lớp) và test set (để
kiểm thử hàm phân lớp học được)

Khai Phá Dữ Liệu


3
Phân lớp vs. Dự đoán
„ Bài toán phân lớp (Classification problem)
‰ Học một
H ột hàm
hà mục tiêu
tiê có
ó giá
iá ttrịị rời
ời rạc (a
( discrete-valued
di t l d ttargett
function)
„ Miền giá trị: một tập các nhãn lớp (class labels) xác địn trước
‰ Với mỗi ví dụ cần phân loại, hệ thống xác định nhãn lớp của nó

„ Bài toán dự
ự đoán/hồi q
quy
y ((Prediction/regression
g p
problem))
‰ Học một hàm mục tiêu có giá trị liên tục (a continuous-valued
target function)
„ Miề giá
Miền iá ttrị:
ị tập
tậ các
á giá
iá ttrịị số
ố thực
th (real
( l numbers)
b )
‰ Với mỗi ví dụ cần dự đoán, hệ thống xác định giá trị dự đoán của

Khai Phá Dữ Liệu


4
Học có vs. không có giám sát
„ Học có giám sát (supervised learning)
‰ Mỗi ví dụ học gồm 2 phần: mô tả (biểu diễn) của ví dụ học,
học và
nhãn lớp (hoặc giá trị đầu ra mong muốn) của ví dụ học đó
‰ Bài toán học phân lớp (classification problem)
D train = {(<Biểu
D_train {(<Biểu_diễn_của_x>,
diễn của x> <Nhãn_lớp_của_x>)}
<Nhãn lớp của x>)}
‰ Bài toán học dự đoán/hồi quy (prediction/regression problem)
D_train = {(<Biểu_diễn_của_x>, <Giá_trị_đầu_ra_của_x>)}

„ Học không có giám sát (unsupervised learning)


‰ Mỗi ví dụ học chỉ chứa mô tả (biểu diễn) của ví dụ học đó - mà
không có bất kỳ thông tin nào về nhãn lớp hay giá trị đầu ra mong
muốn của ví dụ học đó
‰ Bài toán học phân cụm (Clustering problem)
Tập học D_train
D train = {(<Biểu_diễn_của_x>)}
{(<Biểu diễn của x>)}

Khai Phá Dữ Liệu


5
Các khái niệm cơ bản về xác suất
„ Giả sử chúng ta có một thí nghiệm (ví dụ: đổ một quân xúc sắc) mà
kết quả của nó mang tính ngẫu nhiên (phụ thuộc vào khả năng có thể
xảy ra)
„ Không gian các khả năng S. Tập hợp tất cả các kết quả có thể xảy ra
Ví dụ: S {1 2 3 4 5 6} đối với thí nghiệm đổ quân xúc sắc
S= {1,2,3,4,5,6}
„ Sự kiện E. Một tập con của không gian các khả năng
Ví dụ: E= {1}: kết quả quân súc xắc đổ ra là 1
Ví dụ: E= {1,3,5}: kết
ế quả quân súc xắc
ắ đổ ổ ra là một số
ố lẻ
„ Không gian các sự kiện W. Không gian (thế giới) mà các kết quả của
ự kiện
sự ệ có thể xảy
y ra
Ví dụ: W bao gồm tất cả các lần đổ súc xắc
„ Biến ngẫu nhiên A. Một biến ngẫu nhiên biểu diễn (diễn đạt) một sự
kiện và có một mức độ về khả năng xảy ra sự kiện này
kiện,

Khai Phá Dữ Liệu


6
Biểu diễn xác suất
P(A): “Phần của không gian (thế giới) mà trong đó A là đúng”

Không gian sự
kiện ((khônggggian
của tất cả các giá
trị có thể xảy ra Không gian mà
của A) trong đó A là
đúng

Không gian mà
trong đó A là sai

[http://www cs cmu edu/~awm/tutorials]


[http://www.cs.cmu.edu/~awm/tutorials]

Khai Phá Dữ Liệu


7
Các biến ngẫu nhiên Bool
„ Một biến ngẫu nhiên Bool có thể nhận một trong 2 giá trị
đúng (true) hoặc sai (false)
„ Các tiên đề
• 0 ≤ P(A) ≤ 1
• P(true)= 1
• P(false)
P(false)= 0
• P(A V B)= P(A) + P(B) - P(A ∧ B)

„ Các hệ quả
• P(not A)≡ P(~A)= 1 - P(A)
P(A)= P(A ∧ B) + P(A ∧ ~B)
• P(A) B)

Khai Phá Dữ Liệu


8
Các biến ngẫu nhiên nhiều giá trị
Một biến ngẫu nhiên nhiều giá trị có thể nhận một trong số
k ((>2)) g
giá trị {v1,v2,…,vk}

P ( A = vi ∧ A = v j ) = 0 if i ≠ j
P(A=v1 V A=v2 V ... V A=vk) = 1
i
P( A = v1 ∨ A = v2 ∨ ... ∨ A = vi ) = ∑ P( A = v j )
k j =1

∑ P( A = v ) = 1
j =1
j

i
P(B ∧ [A = v1 ∨ A = v2 ∨ ... ∨ A = vi ]) = ∑ P( B ∧ A = v j )
j 1
j=
[http://www.cs.cmu.edu/~awm/tutorials]

Khai Phá Dữ Liệu


9
Xác suất có điều kiện (1)
„ P(A|B) là phần của không gian (thế giới) mà trong đó A
là đúng, với điều kiện (đã biết) là B đúng

„ Ví dụ
•A: Tôi sẽ đi đá bóng vào ngày mai
•B: Trời sẽ không mưa vào ngày mai
•P(A|B): Xác suất của việc tôi sẽ đi đá bóng vào
ngày mai nếu (đã biết rằng) trời sẽ không mưa (vào
ngày
à mai)
i)

Khai Phá Dữ Liệu


10
Xác suất có điều kiện (2)

P( A, B)
Định nghĩa: P( A | B) =
P( B)
Không
Các hệ
ệqquả: gian

P(A,B)=P(A|B).P(B) trong
đó B
đú
đúng
P(A|B)+P(~A|B)=1
Không gian mà
k trong
g đó A đúng
g
∑ P( A = v | B) = 1
i =1
i

Khai Phá Dữ Liệu


11
Các biến độc lập về xác suất (1)
„ Hai sự kiện A và B được gọi là độc lập về xác suất nếu
xác suất của sự kiện A là như nhau đối với các trường
g
hợp:
• Khi sự kiện B xảy ra, hoặc
• Khi sự kiện B không xảy ra,
ra hoặc
• Không có thông tin (không biết gì) về việc xảy ra của sự kiện B

„ Ví dụ
•A: Tôi sẽ đi đá bóng vào ngày mai
•B: Tuấn sẽ tham g
gia trận
ậ đá bóng
g ngày
g y mai
•P(A|B) = P(A)
→ “Dù Tuấn có tham gia trận đá bóng ngày mai hay không cũng không
ả hh
ảnh hưởng
ở tới quyết
ết định
đị h của
ủ tôi về
ề việc
iệ đi đá bóng
bó ngày
à mai.”
i”

Khai Phá Dữ Liệu


12
Các biến độc lập về xác suất (2)
Từ định nghĩa của các biến độc lập về xác suất
P(A), chúng ta thu được các luật như sau
P(A|B)=P(A),
P(A|B)

• P(~A|B) = P(~A)
• P(B|A) = P(B)
• P(A,B) = P(A). P(B)
• P(~A,B) = P(~A). P(B)
• P(A,~B) = P(A). P(~B)
• P(~A,~B) = P(~A). P(~B)

Khai Phá Dữ Liệu


13
Xác suất có điều kiện với >2 biến
„ P(A|B,C) là xác suất của A đối với (đã
biết) B và
àC B C

„ Ví dụ
• A: Tôi sẽ đi dạo bờ sông vào sáng mai A
• B: Thời tiết sáng mai rất đẹp
C Tôi sẽ
• C: ẽ dậy
dậ sớm
ớ vào
à sáng
á maii P(A|B C)
P(A|B,C)
• P(A|B,C): Xác suất của việc tôi sẽ đi dạo
ọ bờ sông
dọc g vào sángg mai,, nếu ((đã biết rằng)
g)
thời tiết sáng mai rất đẹp và tôi sẽ dậy sớm
vào sáng mai

Khai Phá Dữ Liệu


14
Độc lập có điều kiện
„ Hai biến A và C được gọi là độc lập có điều kiện đối với
biến B, nếu xác suất của A đối với B bằng xác suất của A
đối với B và C
„ Công
g thức định
ị nghĩa:
g P(A|B,C)
, = P(A|B)
„ Ví dụ
• A: Tôi sẽ đi đá bóng vào ngày mai
• B: Trận đá bóng ngày mai sẽ diễn ra trong nhà
• C: Ngày mai trời sẽ không mưa
• P(A|B,C)=P(A|B)
P(A|B,C) P(A|B)
→ Nếu biết rằng trận đấu ngày mai sẽ diễn ra trong nhà, thì xác
suất của việc tôi sẽ đi đá bóng ngày mai không phụ thuộc
vào thời tiết

Khai Phá Dữ Liệu


15
Các quy tắc quan trọng của xác suất
„ Quy tắc chuỗi (chain rule)
P(A B) = P(A|B).P(B)
• P(A,B) P(A|B) P(B) = P(B|A).P(A)
P(B|A) P(A)
• P(A|B) = P(A,B)/P(B) = P(B|A).P(A)/P(B)
• P(A,B|C) = P(A,B,C)/P(C) = P(A|B,C).P(B,C)/P(C)
= P(A|B,C).P(B|C)

„ Độc lập về xác suất và độc lập có điều kiện


• P(A|B) = P(A); nếu A và B là độc lập về xác suất
• P(A,B|C) = P(A|C).P(B|C); nếu A và B là độc lập có điều
kiện đối với C
• P(A1,…,An|C) = P(A1|C)…P(An|C); nếu A1,…,An là độc lập
có điều kiện đối với C

Khai Phá Dữ Liệu


16
Định lý Bayes
P ( D | h).P(h)
P(h | D) =
P (D
( D)
„ P(h): Xác suất trước (prior probability) của giả thiết (vd: phân
lớp) h
„ P(D): Xác suất trước của sự kiện tập dữ liệu D được quan sát
„ P(D|h): Xác suất ấ củaủ sự kiện tập dữ liệu D được quan sát,
nếu biết rằng giả thiết h là đúng
„ P(h|D): Xác suất (có điều kiện) của giả thiết h là đúng,
đúng nếu
biết rằng tập dữ liệu D được quan sát
→ Các phương pháp suy diễn dựa trên xác suất sẽ sử
dụng xác suất có điều kiện (posterior probability) này!
Khai Phá Dữ Liệu
17
Định lý Bayes – Ví dụ (1)
Giả sử chúng ta có tập dữ liệu sau (dự đoán 1 người có chơi tennis)?

Ngày Ngoài trời Nhiệt độ Độ ẩm Gió Chơi tennis


N1 Nắng Nóng Cao Yếu Không
N2 Nắng Nóng Cao Mạnh Không
N3 Â u
Âm Nó
Nóng C
Cao Yế
Yếu Có
N4 Mưa Bình thường Cao Yếu Có
N5 Mưa Mát mẻ Bình thường Yếu Có
N6 Mưa Mát mẻ
ẻ Bình thường Mạnh Không
N7 Âm u Mát mẻ Bình thường Mạnh Có
N8 Nắng Bình thường Cao Yếu Không
N9 Nắng
ắ Mát mẻ Bình thường Yếu
ế Có
N10 Mưa Bình thường Bình thường Yếu Có
N11 Nắng Bình thường Bình thường Mạnh Có
N12 Âm u Bình thường Cao Mạnh Có
[Mitchell, 1997] Khai Phá Dữ Liệu
18
Định lý Bayes – Ví dụ (2)
„ Giả thiết h: Anh ta chơi tennis
„ Tập dữ liệu D: Ngoài trời là nắng và Gió là mạnh
„ Xác suất P(h): Xác suất rằng anh ta chơi tennis (bất kể
Ngoài
g trời như thế nào và Gió ra sao))
„ Xác suất P(D): Xác suất rằng Ngoài trời là nắng và Gió là
mạnh
„ P(D|h): Xác suất rằng Ngoài trời là nắng và Gió là mạnh,
nếu biết rằng anh ta chơi tennis
„ P(h|D): Xác suất rằng anh ta chơi tennis
tennis, nếu biết rằng
Ngoài trời là nắng và Gió là mạnh
‰ Giá trị xác suất có điều kiện nàyy sẽ được dùng
g để dự đoán xem anh ta có
chơi tennis hay không?
Khai Phá Dữ Liệu
19
Cực đại hóa xác suất có điều kiện
„ Với một tập các giả thiết (các phân lớp) có thể H, hệ thống học
sẽ tìm g
giả thiết có thể xảyy ra nhất ((the most p
probable
hypothesis) h(∈H) đối với các dữ liệu quan sát được D

„ Giả thiết h này được gọi là giả thiết cực đại hóa xác suất có
điều kiện (maximum a posteriori – MAP)

hMAP = arg max P(h | D)


h∈H

P( D | h).P (h) (bởi định lý Bayes)


hMAP = arg max
h∈H
h∈ P (D
( D)
(P(D) là như nhau
hMAP = arg max P( D | h).P(h)
h∈H
h∈ đối với các g
giả thiết h))

Khai Phá Dữ Liệu


20
MAP – Ví dụ
„ Tập H bao gồm 2 giả thiết (có thể)
• h1: Anh ta chơi tennis
• h2: Anh ta không chơi tennis
„ Tính giá trị của 2 xác xuất có điều kiện: P(h1|D), P(h2|D)
„ Giả thiết có thể nhất hMAP=h1 nếu P(h1|D) ≥ P(h2|D); ngược
lại thì hMAP=h2
„ Bởi vì P(D)=P(D,h )+P(D h2) là như nhau đối với cả 2 giả
P(D)=P(D h1)+P(D,h
thiết h1 và h2, nên có thể bỏ qua đại lượng P(D)
„ Vì vậy,
ậy, cần tính 2 biểu thức: P(D|h
( | 1) ( 1) và
).P(h
P(D|h2).P(h2), và đưa ra quyết định tương ứng
• Nếu P(D|h1).P(h1) ≥ P(D|h2).P(h2), thì kết luận là anh ta chơi tennis
• Ngược
N l i thì kết luận
lại, l ậ là anh
h ta
t không
khô chơi
h i tennis
t i

Khai Phá Dữ Liệu


21
Đánh giá khả năng xảy ra cao nhất
„ Phương pháp MAP: Với một tập các giả thiết có thể H, cần
tìm một
ộ ggiả thiết cực
ự đại
ạ hóa g
giá trị:
ị P(D|h).P(h)
( | ) ( )
„ Giả sử (assumption) trong phương pháp đánh giá khả năng
xảy ra cao nhất (maximum likelihood estimation – MLE):
Tất cả
ả các
á giả
iả thiết đều
đề có
ó giá
iá ttrịị xác
á suất
ất trước
t ớ như
h nhau:
h
P(hi)=P(hj), ∀hi,hj∈H
„ Phương gpphápp MLE tìm g
giả thiết cực
ự đại
ạ hóa g
giá trịị P(D|h);
( | );
trong đó P(D|h) được gọi là khả năng xảy ra (likelihood) của
dữ liệu D đối với h
„ Giả thiết cực đại
đ i hó
hóa khả năng
ă xảy
ả ra (maximum
( i lik
likelihood
lih d
hypothesis)
hMLE = arg max P( D | h)
h∈H
h∈

Khai Phá Dữ Liệu


22
MLE – Ví dụ
„ Tập H bao gồm 2 giả thiết có thể
• h1: Anh ta chơi tennis
• h2: Anh ta không chơi tennis
D: Tập dữ liệu (các ngày) mà trong đó thuộc tính Outlook có giá trị Sunny
và thuộc tính Wind có giá trị Strong

„ Tính 2 giá trị khả năng xảy ra (likelihood values) của dữ liệu D
đối với 2 giả thiết: P(D|h1) và P(D|h2)
P(Ngoài-trời=Nắng, Gió=Mạnh | h1) = 1/8
• P(Ngoài-trời=Nắng
• P(Ngoài-trời=Nắng, Gió=Mạnh | h2) = 1/4
„ Giả thiết MLE hMLE=h1 nếu P(D|h1) ≥ P(D|h2); và ngược
g ợ
lại thì hMLE=h2
→ Bởi vì P(Ngoài-trời=Nắng, Gió=Mạnh | h1) < P(Ngoài-
trời=Nắng, g, Gió=Mạnh
ạ | h2), hệ
ệ thống
g kết luận
ậ rằng:
g Anh ta sẽ
không chơi tennis!
Khai Phá Dữ Liệu
23
Phân loại Naïve Bayes (1)
„ Biểu diễn bài toán phân loại (classification problem)
• Một tập học D_train,
D train trong đó mỗi ví dụ học x được biểu diễn là
một vectơ n chiều: (x1, x2, ..., xn)
• Một tập xác định các nhãn lớp: C={c1, c2, ..., cm}
• Với một ví dụ (mới) z, z sẽ được phân vào lớp nào?

„ Mục tiêu: Xác định phân lớp có thể (phù hợp) nhất đối với z
c MAP = arg max P(ci | z )
ci ∈C

c MAP = arg max P(ci | z1 , z 2 ,..., z n )


ci ∈C

P( z1 , z 2 ,..., z n | ci ).P(ci ) (bởi định lý Bayes)


c MAP = arg max
ci ∈C P( z1 , z 2 ,..., z n )

Khai Phá Dữ Liệu


24
Phân loại Naïve Bayes (2)
„ Để tìm được phân lớp có thể nhất đối với z…
c MAP = arg max P( z1 , z 2 ,..., z n | ci ).
) P ( ci ) (P(z1,z
z2,...,z zn) là
ci ∈C như nhau với các lớp)

„ Giả sử (assumption) trong phương pháp phân loại Naïve


Bayes. Các thuộc tính là độc lập có điều kiện (conditionally
independent) đối với các lớp
n
P( z1 , z 2 ,..., z n | ci ) = ∏ P( z j | ci )
j =1

„ Phân loại Naïve Bayes tìm phân lớp có thể nhất đối với z
n
c NB = arg max P (ci ).∏ P ( z j | ci )
ci ∈C j =1

Khai Phá Dữ Liệu


25
Phân loại Naïve Bayes – Giải thuật
„ Giai đoạn học (training phase), sử dụng một tập học
Đối với mỗi phân lớp có thể (mỗi nhãn lớp) ci∈C
• Tính giá trị xác suất trước: P(ci)
• Đối với mỗi giá trị thuộc tính xj, tính giá trị xác suất xảy ra
của g
giá trịị thuộc
ộ tính đó đối với mộtộ phân
p lớpp ci: P(x
( j|
|ci)

„ Giai đoạn phân lớp (classification phase), đối với một ví dụ mới
• Đối với mỗi phân lớp ci∈C, tính g
giá trị của biểu thức:
n
P(ci ).∏ P( x j | ci )
j =1

• Xác định phân lớp của z là lớp có thể nhất c*


n
c* = arg max P (ci ).∏ P ( x j | ci )
ci ∈C j =1

Khai Phá Dữ Liệu


26
Phân lớp Naïve Bayes – Ví dụ (1)
Một sinh viên trẻ với thu nhập trung bình và mức đánh giá tín dụng bình thường sẽ mua một cái máy tính?

Rec. ID Age Income Student Credit_Rating Buy_Computer


1 Young High No Fair No
2 Young High No Excellent No
3 Medium High No Fair Yes
4 Old M di
Medium N
No F i
Fair Y
Yes
5 Old Low Yes Fair Yes
6 Old Low Yes Excellent No
7 Medium Low Yes Excellent Yes
8 Young Medium No Fair No
9 Young Low Yes Fair Yes
10 Old Medium Yes Fair Yes
11 Young Medium Yes Excellent Yes
12 Medium Medium No Excellent Yes
13 Medium High Yes Fair Yes
14 Old Medium No Excellent No
http://www.cs.sunysb.edu
Khai Phá Dữ Liệu
/~cse634/lecture_notes/0 27
7classification.pdf
Phân lớp Naïve Bayes – Ví dụ (2)
„ Biểu diễn bài toán phân loại
• z = (Age
(Age=Young Income=Medium
Young,Income Student=Yes
Medium,Student Credit Rating=Fair)
Yes,Credit_Rating Fair)
• Có 2 phân lớp có thể: c1 (“Mua máy tính”) và c2 (“Không mua máy
tính”)

„ Tính giá trị xác suất trước cho mỗi phân lớp
• P(c1) = 9/14
• P(c2) = 5/14

„ Tính giá trị xác suất của mỗi giá trị thuộc tính đối với mỗi phân lớp
• P(Age=Young|c
( g g| 1) = 2/9;; P(Age=Young|c
( g g| 2) = 3/5
• P(Income=Medium|c1) = 4/9; P(Income=Medium|c2) = 2/5
• P(Student=Yes|c1) = 6/9; P(Student=Yes|c2) = 1/5
• P(Credit_Rating=Fair|c1) = 6/9; P(Credit_Rating=Fair|c2) = 2/5

Khai Phá Dữ Liệu


28
Phân lớp Naïve Bayes – Ví dụ (3)
„ Tính toán xác suất có thể xảy ra (likelihood) của ví dụ z đối với mỗi
phân lớp
• Đối
ố với phân lớp c1
P(z|c1) = P(Age=Young|c1).P(Income=Medium|c1).P(Student=Yes|c1).
P(Credit_Rating=Fair|c1) = (2/9).(4/9).(6/9).(6/9) = 0.044
• Đối với phân lớp c2
P(z|c2) = P(Age=Young|c2).P(Income=Medium|c2).P(Student=Yes|c2).
P(Credit_Rating=Fair|c2) = (3/5).(2/5).(1/5).(2/5) = 0.019

„ Xác định phân lớp có thể nhất (the most probable class)
• Đối với phân lớp c1
P(c1).P(z|c
) P(z|c1) = (9/14)
(9/14).(0.044)
(0 044) = 0
0.028
028
• Đối với phân lớp c2
P(c2).P(z|c2) = (5/14).(0.019) = 0.007
→ Kết luận: Anh ta (z) sẽ mua một máy tính!
Khai Phá Dữ Liệu
29
Phân lớp Naïve Bayes – Vấn đề (1)
„ Nếu không có ví dụ nào gắn với phân lớp ci có giá trị thuộc tính xj…
n
P(x
( j|
|ci))=0 , và vì vậy:
ậy P (c ).
) ∏
P( x | c ) = 0
i
j =1
j i

„ Giải pháp: Sử dụng phương pháp Bayes để ước lượng P(xj|ci)


n(ci , x j ) + mp
P ( x j | ci ) =
n(ci ) + m
• n(c ): số lượng
( i) ợ g các ví dụ
ụ họcọ g
gắn với p
phân lớp
p ci
• n(ci,xj): số lượng các ví dụ học gắn với phân lớp ci có giá trị thuộc
tính xj
• p: ước lượng đối với giá trị xác suất P(xj|ci)
→ Các ước lượng đồng mức: p=1/k, với thuộc tính fj có k giá trị có thể
• m: một hệ số (trọng số)
→ Để bổ sung cho n(ci) các ví dụ thực sự được quan sát với thêm
m mẫu ví dụ với ước lượng p
Khai Phá Dữ Liệu
30
Phân lớp Naïve Bayes – Vấn đề (2)
„ Giới hạn về độ chính xác trong tính toán của máy tính
•P(x )<1 đối với mọi giá trị thuộc tính xj và phân lớp ci
P(xj|ci)<1,
• Vì vậy, khi số lượng các giá trị thuộc tính là rất lớn, thì:
⎛ n ⎞
lim ⎜⎜ ∏ P ( x j | c i ) ⎟⎟ = 0
n→ ∞
⎝ j =1 ⎠

„ Giải pháp: Sử dụng hàm lôgarit cho các giá trị xác suất
⎛ ⎡ n ⎤⎞
c NB = arg max log ⎢ P(ci ).∏ P ( x j | ci )⎥ ⎟

⎜ ⎟
c ∈C
i
⎝ ⎣ j =1 ⎦⎠
⎛ n ⎞
c NB = arg max⎜ log P(ci ) + ∑ log P( x j | ci ) ⎟⎟

ci ∈C ⎝ j =1 ⎠

Khai Phá Dữ Liệu


31
Phân loại văn bản bằng NB (1)
„ Biểu diễn bài toán phân loại văn bản
• Tập học D_train, trong đó mỗi ví dụ học là một biểu diễn văn bản gắn với
một nhãn lớp: D = {(dk, ci)}
• Một tập các nhãn lớp xác định: C = {ci}

„ Giai đoạn học


• Từ tập các văn bản trong D_train, trích ra tập các từ khóa
(keywords/terms): T = {tj}
• Gọi D_c
D ci (⊆D_train)
(⊆D train) là tập các văn bản trong D_train
D train có nhãn lớp ci
• Đối với mỗi phân lớp ci D _ ci
- Tính giá trị xác suất trước của phân lớp ci: P ( ci ) =
D
- Đối với mỗi từ khóa tj, tính xác suất từ khóa tj xuất hiện đối với lớp ci
(∑ )
n(d k ,t j ) + 1 (n(dk,tj): số lần xuất hiện của
(∑ )
d k ∈D _ ci
P (t j | ci ) = từ khóa tj trong văn bản dk)
d k ∈D _ ci ∑t m ∈T
n( d k , t m ) + T

Khai Phá Dữ Liệu


32
Phân loại văn bản bằng NB (2)
„ Để phân lớp cho một văn bản mới d
„ Giai đoạn phân lớp
• Từ văn bản d, trích ra tập T_d gồm các từ khóa (keywords) tj đã
được định nghĩa trong tập T (T_d ⊆ T)
• Giả sửử (assumption).
( ti ) XácXá suất ất từ khóa
khó tj xuất
ất hiện
hiệ đối với
ới lớ
lớp
ci là độc lập đối với vị trí của từ khóa đó trong văn bản
P(tj ở vị trí k|ci) = P(tj ở vị trí m|ci), ∀k,m
• Đối với mỗi phân lớp ci, tính giá trị likelihood của văn bản d đối
với ci
P(ci ). ∏ P(t j | ci )
t j ∈T _ d

• Phân lớp văn bản d thuộc vào lớp c*


c * = arg max P(ci ). ∏ P(t j | ci )
ci ∈C t j∈ T _ d

Khai Phá Dữ Liệu


33
Học cây quyết định – Giới thiệu
„ Học cây quyết định (Decision tree –DT– learning)
• Để học (xấp xỉ) một hàm mục tiêu có giá trị rời rạc (discrete-
valued target function) – hàm phân lớp
• Hàm phân lớp được biểu diễn bởi một cây quyết định

„ Một cây quyết định có thể được biểu diễn (diễn giải) bằng một
tập các luật IF-THEN (dễ đọc và dễ hiểu)
„ Học cây
H â quyếtết định
đị h có
ó thể thực
th hiện
hiệ ngay cả
ả với
ới các
á dữ liệu
liệ có
ó
chứa nhiễu/lỗi (noisy data)
„ Là một
ộ trong
g các p
phươnggp
phápp học
ọ qquy
y nạp
ạp ((inductive
learning) được dùng phổ biến nhất
„ Được áp dụng thành công trong rất nhiều các bài toán ứng
d
dụng thực
th tế
Khai Phá Dữ Liệu
34
Ví dụ về DT: Những tin tức nào mà tôi quan tâm?

“sport”?
is present is absent

“player”? “football”?

is present is absent is present is absent

Interested Uninterested Interested “goal”?

is present is absent

Interested Uninterested

• (…,“sport”,…,“player”,…) → Interested
• (…,“goal”,…) → Interested
• (…,
( “sport”
sport ,…)) → Uninterested

Khai Phá Dữ Liệu


Ví dụ về DT: Một người có chơi tennis không?

Outlook=?
Sunny Rain
Overcast

Humidity=? Yes Wind=?

High Normal Strong Weak

No Yes No Yes

• (Outlook=Overcast, Temperature=Hot, Humidity=High,


Wind=Weak) → Yes
• (O
(Outlook=Rain,
a , Temperature=Mild,
p d, Humidity=High,
y g , Wind=Strong)
St o g)
→ No
• (Outlook=Sunny, Temperature=Hot, Humidity=High, Wind=Strong)
→ No

Khai Phá Dữ Liệu


36
Biểu diễn cây quyết định (1)
„ Mỗi nút trong (internal node) biểu diễn một thuộc tính cần
kiểm tra giá trị (an attribute to be tested) đối với các ví dụ
„ Mỗi nhánh (branch) từ một nút sẽ tương ứng với một giá
trị có thể của thuộc tính gắn với nút đó
„ Mỗi nút lá (leaf node) biểu diễn một phân lớp (a
classification))
„ Một cây quyết định học được sẽ phân lớp đối với một ví
dụ,
ụ, bằng
g cách duyệt
yệ câyy từ nút g
gốc đến một
ộ nút lá
→ Nhãn lớp gắn với nút lá đó sẽ được gán cho ví dụ cần phân lớp

Khai Phá Dữ Liệu


37
Biểu diễn cây quyết định (2)
„ Một cây quyết định biểu diễn một phép tuyển (disjunction)
của các kết hợp (conjunctions) của các ràng buộc đối với
các giá trị thuộc tính của các ví dụ
„ Mỗi đường đi (path) từ nút gốc đến một nút lá sẽ tương
ứng với một kết hợp (conjunction) của các kiểm tra giá trị
thuộc tính (attribute tests)
„ Cây quyết định (bản thân nó) chính là một phép tuyển
(disjunction) của các kết hợp (conjunctions) này
„ Các ví dụ
→ Hãy xét 2 cây quyết định đã nêu ở trước…

Khai Phá Dữ Liệu


38
Những tin tức nào mà tôi quan tâm?

“sport”?
is present is absent

“player”? “football”?

is present is absent is present is absent

Interested Uninterested Interested “goal”?

is present is absent

Interested Uninterested

[(“sport”
[( spo t is
sppresent)
ese t) ∧ (“player”
p aye issp ese t)] ∨
present

[(“sport” is absent) ∧ (“football” is present)] ∨


[(“sport”
[( sport is absent) ∧ (“football”
football is absent) ∧ (“goal”
goal is present)]

Khai Phá Dữ Liệu


39
Một người có chơi tennis không?

Outlook=?
Sunny Rain
Overcast

Humidity=? Yes Wind=?


High Normal Strong Weak

No Yes No Yes

[(Outlook=Sunny) ∧ (Humidity=Normal)] ∨
(Outlook=Overcast) ∨
(Outlook
[(Outlook=Rain) ∧ (Wind=Weak)]

Khai Phá Dữ Liệu


40
Giải thuật ID3 – Ý tưởng
„ Thực hiện quá trình tìm kiếm greedy search đối với không gian các cây
quyết định có thể
„ Xâydựng (học) một cây quyết định theo chiến lược top-down, bắt đầu
từ nút gốc
„Ở mỗi nút
nút, thuộc tính kiểm tra (test attribute) là thuộc tính có khả năng
phân loại tốt nhất đối với các ví dụ học gắn với nút đó
„ Tạomới một cây con (sub-tree) của nút hiện tại cho mỗi giá trị có thể
của thuộc tính kiểm tra,
tra và tập học sẽ được tách ra (thành các tập con)
tương ứng với cây con vừa tạo
„ Mỗi
thuộc tính chỉ được phép xuất hiện tối đa 1 lần đối với bất kỳ một
đ ờ đi nào
đường à ttrong cây
â
„ Quá trình phát triển (học) cây quyết định sẽ tiếp tục cho đến khi…
• Cây quyết định phân loại hoàn toàn (perfectly classifies) các ví dụ học, hoặc
• Tất cả các thuộc tính đã được sử dụng
Khai Phá Dữ Liệu
41
Giải thuật ID3
ID3_alg(Training_Set, Class_Labels, Attributes)
Create a node Root for the tree
If allll iinstances
t iin Training_Set
i i h
have th
the same class
l llabel
b l c, Return
R t th ttree off the
the th
single-node Root associated with class label c
If the set Attributes is empty, Return the tree of the single-node Root associated with
class label ≡ Majority_Class_Label(Training_Set)
A ← The attribute in Attributes that “best” classifies Training_Set
The test attribute for node Root ← A
For each possible value v of attribute A
Add a new ttree b branch
h under
d Root, corresponding
di tot the
th test:
t t “value
“ l off attribute
tt ib t A is
i v””
Compute Training_Setv = {instance x | x ⊆ Training_Set, xA=v}
If (Training_Setv is empty) Then
Create a leaf node with class label ≡ Majority_Class_Label(Training_Set)
Majority Class Label(Training Set)
Attach the leaf node to the new branch
Else Attach to the new branch the sub-tree ID3_alg(Training_Setv,
Class_Labels, {Attributes \ A})
R t
Return Root

Khai Phá Dữ Liệu


42
Lựa chọn thuộc tính kiểm tra
„ Rất quan trọng: tại mỗi nút, chọn thuộc tính kiểm tra như thế nào?
„ Chọn
ọ thuộc
ộ tính q
quan trọng
ọ g nhất cho việc
ệ pphân lớpp các ví dụ
ụ học
ọ ggắn
với nút đó
„ Làm thế nào để đánh giá khả năng của một thuộc tính đối với việc
phân tách các ví dụ
p ụ học
ọ theo nhãn lớp p của chúng?
g
→ Sử dụng một đánh giá thống kê – Information Gain
„ Ví dụ: Xét bài toán phân lớp có 2 lớp (c1, c2)
→ Thuộc tính nào,
nào A1 hay A2, nên được chọn là thuộc tính kiểm tra?

A1=? (c1: 35, c2: 25) A2=? (c1: 35, c2: 25)
v11 v13 v21 v22
v12
c1: 21 c1: 5 c1: 9 c1: 27 c1: 8
c2: 9 c2: 5 c2: 11 c2: 6 c2: 19

Khai Phá Dữ Liệu


43
Entropy
„ Một đánh giá thường được sử dụng trong lĩnh vực Information Theory
„ Để đánh g
giá mức độộ hỗn tạp
ạp ((impurity/inhomogeneity)
p y g y) của một
ộ tập
ập
„ Entropy của tập S đối với việc phân lớp có c lớp
c
Entropy ( S ) = ∑ − pi . log 2 pi
i =1
trong đó pi là tỷ lệ các ví dụ trong tập S thuộc vào lớp i, và 0.log20=0

„ Entropy
py của tập
ập S đối với việc
ệ pphân lớp
p có 2 lớp
p
Entropy(S) = -p1.log2p1 – p2.log2p2

„Ý nghĩa của entropy trong lĩnh vực Information Theory


→ Entropy của tập S chỉ ra số lượng bits cần thiết để mã hóa lớp của một
phần tử được lấy ra ngẫu nhiên từ tập S

Khai Phá Dữ Liệu


44
Entropy – Ví dụ với 2 lớp
„S gồm 14 ví dụ, trong đó 9 ví dụ thuộc về lớp c1
1
và 5 ví dụ thuộc về lớp c2

Entropy(S)
„ Entropy của tập S đối với phân lớp có 2 lớp:
0.5
Entropy(S) = -(9/14).log2(9/14)-
(5/14).log2(5/14) ≈ 0.94
0
„ Entropy =0, nếu tất cả các ví dụ thuộc cùng một 0.5 1
lớp (c1 hoặc c2) p1

„ Entropy =1, số lượng các ví dụ thuộc về lớp c1 bằng số lượng các ví


dụ thuộc về lớp c2

„ Entropy = một giá trị trong khoảng (0,1), nếu như số lượng các ví dụ
thuộc về lớp c1 khác với số lượng các ví dụ thuộc về lớp c2

Khai Phá Dữ Liệu


45
Information Gain
„ Information Gain của một thuộc tính đối với một tập các ví dụ:
• Mức độ giảm về Entropy
• Bởi
ở việc phân chia (partitioning) các ví dụ theo các giá trị của
ủ thuộc tính đó
„ Information Gain của thuộc tính A đối với tập S
| Sv |
Gain( S , A) = Entropy ( S ) − ∑
v∈Values ( A ) | S |
Entropy ( S v )

trong đó Values(A) là tập các giá trị có thể của thuộc tính A, và
Sv = {x | x∈S, xA=v}

„ Trong công thức trên, thành phần thứ 2 thể hiện giá trị Entropy
sau khi tập S được phân chia bởi các giá trị của thuộc tính A
„ Ý nghĩa của Gain(S,A): Số lượng bits giảm được (reduced)
đối với việc mã hóa lớp của một phần tử được lấy ra ngẫu
nhiên từ tập S, khi biết
ế giá trị của thuộc tính A
Khai Phá Dữ Liệu
46
Tập các ví dụ học
Xét tập dữ liệu S ghi lại những ngày mà một người chơi (không chơi) tennis:
Day Outlook Temperature Humidity Wind Play Tennis
D1 Sunny Hot High Weak No
D2 Sunny Hot High Strong No
D3 Overcast Hot High Weak Yes
D4 R i
Rain Mild Hi h
High W k
Weak Y
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

[Mitchell, 1997] Khai Phá Dữ Liệu


47
Information Gain – Ví dụ
„ Hãytính giá trị Information Gain của thuộc tính Wind đối với tập học S
– Gain(S,Wind)?
„ Thuộc tính Wind có 2 giá trị có thể: Weak và Strong
„S = {9 ví dụ lớp Yes và 5 ví dụ lớp No}
„ Sweak = {6 ví dụ lớp Yes và 2 ví dụ lớp No có giá trị Wind=Weak}
„ Sstrong = {3 ví dụ lớp Yes và 3 ví dụ lớp No có giá trị Wind=Strong}

| Sv |
Gain( S , Wind ) = Entropy ( S ) − ∑
v∈{Weak , Strong } | S |
Entropy ( S v )

= Entropy ( S ) − (8 / 14).Entropy ( SWeak ) − (6 / 14).Entropy ( S Strong )

= 0.94 − (8 / 14).(0.81) − (6 / 14).(1) = 0.048

Khai Phá Dữ Liệu


48
Học cây quyết định – Ví dụ (1)
„ Tại nút gốc, thuộc tính nào trong số {Outlook, Temperature,
Humidity, y, Wind}} nên được
ợ chọnọ là thuộc
ộ tính kiểm tra?
• Gain(S, Outlook) = ... = 0.246
• Gain(S, Temperature) = ... = 0.029
• Gain(S
Gain(S, Humidity) = ... = 0
0.151
151
• Gain(S, Wind) = ... = 0.048

→Vì vậy, Outlook được chọn là thuộc tính kiểm tra cho nút gốc!

Outlook=? S={9+, 5-}

Sunny Overcast Rain

Node1 Yes Node2


SSunny={2+, 3-} SOvercast={{4+, 0-} SRain
S R i ={3+, 2-}

Khai Phá Dữ Liệu


49
Học cây quyết định – Ví dụ (2)
„ Tạinút Node1, thuộc tính nào
trong số {Temperature, Outlook=? S={9+, 5-}
Humidity,
idi i d} nên
Wind} ê được
đ
Sunny
chọn là thuộc tính kiểm tra? Overcast Rain
SSunny=
Lưu ý! Thuộc tính Outlook bị {2+, 3-}
loại ra,
ra bởi vìì nó đã được
đ ợc sử H idit ?
Humidity=? Yes Node2
dụng bởi cha của nút Node1 (là SOvercast=
{4+, 0-} SRain=
nút gốc) {3+, 2-}
• Gain(SSunny, Temperature) =
=...=
= High Normal
0.57
• Gain(SSunny, Humidity) = ... = 0.97 Node3 Node4
• Gain(SSunny, Wind) = ... = 0.019 SHigh= SNormal=
{0+, 3-} {2+, 0-}
→Vì vậy, Humidity được chọn
là thuộc tính kiểm tra cho nút
Node1!
Khai Phá Dữ Liệu
50
Học cây quyết định – Chiến lược tìm kiếm (1)
„ ID3 tìm kiếm trong không gian các giả thiết (các cây
quyết định có thể) một cây quyết định phù hợp (fits) các
ví dụ học
„ ID3 thực hiện chiến lược tìm kiếm từ đơn giản đến phức
tạp, bắt đầu với cây rỗng (empty tree)
„ Quá trình tìm kiếm của ID3 được
ợ điều khiển bởi độ
ộ đo
đánh giá Information Gain
„ ID3 chỉ tìm kiếm một ((chứ không
gpphải tất cả các)) câyy
quyết định phù hợp với các ví dụ học

Khai Phá Dữ Liệu


51
Học cây quyết định – Chiến lược tìm kiếm (2)
„ Trong quá trình tìm kiếm, ID3 không thực hiện quay lui
(not backtrack)
→ Chỉ đảm bảo tìm được lời giải tối ưu cục bộ (locally optimal
solution) – chứ không đảm bảo tìm được lời giải tối ưu tổng thể
(globally optimal solution)
→ Một khi một thuộc tính được chọn là thuộc tính kiểm tra cho một
nút, thì ID3 không bao giờ cân nhắc lại (backtracks to
reconsider)
id ) llựa chọn
h này
à

„ Ở mỗi bước trong quá trình tìm kiếm, ID3 sử dụng một đánh
giá thống kê (Information Gain) để cải thiện giả thiết hiện tại
→ Nhờ vậy, quá trình tìm kiếm (lời giải) ít bị ảnh hưởng bởi các lỗi
(nếu có) của một số ít ví dụ học

Khai Phá Dữ Liệu


52
Ưu tiên trong học cây quyết định (1)
„ Cả 2 cây quyết định dưới đây đều phù hợp với tập học đã cho
„ Vậy thì, cây quyết định nào sẽ được ưu tiên (được học) bởi
thì
giải thuật ID3?

Outlook=? O tl k ?
Outlook=?
Sunny Rain Sunny Overcast Rain
Overcast

Humidity=? Y
Yes Wind=? Temperature=? Y
Yes Wind=?
i
High Normal Strong Weak Hot Cool Mild Strong Weak

No Yes No Yes No Yes Humidity=? No Yes


High Normal

No Yes

Khai Phá Dữ Liệu


53
Ưu tiên trong học cây quyết định (2)
„ Đối với một tập các ví dụ học, có thể tồn tại nhiều (hơn 1)
cây quyết định phù hợp với các ví dụ học này
„ Cây quyết định nào (trong số đó) được chọn?
„ ID3 chọn
h cây â quyết
ết định
đị h phù
hù h
hợp đầu
đầ tiê
tiên tì
tìm thấy
thấ trong
t
quá trình tìm kiếm của nó
→Lưu ý là trong quá trình tìm kiếm, giải thuật ID3 không bao giờ
cân nhắc lại các lựa chọn trước đó (without backtracking)

„ Chiến lược tìm kiếm của giải thuật ID3


• Ưu
Ư tiên
tiê các
á cây
â quyết
ết định
đị h đơn
đ giản
iả (ít mức
ứ độ sâu)
â )
• Ưu tiên các cây quyết định trong đó một thuộc tính có giá trị
Information Gain càng lớn thì sẽ là thuộc tính kiểm tra của một
nút càng gần
ầ nút gốc

Khai Phá Dữ Liệu
54
Các vấn đề trong học cây quyết định
„ Cây quyết định học được quá phù hợp (over-fit) với các
ví dụ học
„ Xử lý các thuộc tính có kiểu giá trị liên tục (kiểu số thực)
„ Các đá
Cá đánhh giá
iá phù
hù h
hợp hơn
h (tốt hơn
h Information
I f ti Gain)
G i ) đối
với việc xác định thuộc tính kiểm tra cho một nút
„ Xử lý các ví dụ học thiếu giá trị thuộc tính (missing-value
(missing value
attributes)
„ Xử lý các thuộc tính có chi phí (cost) khác nhau

→ Cải tiến của giải thuật ID3 với tất cả các vấn đề nêu trên
được giải quyết: giải thuật C4
C4.55
Khai Phá Dữ Liệu
55

You might also like