Tải bản đầy đủ (.docx) (15 trang)

Cải tiến thuật toán K-means trong phân cụm dữ liệu tự động

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (303.89 KB, 15 trang )

MỤC LỤC
1
GOM CỤM DỮ LIỆU
I. Giới thiệu
Ngày nay sự phát triển nhanh chóng của mạng Internet đã sinh ra một khối
lượng khổng lồ các dữ liệu, để khai thác dữ liệu ấy 1 cách chính xác và hiệu
quả là 1 vấn đề được đặt ra.
Có nhiều hướng tiếp cận khác nhau để giải quyết vấn đề này. Các hướng
này thường chú ý giảm sự nhập nhằng bằng các phương pháp lọc hay thêm
các tùy chọn để cắt bớt thông tin và hướng biểu diễn các thông tin trả về bởi
các máy tìm kiếm thành từng cụm để cho người dùng có thể dễ dàng tìm
được thông tin mà họ cần. Đã có nhiều thuật toán phân cụm tài liệu dựa trên
phân cụm ngoại tuyến toàn bộ tập tài liệu. Tuy nhiên việc tập hợp tài liệu của
các máy tìm kiếm là quá lớn và luôn thay đổi thì khó có thể phân cụm ngoại
tuyến. Do đó, việc phân cụm phải được ứng dụng trên tập các tài liệu nhỏ
hơn được trả về từ các truy vấn và thay vì trả về một danh sách rất dài các
thông tin gây nhập nhằng cho người sử dụng cần có một phương pháp tổ
chức lại các kết quả tìm kiếm một cách hợp lý.
Hiện nay, đã có nhiều kỹ thuật, thuật toán về thu thập, phân cụm dữ liệu tự
động tuy nhiên hầu hết các kỹ thuật này khi phân cụm đều yêu cầu xác định số
cụm cần thực thi đặc biệt là với thuật toán K-means hoặc yêu cầu mức độ khác
biệt trong việc xác định các thành phần có tính chất giống nhau. Ngoài ra, các
kỹ thuật này còn đòi hỏi phải chọn trước số điểm làm trọng tâm, với số điểm
chọn ngẫu nhiên làm trọng tâm này sẽ cho các kết quả khác nhau. Do vậy,
các kết quả trên có thể là không chính xác, với mức độ sai số có thể rất lớn.
Để khắc phục nhược điểm trên, việc cải tiến thuật toán K- means trong thu
thập, phân cụm tài liệu và thay vì chọn số điểm làm trọng tâm, chúng ta không
chọn số điểm làm trọng tâm cho số cụm mà sẽ tăng số cụm từ 1 lên k cụm
bằng cách đưa trung tâm cụm mới vào cụm có mức độ biến dạng lớn nhất và
tính lại trọng tâm các cụm
II. Tóm tắt lý thuyết


2
a. Gom cụm là gì?
Gom cụm chính là gom các đối tượng gần với nhau trong cùng cụm
và các đối tượng không tương tự vào cụm khác.
Khi gom cụm ta có được các nhóm phân biệt nhằm mục đích có lợi
cho việc khai phá dữ liệu.
Một số ứng dụng của gom cụm:
- Bảo hiểm: nhận dạng các nhóm công ty có chính sách bảo hiểm
với chi phí đền bù trung bình cao.
- Quy hoạch đô thị: nhận dạng các nhóm nhà theo lọai nhà, giá trị,
vị trí
- Nhu cầu sử dụng đất: nhận dạng các vùng đất sử dụng giống
nhau khi khảo sát
- Tiếp thị sản phẩm: khám phá các mặt hàng phân biệt trong cơ
sở dữ liệu mua hàng.
Các tiêu chí để đánh giá gom cụm được gọi là tốt:
- Tạo ra các cụm có chất lượng caoi với: tương tự cao trong lớp
và tương tự thấp giữa các lớp.
- Chất lượng gom cụm phụ thuộc vào: độ đo tương tự sử dụng và
cài đặt độ đo tương tự.
- Khả năng phát hiện các mẫu bị che khuất.
Một số yêu cầu khi gom cụm:
- Khám phá các cụm có hình dáng bất kỳ
- Có khả năng làm việc các thuộc tính khác nhau
- Có thể thay đổi kích thước
- Khả năng làm việc với outliers
- không nhạy cảm với thứ tự các bản ghi nhập vào
- Có thể diễn dịch và khả dụng
b. Vấn đề tương tự và không tương tự giữa hai đối tượng
Định nghĩa vấn đề tương tự và không tương tự giữa hai đối tượng

