Khai Phá Dữ Liệu
Nguyễn Nhật Quang
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ụ WEK
A
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ớpvàdự đoán
Các
kỹ
thuật
phân
lớp
và
dự
đoán
Các kỹ thuật phân nhóm
Phân nhóm dựatrênchiacắt(k
-
Means)
Phân
nhóm
dựa
trên
chia
cắt
(k
-
Means)
Phân nhóm dựa trên tích tụ phân cấp (HAC)
2
Khai Phá Dữ Liệu
H
ọ
c có vs. khôn
g
có
g
iám sát
ọ gg
Học có giám sát (Supervised learning)
Tậpdữ liệu (dataset) bao gồmcácvídụ mà mỗivídụ được
gắn
Tập
dữ
liệu
(dataset)
bao
gồm
các
ví
dụ
,
mà
mỗi
ví
dụ
được
gắn
kèm với một nhãn lớp/giá trị đầu ra mong muốn
Mục đích là học (xấp xỉ) một giả thiết (vd: một phân lớp, một hàm
mục tiêu ) phù hợpvớitậpdữ liệuhiệncó
mục
tiêu
,
)
phù
hợp
với
tập
dữ
liệu
hiện
có
Giả thiết học được (learned hypothesis) sau đó sẽ được dùng để
phân lớp/dự đoán đối với các ví dụ mới
Học không có giám sát (Unsupervised learning)
Tập dữ liệu (dataset) bao gồm các ví dụ, mà mỗi ví dụ không có
thông tin về nhãn lớp/giá trị đầu ra mong muốn
thông
tin
về
nhãn
lớp/giá
trị
đầu
ra
mong
muốn
Mục đích là tìm ra (học) các nhóm/các cấu trúc/các quan hệ tồn tại
trong tập dữ liệu hiện có
3
Khai Phá Dữ Liệu
Phân nhóm
Phân nhóm/cụm (Clustering) là phương pháp học không
có giám sát đượcsử dụng phổ biếnnhất
có
giám
sát
được
sử
dụng
phổ
biến
nhất
Tồn tại các phương pháp học không có giám sát khác, ví dụ: Lọc
cộng tác (Collaborative filtering), Khai phá luật kết hợp
(Association rule mining)
(Association
rule
mining)
,
Học phân nhóm
Đầu vào: mộttậpdữ liệu không có nhãn (các ví dụ không có nhãn
Đầu
vào:
một
tập
dữ
liệu
không
có
nhãn
(các
ví
dụ
không
có
nhãn
lớp/giá trị đầu ra mong muốn)
Đầu ra: các nhóm (cụm) của các ví dụ
Một nhóm (cluster) là một tập các ví dụ
Tương tự với nhau (theo một ý nghĩa, đánh giá nào đó)
Khác biệtvớicácvídụ thuộc các nhóm khác
Khác
biệt
với
các
ví
dụ
thuộc
các
nhóm
khác
4
Khai Phá Dữ Liệu
Phân nhóm – Ví d
ụ
ụ
Mộtvídụ về phân nhóm – trong đó, các ví dụ
đ
hâ
hi
thà h
3
hó
đ
ượcp
hâ
nc
hi
a
thà
n
h
3
n
hó
m
[Liu, 2006]
5
Khai Phá Dữ Liệu
Phân nhóm – Các thành
p
hần
p
Hàm tính khoảng cách (độ tương tự, độ khác biệt)
ả
Gi
ả
ithuật phân nhóm
• Phân nhóm dựatrênchiacắt (Partition-based clustering)
•
Phân
nhóm
dựa
trên
tích
tụ
phân
cấp
(Hierarchical clustering)
•
Phân
nhóm
dựa
trên
tích
tụ
phân
cấp
(Hierarchical
clustering)
• Bản đồ tự tổ thức (Self-organizing map – SOM)
• Các mô hình hỗnh
ợp
(
Mixture models
)
ợp
()
• …
Đánh
giá
chất
lượng
phân
nhóm
(Clustering quality)
Đánh
giá
chất
lượng
phân
nhóm
(Clustering
quality)
• Khoảng cách/sự khác biệt giữa các nhóm → Cần được cực đại hóa
• Khoảng cách/dự khác biệt bên trong một nhóm → Cần được cực
ể
ti
ể
u hóa
6
Khai Phá Dữ Liệu
Phân nhóm k-Means
Là phương pháp phổ biến nhất trong các phương pháp
phân nhóm dựatrênchiacắt (partition
-
based clustering)
phân
nhóm
dựa
trên
chia
cắt
(partition
based
clustering)
Tập dữ liệu D={x
1
,x
2
,…,x
r
}
•
là mộtvídụ (mộtvectơ trong một không gian
n
chiều)
•
x
i
là
một
ví
dụ
(một
vectơ
trong
một
không
gian
n
chiều)
Giải thuật k-means phân chia (partitions) tập dữ liệu
thành
k
nhóm
thành
k
nhóm
• Mỗi nhóm (cluster) có một điểm trung tâm, được gọi là centroid
•
k
(tổng số các nhóm thu được) là mộtgiátrị đượcxácđịnh trước
k
(tổng
số
các
nhóm
thu
được)
là
một
giá
trị
được
xác
định
trước
(vd: được chỉ định bởi người thiết kế hệ thống phân nhóm)
7
Khai Phá Dữ Liệu
k-Means – Các bước chính
Với một giá trị k được xác định trước
B ớ 1Ch ẫ hiê
k
íd (đ ilà
áht
•
B
ư
ớ
c
1
.
Ch
ọn ng
ẫ
u n
hiê
n
k
v
í
d
ụ
(đ
ược gọ
i
là
c
á
c
h
ạ
t
nhân – seeds) để sử dụng làm các điểm trung tâm ban
đầu
(
initial centroids
)
của
k
nhóm
(
)
• Bước 2. Đối với mỗi ví dụ, gán nó vào nhóm (trong số k
nhóm) có điểm trung tâm (centroid) gần ví dụ đó nhất
• Bước 3. Đối với mỗi nhóm, tính toán lại điểm trung tâm
(centroid) của nó dựa trên tất cả các ví dụ thuộc vào
nhóm đó
nhóm
đó
• Bước 4. Dừng lại nếu điều kiện hội tụ (convergence
criterion
) đượcthỏa mãn; nếu không, quay lạiBước2
criterion
)
được
thỏa
mãn;
nếu
không,
quay
lại
Bước
2
8
Khai Phá Dữ Liệu
k-means(D, k)
D
: The dataset
D
:
The
dataset
k: The number of clusters
Randomly select
k
instances in
D
as the initial centroids
Randomly
select
k
instances
in
D
as
the
initial
centroids
while not CONVERGENCE
for each instance x∈D
Compute the distance from x to each centroid
Assign x to the cluster whose centroid is closest to x
df
en
d
f
or
for each cluster
Re-com
p
ute its centroid based on its own instances
p
end while
return {The k clusters}
9
Khai Phá Dữ Liệu
Điều ki
ệ
n h
ộ
i t
ụ
ệ ộ ụ
Quá trình phân nhóm kết thúc, nếu:
•
Không có (hoặc có không đáng kể)việc gán lạicácvídụ vào các
•
Không
có
(hoặc
có
không
đáng
kể)
việc
gán
lại
các
ví
dụ
vào
các
nhóm khác, hoặc
• Không có (hoặc có không đáng kể) thay đổi về các điểm trung tâm
(tid)ủ áhó
h ặ
(
cen
t
ro
id
s
)
c
ủ
a c
á
c n
hó
m,
h
o
ặ
c
• Giảm không đáng kể về tổng lỗi phân nhóm:
k
C
i
: Nhóm thứ i
∑
∑
=∈
=
k
iC
i
dError
1
2
),(
x
i
mx
m
i
: Điểm trung tâm (centroid) của nhóm
C
i
d(x, m
i
): Khoảng cách (khác biệt) giữa ví dụ x và điểm trung
tâm m
i
10
Khai Phá Dữ Liệu
k-Means – Minh h
ọ
a
(
1
)
ọ ()
11
Khai Phá Dữ Liệu
[Liu, 2006]
k-Means – Minh h
ọ
a
(
2
)
ọ ()
12
Khai Phá Dữ Liệu
[Liu, 2006]
Điểm trung tâm, Hàm khoảng cách
Xác định điểm trung tâm: Điểm trung bình (Mean centroid)
1
•
(
vectơ
)
m
i
là điểm trun
g
tâm
(
centroid
)
của nhóm
C
i
∑
∈
=
i
C
i
C
x
i
xm
1
( )
i
g( )
i
• |C
i
| kích thước của nhóm C
i
(tổng số ví dụ trong C
i
)
Hàm khoảng cách:
Euclidean distance
Hàm
khoảng
cách:
Euclidean
distance
()( )( )
22
22
2
11
),(
innii
mxmxmxd −++−+−=−=
ii
mxmx
• (vectơ) m
i
là điểm trung tâm (centroid) của nhóm C
i
• d(x,m
i
) là khoảng cách giữa ví dụ x và điểm trung tâm m
i
13
Khai Phá Dữ Liệu
k-Means – Các ưu điểm
Đơn giản
Rấtdễ ài đặt
•
Rất
dễ
c
ài
đặt
• Rất dễ hiểu
Hiệ ả
Hiệ
u qu
ả
• Độ phức tạp về thời gian ~ O(r.k.t)
r
:Tổng số các ví dụ (kích thướccủatậpdữ liệu)
r
:
Tổng
số
các
ví
dụ
(kích
thước
của
tập
dữ
liệu)
k: Tổng số nhóm thu được
t: Tổng số bước lặp (của quá trình phân nhóm)
ế ả
ề ỏ ả
• N
ế
u c
ả
2 giá trị
k
và
t
đ
ề
u nh
ỏ
, thì gi
ả
i thuật
k
-means được xem
như là có độ phức tạp ở mức tuyến tính
k
means là giảithuật phân nhóm được dùng phổ biếnnhất
k
-
means
là
giải
thuật
phân
nhóm
được
dùng
phổ
biến
nhất
14
Khai Phá Dữ Liệu
k-Means – Các nhược điểm (1)
Giá trị k (số nhóm thu được) phải được xác định trước
Giải thuật k-means cần xác định cách tính điểm trung bình
(centroid) của một nhóm
ố
•
Đố
i với các thuộc tính định danh (nominal attributes), giá trị trung
bình có thể được xác định là giá trị phổ biến nhất
Giảithuật
k
means nhạycảm(gặplỗi) với
các ví dụ
Giải
thuật
k
-
means
nhạy
cảm
(gặp
lỗi)
với
các
ví
dụ
ngoại lai (outliers)
• Các ví d
ụ
n
g
o
ạ
i lai là các ví d
ụ
(
rất
)
khác bi
ệ
t với tất các ví d
ụ
khác
ụ g ạ ụ ( ) ệ ụ
• Các ví dụ ngoại lai có thể do lỗi trong quá trình thu thập/lưu dữ liệu
• Các ví dụ ngoại lai có các giá trị thuộc tính (rất) khác biệt với các
giá trị thuộc tính của các ví dụ khác
15
Khai Phá Dữ Liệu
k-Means – Các ví d
ụ
n
g
o
ạ
i lai
ụ g ạ
16
Khai Phá Dữ Liệu
[Liu, 2006]
Giải
q
u
y
ết vấn đề n
g
o
ạ
i lai
qy g ạ
• Giải pháp 1. Trong quá trình phân nhóm, cần loại bỏ một số
các ví d
ụ
q
uá khác bi
ệ
t với
(
cách xa
)
các điểm trun
g
tâm
ụ q ệ () g
(centroids) so với các ví dụ khác
─ Để chắc chắn (không loại nhầm), theo dõi các ví dụ ngoại lai
(outliers) qua một vài (thay vì chỉ 1) bướclặp phân nhóm trước
(outliers)
qua
một
vài
(thay
vì
chỉ
1)
bước
lặp
phân
nhóm
,
trước
khi quyết định loại bỏ
• Giải
p
há
p
2. Th
ự
c hi
ệ
n vi
ệ
c lấ
y
mẫu n
g
ẫu nhiên
(
a random
pp ự ệ ệ y g (
sampling)
─ Do quá trình lấy mẫu chỉ lựa chọn một tập con nhỏ của tập dữ
liệu ban đầu nên khả năng một ngoại lai (outlier) đượcchọnlà
liệu
ban
đầu
,
nên
khả
năng
một
ngoại
lai
(outlier)
được
chọn
là
rất nhỏ
─ Gán các ví dụ còn lại của tập dữ liệu vào các nhóm tùy theo đánh
giá về khoảng cách (hoặc độ tương tự)
giá
về
khoảng
cách
(hoặc
độ
tương
tự)
17
Khai Phá Dữ Liệu
k-Means – Các nhược điểm (2)
Giải thuật k-means phụ thuộc vào việc chọn các điểm trung tâm ban
đầu (initial centroids)
1
st
centroid
2
nd
centroid
2
nd
centroid
18
Khai Phá Dữ Liệu
[Liu, 2006]
k-Means – Các hạt nhân ban đầu (1)
Sử dụng các hạt nhân (seeds) khác nhau → Kết quả tốt hơn!
•
Thựchiệngiảithuật
k
-
means nhiềulần, mỗilầnbắt đầuvớimộttập (khác
Thực
hiện
giải
thuật
k
means
nhiều
lần,
mỗi
lần
bắt
đầu
với
một
tập
(khác
lần trước) các hạt nhân được chọn ngẫu nhiên
19
Khai Phá Dữ Liệu
[Liu, 2006]
k-Means – Các hạt nhân ban đầu (2)
Lựa chọn ngẫu nhiên hạt nhân thứ 1 (m
1
)
Lựa chọn hạt nhân thứ 2 (m
2
) càng xa càng tốt so với
hạt nhân thứ 1
…
Lựa chọn hạt nhân thứ i (m
i
) càng xa càng tốt so với hạt
nhân gầnnhất trong số {
m
m
m
}
nhân
gần
nhất
trong
số
{
m
1
,
m
2
, … ,
m
i
-
1
}
20
Khai Phá Dữ Liệu
k-Means – Các nhược điểm (3)
Giải thuật k-means không phù hợp để phát hiện các
nhóm (cụm) không có dạng hình elip hoặchìnhcầu
nhóm
(cụm)
không
có
dạng
hình
elip
hoặc
hình
cầu
21
Khai Phá Dữ Liệu
[
Liu, 2006]
Phân nhóm tích tụ phân cấp (1)
Sinh ra một chuỗi lồng nhau của các nhóm, được gọi là
dendro
g
ram
g
• Cũng được gọi là một phân loại (taxonomy)/phân cấp
(hierarchy)/cây (tree) của các ví dụ
22
Khai Phá Dữ Liệu
[Liu, 2006]
Phân nhóm tích tụ phân cấp (2)
Phân nhóm dựa trên tích tụ phân cấp (Hierarchical
Agglomerative Clustering
–
HAC) sẽ xây dựng dendrogram
Agglomerative
Clustering
HAC)
sẽ
xây
dựng
dendrogram
từ mức đáy (cuối) dần lên (bottom-up)
GiảithuậtHAC
Giải
thuật
HAC
• Bắt đầu, mỗi ví dụ chính là một nhóm (là một nút trong dendrogram)
• H
ợp
nhất 2 nhóm có mức đ
ộ
tươn
g
t
ự
(g
ần
)
nhau nhất
ợp ộ g ự (g )
Cặp 2 nhóm có khoảng cách nhỏ nhất trong số các cặp nhóm
• Tiếp tục quá trình hợp nhất
• Giải thuật kết thúc khi tất cả các ví dụ được hợp nhất thành một
nhóm duy nhất (là nút gốc trong dendrogram)
23
Khai Phá Dữ Liệu
Giải thu
ậ
t HAC – Ví d
ụ
ậ
ụ
(Venn diagram)
24
Khai Phá Dữ Liệu
[Liu, 2006]
Khoản
g
cách
g
iữa 2 nhóm
gg
Giải thuật HAC cần định nghĩa việc tính toán khoảng cách
giữa 2 nhóm
giữa
2
nhóm
• Trước khi hợp nhất, cần tính khoảng cách giữa mỗi cặp 2 nhóm có
thể
Có nhiều phương pháp để đánh giá khoảng cách giữa 2
nhóm – đưa đến các biến thể khác nhau của giải thuật HAC
• Liên kết đơn (Single link)
• Liên kết hoàn toàn (Complete link)
•
Liên kết trung bình (Average link)
•
Liên
kết
trung
bình
(Average
link)
• Liên kết trung tâm (Centroid link)
• …
25
Khai Phá Dữ Liệu