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
Trang 1MỤC LỤC
Trang 2GOM 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
Trang 3a. 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
Trang 4- 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ở
Trang 5dữ 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
Trang 6Hì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
Trang 7tâ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 Orandom 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 Orandom 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
Orandom và p gần nhất với Orandom thì p được gán lại vào Orandom
Trường hợp 3: p đang thuộc vào Oi (i#j) Nếu Oj được thay thế bởi
Orandom 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
Orandom và p gần nhất với Orandom thì p được gán lại vào Orandom
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:
Trang 8Bướ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,
Orandom
Bước 5: Tính lại giá trị, S, đối với việc đổi Oj với Orandom
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
Trang 9Nhậ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
Trang 10Thuậ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
Trang 11+ 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
Trang 12Output : Ci ={(x,y}, i=1 K
- Chọn K Điểm Xi, i=1 K làm K tâm điểm Và các điểm Xi
nằm trong cụm Ci
- Với mỗi điểm x trong tập Xi
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