tùy thuộc vào: lọai dữ liệu khảo sát và lọai tương tự cần thiết.
Tương tự và không tương tự giữa hai đối tượng thường được biểu
diễn qua khoảng cách(x,y)
c. Các loại dữ liệu trong phân tích cụm
- Các biến khoảng tỉ lệ
- Biến nhị phân
3
- Các biến định danh, thứ tự, tỉ lệ
- Các biến có kiểu hỗn hợp
- Các kiểu dữ liệu phức tạp
d. Các phưong pháp gom cụm chính yếu
- Các phương pháp phân hoạch
- Các phương pháp phân cấp
- Các phương pháp dựa trên mật độ
- Các phương pháp dựa trên mô hình (gom cụm khái niệm, mạng
neural)
e. Các phương pháp phân hoạch
- Phương pháp phân hoạch: tạo phân hoạch CSDL D có n đối
tượng thành tập có k cụm sao cho:
 Mỗi cụm chứa ít nhất một đối tượng
 Mỗi đối tượng thuộc về một cụm duy nhất
 Cho trị k, tìm phân hoạch có k cụm sao cho tối ưu hoá tiêu
chuẩn phân hoạch được chọn
- Tiêu chuẩn suy đoán chất lưọng phân hoạch
 Tối ưu toàn cục: liệt kê vét cạn tất cả các phân hoạch
- Các phương pháp heuristic:
 K-means: mỗi cụm được đại diện bằng trọng tâm của cụm
(centroid)
 K-medoids: mỗi cụm được đại diện trong các đối tượng
của cụm (medoid)

III. Một số thuật toán phân cụm dữ liệu
a. Thuật toán K-means
Ý tưởng: Đầu tiên chọn ngẫu nhiên K mẫu, mỗi mẫu này coi như
biểu diễn 1 cluster, lúc này trong mỗi cluster thì đối với mỗi mẫu đó cũng là
tâm của cluster. Các mẫu còn lại được gán vào một nhóm nào đó trong K
nhóm đã có sao cho tổng khoảng cách từ nhóm mẫu đó đến tâm của
nhóm là min. Rồi, tính lại tâm cho các nhóm và lặp lại quá trình đó cho đến
khi hàm tiêu chuẩn hội tụ. Hàm tiêu chuẩn hay được dùng nhất là hàm tiêu
chuẩn sai-số vuông. Thuật toán này, có thể áp dụng được đối với cơ sở
4
dữ liệu (CSDL) đa chiều, nhưng để dễ minh họa chúng tôi mô tả thuật toán
trên dữ liệu hai chiều.
Thuật toán k-means được mô tả như sau:
Input: K, và dữ liệu về n mẫu của 1 CSDL. Output: Một tập gồm K
cluster sao cho cực tiểu về tổng sai-số vuông.
Các bước thuật toán:
Bước 1: Chọn ngẫu nhiên K mẫu vào K cluster. Coi tâm của cluster
chính là mẫu có trong cluster.
Bước 2: Tìm tâm mới của cluster.
Bước 3: Gán các mẫu vào từng cluster sao cho khoảng cách từ mẫu
đó đến tâm của cluster đó là nhỏ nhất.
Bước 4: Nếu các cluster không có sự thay đổi nào sau khi thực hiện
bước 3 thì chuyển sang bước 5, ngược lại sang bước 2.
Bước 5: Dừng thuật toán.
Ví dụ: Trong không gian hai chiều, cho 12 điểm (n = 12) cần phân
12 điểm này thành hai cluster (k=2).
Đầu tiên, chọn hai điểm ngẫu nhiên vào hai cluster (chọn 2 điểm
màu đỏ: (1,3); (9,4))
Coi điểm (1,3) là tâm của cluster 1 và điểm (9,4) là tâm của cluster
2. Tính toán khoảng cách từ các điểm khác đến hai điểm này và gán được

