Cấu trúc của thuật toán phân vùng K-means

Một phần của tài liệu Nghiên cứu giải pháp nâng cao tốc độ hiển thị dữ liệu trên bản đồ trực tuyến (Trang 39 - 41)

Phần này học viên sẽ mô tả về cấu trúc của thuật toán k-means. Thuật toán chạy trên một tập m các đối tượng không gian X= { 𝑥1,𝑥2,….𝑥𝑚}với 𝑥𝑖 ∈ 𝑅𝑛 là một véc tơ n chiều trong không gian Euclidean và i=1, 2,...m. Tập dữ liệu có thể được biểu diễn

bằng ma trận cỡ m x n như sau:

𝑥11 𝑥12 … 𝑥1𝑛 𝑥……..21 𝑥22… 𝑥2𝑛 𝑥𝑚1 𝑥𝑚2… 𝑥𝑚𝑛

(2.4)

Trong đó, mỗi hàng biểu diễn một đối tượng với n thuộc tính. Dựa trên khái niệm tương tự, các đối tượng tương tự nhau được đưa vào cùng một cụm. Một cụm 𝑐𝑗 là một tập con của m đối tượng đầu vào. Đối tượng m có thể được phân vào k cụm

khác nhau C = {𝑐1,𝑐2, … … 𝑐𝑘} , trong đó 𝑐𝑗 ∈ 𝑅𝑛 và j= 1, 2,..,k dựa trên một số đo tương tự. K (số lượng cụm) phải nhỏ hơn n (số lượng thuộc tính), nếu không kết quả sẽ quy về trường hợp mỗi đối tượng là một cụm với sai số bằng 0. Mỗi đối tượng được gán vào một và chỉ một cụm và mỗi cụm được xác định bằng một tâm, ký hiệu là 𝜇𝑗. Như đã đề cập ở phần trước, k-means là thuật toán phân vùng m dữ liệu điểm thành K cụm chứa mj điểm vì thế mục đích của thuật toán này là giảm thiểu công thức tính sai số bình phương.

Trong đó, 𝑥𝑖− 𝜇𝑗 là phép đo khoảng cách được chọn sẵn giữa điểm 𝑥𝑖 và tâm cụm µ𝑗, là một chỉ số về khoảng cách của m dữ liệu điểm tới tâm cụm tương ứng.

Thuật toán được bắt đầu bằng việc chọn m điểm trong 𝑅𝑑 như đại diện “tâm” cho K

cụm ban đầu. Cách thức chọn các điểm đầu tiên này bao gồm việc lấy mẫu ngẫu nhiên từ tập dữ liệu, thiết lập nó như một giải pháp phân cụm cho một nhóm nhỏ dữ liệu hoặc xáo trộn toàn bộ ý nghiã của cả tập dữ liệu k lần. Sau đó thuật toán lặp lại giữa hai bước đến khi đạt được hội tụ. Bước đầu tiên (gán điểm) là đưa mỗi điểm về một tập dữ liệu cho sẵn và kết hợp nó với tâm gần nhất theo công thức tính tâm gần nhất sau:

𝑓 𝑡 𝑘 𝑥𝑖 = 1, 𝑛ế𝑢 𝑘 = 𝑎𝑟𝑔 min 𝐷 (𝑥𝑖 ,𝜇𝑗(𝑡))

0, 𝑐á𝑐 𝑡𝑟ườ𝑛𝑔 𝑕ợ𝑝 𝑐ò𝑛 𝑙ạ𝑖 (2.6)

Trong đó 𝜇𝑗 là tâm của cụm thứ j trong phép lặp lần thứ t, và D là hàm đo

khoảng cách. Đo khoảng cách Euclide được lựa chọn trong nghiên cứu này và với hai véc tơ 𝑥𝑖 và 𝑥𝑗 , khoảng cách Euclide được tính theo công thức:

D 𝑥𝑖, 𝑥𝑗 = 𝐷 (𝑥𝑖,𝑘− 𝑥𝑖,𝑘)2

𝑘=1 (2.7)

Khi không còn điểm nào thừa ra, bước đầu tiên hoàn thành và các nhóm đầu tiên được thành lập. Sau đó, k tâm cụm mới được tính toán lại, sử dụng công thức sau:

𝜇𝑘(𝑡+1) = 𝑓(𝑡) 𝑘 𝑥𝑖 𝑥𝑖 𝑁 𝑖=1 𝑓(𝑡) 𝑘 𝑥𝑖 𝑁 𝑖=1 (2.8)

Trong đó n là tổng số véc tơ đầu vào. Sau khi có k tâm cụm mới, các tính toán lại được thực hiện giữa các tập dữ liệu điểm giống nhau và các tâm cụm mới gần nhất. Một vòng lặp nữa được tiến hành. Kết quả của mỗi vòng lặp này cho thấy k tâm cụm thay đổi vị trí, đến khi không còn sự dịch chuyển nào nữa, các vòng lặp chấm dứt. Tóm lại, thuật toán k-means gồm những bước sau:

- Chọn k điểm trong tập dữ liệu để khởi tạo các cụm, các điểm này đại diện cho tâm các cụm ban đầu.

- Gán các đối tượng còn lại vào cụm có tâm gần nhất.

- Khi tất cả các điểm đã được gán về cụm, tiến hành tính lại k tâm cụm.

- Lặp lại bước 2 và 3 đến khi các tâm cụm không thay đổi nữa. Quá trình này tách các đối tượng thành các nhóm, từ đó có thể tính toán được khoảng cách tối thiểu.

Trên lý thuyết, mặc dù quá trình này luôn có điểm dừng, nhưng thuật toán k- means không cần tìm ra cấu trúc tối ưu nhất. Thuật toán này phụ thuộc khá nhiều vào

sự lựa chọn ngẫu nhiên ban đầu đối với các tâm cụm. Thuật toán k- means có thể chạy nhiều lần để giảm sai số từ vấn đề này.

Một phần của tài liệu Nghiên cứu giải pháp nâng cao tốc độ hiển thị dữ liệu trên bản đồ trực tuyến (Trang 39 - 41)

Tải bản đầy đủ (PDF)

(61 trang)