các điểm còn lại này vào một trong hai cluster, những điểm có màu trắng
vào cluster 1, những điểm có màu đen vào cluster 2. Hiệu chỉnh lại tâm
của hai cluster, điểm màu xám là tâm mới của hai cluster. Tính lại các
khoảng cách các điểm đến tâm mới và gán lại các điểm này. Tiếp tục hiệu
chỉnh lại tâm của hai cluster. Rồi, lặp lại cho đến khi không còn sự thay đổi
nữa thì dừng
5
Hình 1: Minh họa thuật toán K-means
Độ phức tạp của thuật toán này là O(tKn). Trong đó n là số mẫu
trong CSDL, K là số cluster, t là số lần lặp.
Nhận xét:
Điểm mạnh của phương pháp gom cụm k- means:
- Có thể scalable trong khi xử lý dữ liệu lớn
- Hiệu suất tương đối: O(tkn), với n là số đối tượng, k là số cụm, t
là số lần lập. thông thường k, t << n
- Thường kết thúc ở tối ưu cục bộ, có thể tìm được tối ưu toàn
cục,dùng kỹ thuật thuật giải di truyền
Điểm yếu của phương pháp gom cụm k- means:
- Có thể áp dụng chỉ khi xác định được trị trung bình
- Cần chỉ định trước k, số các cụm
- Không thể xử lý nhiễu và outliers
- Không thích hợp nhằm khám phá các cụm có dạng không lồi hay
các dạng có kích thước khác nhau
b. Thuật toán K-Medoid
Ý tưởng: Để tìm ra k cụm với n đối tượng thì k-medoids chọn ngẫu
nhiên k đối tượng vào k cụm, coi mỗi đối tượng này là tâm của cụm. Phân
bổ các đối tượng còn lại vào cụm mà sự khác nhau của nó với đối tượng
6
tâm của cụm là gần nhất. Sau đó lặp lại quá trình: Thay đổi đối tượng tâm
của mỗi cụm sao cho chất lượng của cụm được cải thiện. Chất lượng

của cụm được lượng giá bởi một hàm đo sự khác nhau giữa một đối
tượng và đối tượng tâm của cụm chứa nó. Quá trình lặp cho đến khi
không còn sự thay đổi nào về lực lượng cũng như hình dạng của các cụm.
Để chọn một đối tượng không là đối tượng tâm O
random
thay thế tốt
cho một đối tượng tâm Oj thì mỗi đối tượng p xét theo 4 trường hợp sau
đây:
Trường hợp 1: p đang thuộc vào cụm có tâm là Oj (từ nay gọi là
cụm Oj). Nếu Oj được thay thế bởi O
random
và p gần nhất với Oi (i#j) thì p
được gán lại vào Oi
Trường hợp 2: p đang thuộc vào Oj. Nếu Oj được thay thế bởi
O
random
và p gần nhất với O
random
thì p được gán lại vào O
random
.
Trường hợp 3: p đang thuộc vào Oi (i#j). Nếu Oj được thay thế bởi
O
random
và p vẫn gần nhất với Oi thì không thay đổi gì cả. Tức là p vẫn
thuộc Oi.
Trường hợp 4: p đang thuộc vào Oi (i#j). Nếu Oj được thay thế bởi
O
random
và p gần nhất với O

random
thì p được gán lại vào O
random
Các trường hợp đối với điểm p
Thuật toán K-medoid được mô tả như sau:
Input: Số nguyên k và CSDL gồm n đối tượng cần phân cụm.
Output: Một tập gồm k cụm mà tổng giá trị của sự khác nhau của tất
cả các đối tượng đến đối tượng tâm của nhóm chứa nó là nhỏ nhất.
Thuật toán:
7
Bước 1: Chọn k đối tượng bất kì vào k cụm. Coi mỗi đối tượng này
là tâm của nhóm.
Bước 2: Lặp
Bước 3: Gán mỗi đối tượng còn lại vào một cụm mà nó gần với đối
tượng tâm của cụm nhất.
Bước 4: Chọn ngẫu nhiên một đối tượng không là đối tượng tâm,
O
random
.
Bước 5: Tính lại giá trị, S, đối với việc đổi Oj với O
random
.
Bước 6: Nếu S<0 thì đổi Oj với Orandom để tạo ra một tập với đối
tượngtâm mới.
Bước 7: Đến khi không có sự thay đổi nào nữa thì dừng
Ví dụ: Trong không gian hai chiều cho n = 10 điểm, cần chia thành
k =2 cụm. Các bước thực hiện của thuật toán K-medoids được chỉ ra
trong hình sau:
Đầu tiên, chọn hai điểm bất kì vào hai cụm (điểm màu đen), rồi xét
các điểm còn lại và đưa chúng vào một trong hai cụm với điểm tâm lần

lượt là hai điểm đã chọn ban đầu.
Tiếp theo, chọn một điểm bất kì khác điểm tâm (điểm màu xám).
Tính giá của phép chuyển đổi điểm tâm từ điểm màu trắng -> điểm màu
xám. Nếu giá này chất lượng hơn thì coi điểm xám là tâm của cụm mới và
thực lặp lại quá trình đó cho đến khi không còn sự thay đổi nào.
8
Nhận xét:
Thuật toán K-medoids mạnh hơn thuật toán K-means trong các
trường hợp dữ liệu có nhiễu vì K-medoids chịu ảnh hưởng ít hơn của
nhiễu và các giá trị chênh lệnh so với giá trị trung bình. Tuy nhiên cả hai
thuật toán này đều yêu cầu đưa vào số lượng cụm k.
IV. Cải tiến thuật toán K-means trong phân cụm dữ liệu tự động
Bài toán thu thập, phân cụm dữ liệu tự động là một bài toán mang
tính thời sự, vì trong thời đại công nghệ thông tin, với sự trợ giúp của máy
tính thì việc áp dụng công nghệ thông tin vào thu thập dữ liệu tự động trên
Internet, phân tích phục vụ cho việc phân cụm và từ đó hình thành các chủ
đề thông tin với các dữ liệu thu thập tự động từ Internet. Trên cơ sở đó,
chúng ta tiến hành phân tích dữ liệu và đưa ra những dự báo trong tương
lai với từng chủ đề khác nhau như: dự báo tốc độ tăng trưởng kinh tế,
GDP, chỉ số chứng khoán, giá cả hàng hoá, Điều này làm cơ sở cho
chúng ta có thể đưa ra một chính sách phát triển kinh tế trong cả nước.
Tuy nhiên, để có được những dữ liệu và phân cụm được những dữ liệu đó
theo các chủ đề khác nhau thì chúng ta phải có các kỹ thuật. Như phần
trên ta đã phân tích thuật toán K- Means, tuy nhiên thuật toán có những
hạn chế nhất định. Do đó, cần có sự cải tiến thuật toán này nhằm khắc
phục những hạn chế của thuật toán K-means
Cải tiến thuật toán K-means: thay vì chọn số điểm (k) làm trọng
tâm, chúng ta không chọn số điểm (k) làm trọng tâm cho số cụm mà sẽ
tăng số cụm từ 1 lên k cụm bằng cách đưa trung tâm cụm mới vào cụm có
mức độ biến dạng lớn nhất và tính lại trọng tâm các cụm. Với thuật toán K-

means bắt đầu bằng cách chọn k cụm và chọn ngẫu nhiên k điểm làm
trung tâm cụm, hoặc chọn phân hoạch ngẫu nhiên k cụm và tính trọng tâm
của từng cụm này. Việc chọn ngẫu nhiên k điểm làm trung tâm cụm như
đã nói ở trên có thể cho ra các kết quả khác nhau tùy vào chọn k điểm
này.
9
Thuật toán K-means cải tiến:
Bước 1: Khởi tạo giá trị ban đầu cho K: K=1
Bước 2:
Bước 2.1: Kiểm tra điều kiện K
Nếu K=1: chọn bất kỳ một điểm làm trung tâm của cụm.
Nếu K>1: thêm trung tâm của cụm mới vào cụm có biến
dạng max.
Bước 2.2: Gán từng điểm vào cụm có trung tâm gần nhất với
điểm đang xét và cập nhật lại trung tâm cụm
Bươc 2.3: Nếu trung tâm cụm không thay đổi, chuyển sang
bước 3.
Ngược lại, quay trở lại bước 2.2 (bước 2).
Bước 3: (Tăng số cụm)
Nếu K≤ giá trị ấn định số cụm thì K:=K+1, quay trở lại bước 2.1
(bước 2).
Ngược lại, thuật toán dừng.
Với thuật toán K-means cải tiến: đưa ra sự khác biệt, đó là mức độ
biến dạng của các cụm (dựa trên biến dạng để phân cụm).Mức độ biến
dạng của các cụm được tính như sau:
I=S-N(d(w,x ))
Trong đó: w: trung tâm của cụm, N: Số các thành phần trong cụm;
S: Tổng bình phương khoảng cách giữa các thành phần trong cụm và
trung tâm của không gian Euclidean; I: Mức độ biến dạng của cụm; d(w,x):
là khoảng cách giữa trung tâm w của cụm và trung tâm của không gian

Euclidean x.
Nhận xét:
+ Một cụm có mức độ biến dạng lớn thì trung tâm cụm đó có vị trí
không thích hợp.
10
+ Việc xác định các cụm cũng như xác định trung tâm của cụm, như
vậy thuật toán chủ yếu tìm trung tâm cụm chính xác và xác định lại các
thành phần trong cụm.
Với thuật toán K-means cải tiến:
+ Bước 2: như K-means nhưng khác là: không xác định trước k
điểm mà tăng k lên dần từ 1. Và chọn cụm có mức độ biến dạng lớn để
phân ra 2 cụm (khi đó 2 cụm này có mức độ biến dạng giảm, nhỏ hơn).
+ Thuật toán cải tiến K-means có độ phức tạp là O( k2 nt), như vậy
so với thuật toán K-means có độ phức tạp O(tkn) thì: O( k2 nt)>O(tkn),
nhưng không bằng K-mendoids, do k<<n. Tuy nhiên ưu điểm của thuật
toán là giảm sự phụ thuộc vào việc khởi tạo các cụm ban đầu nên ta sẽ
không phải lặp lại thuật toán với việc chọn các cụm ban đầu khác nhau để
tìm ra kết quả tối ưu như ở K-Means.
Kết luận:
Tìm kiếm và phân cụm tự động các thông tin phù hợp và có giá trị là
một chủ đề quan trọng và là vấn đề quan trọng của mỗi đơn vị, tổ chức có
nhu cầu thu thập và tìm kiếm thông tin trên Internet. Cải tiến thuật toán K-
means trong phân cụm dữ liệu: thay vì chọn số điểm làm trọng tâm thì
không chọn số điểm làm trọng tâm cho số cụm mà sẽ tăng số cụm từ 1 lên
k cụm bằng cách đưa trung tâm cụm mới vào cụm có mức độ biến dạng
lớn nhất và tính lại trọng tâm các cụm.
V. Cài đặt chương trình thuật toán K-means
a. Nội dung
Gom cụm dữ liệu dựa theo phương pháp phân cụm K-mean.
Trong chương trình này ta đại diện cho một đối tượng dữ liệu cần gom

cụm là những điểm có tọa độ (x, y), và ta sẽ gom chúng lại trong k cụm
cho trước. Chương trình chỉ mặc định tối đa là 9 cụm cho phép.
b. Mô tả
Input: Tập các điểm {Xi=(x,y)}, Số cụm cần gom: K
11
Output : C
i
={(x,y}, i=1 K
- Chọn K Điểm X
i
, i=1 K làm K tâm điểm. Và các điểm X
i
nằm trong cụm C
i
- Với mỗi điểm x trong tập X
i
o B1:Tính khoảng cách từ x đến tất cả các tâm điểm.
o B2:Điểm x sẽ được đưa vào cụm nào mà khoảng
các từ nó đến cụm đó là nhỏ nhất.
o B3:Tính lại tọa độ các tâm điểm.
o Lập lại bước 1 đến bước 3 cho đến khi không còn
sự thay đổi nhóm của các điểm
c. Kiểm nghiệm chương trình
Với 4 điểm: X1(1,1), X2(2,1), X3(4,3), X4(5,4)
Lấy 2 điểm X1, X2 làm trọng tâm là C1(X1), C2(X2)
Lần lược xem xét từng điểm X1,X2, X3, X4 để xem chúng thuộc vào
nhóm nào.
B1: Tính khoảng cách
d(X3,C1)= (4-1)^2+(3-1)^2=13
d(X3,C2)= (4-2)^2+(3-1)^2=8

 X3 thuộc C2
d(X4,C1)= (5-1)^2+(4-1)^2=25
d(X4,C2)= (5-2)^2+(4-1)^2=18
 X4 thuộc C2
B2: Cập nhật lại vị trí trọng tâm
Trọng tâm cụm C1=X1(1,1)
Trọng tâm cụm C2={(2+4+5)/3,(1+3+4)/3}=(11/3,8/3)
B3: Lặp lại B1
d(X1,C1)=0
d(X1,C2)={(1-11/3)^2+(1-8/3)^2}=9,8
 X1 thuộc C1
d(X2,C1)=1
d(X2,C2)=5,56
 X2 thuộc C1
d(X3,C1)=13
12
d(X3,C2)=0,22
 X3 thuộc C2
d(X4,C1)=25
d(X4,C2)=3,56
 X4 thuộc C2
Lặp lại B2
Trọng tâm cụm C1=X1(3/2,1)
Trọng tâm cụm C2=(9/2,7/2)
Lặp lại B3
d(X1,C1)=0,25
d(X1,C2)=18,5
 X1 thuộc C1
d(X2,C1)=0,25
d(X2,C2)=12,5

 X2 thuộc C1
d(X3,C1)=10,25
d(X3,C2)=0,5
 X3 thuộc C2
d(X4,C1)=21,25
d(X4,C2)=0,5
 X4 thuộc C2
Quá trình lặp lại cho đến khi các điểm không dịch chuyển nhóm sau
khi tính lại tâm mới thì dừng.
Kết quả:
C1 gồm các điểm: X1,X2
C2 gồm các điềm X3,X4
d. Cấu trúc chương trình
Các trường:
kc_Euclid: tính khỏang cách eclid giữa 2 điểm
listCluster: lưu trữ các điểm cần gom cụm
listCenter: lưu trữ tâm của các cụm
Các phương thức:
Clustering: gom cụm tập các điểm trong listCluster bằng giải
thuật K-means
13
addClusterObj: thêm 1 điểm vào tập các điểm cần gom cụm
Class hổ trợ cho việc thể hiện đồ họa 2D: các phương thức hổ trợ
việc vẽ hệ trục tọa độ, và vẽ các điểm thêm vào trên mặt phẳng tọa
độ XY.
14
PHỤ LỤC
1. Giao diện chương trình
2. Tài liệu tham khảo
- Giáo trình khai thác dữ liệu- Biên sọan PGS.TS ĐỖ PHÚC-

NXB ĐHQG TP.HCM
- />tm
- />-
15
Tâm
cụm 1
Tâm
cụm 2
Danh sách dữ
liệu đã gom
cụm
Danh sách dữ
liệu chưa gom
cụm
Tọa độ điểm
ảnh

×