Hình 3.12: Report thể hiện dữ liệu ban đầu chưa phân cụm Hình 3.13: Report thể hiện dữ liệu sau khi phân cụm Hình 3.14: Report thể hiện trọng tâm của các cụm

Một phần của tài liệu Thuật toán K-Prototypes trong phân loại bệnh nhân và đề xuất một cải tiến phân cụm (Trang 43)

Hình 3.14: Report thể hiện trọng tâm của các cụm

CHƯƠNG 4

Như phần Mở đầu đã đề cập, trong quá trình thực hiện tiểu luận này, tôi đã tham khảo bài báo “Fast and Accurate K-means For Large Datasets” của các tác giả Michael Shindler, Alex Wong và Adam Meyerson (có thể đọc bài báo tại địa chỉ http://web.engr.oregonstate.edu/~shindler/) (năm 2011) và luận văn Thạc sỹ của Elham Karoussi “Data Mining K-Clustering Problem” (năm 2012). Qua đó, tôi xin trình bày thuật toán và thể hiện thực nghiệm để so sánh sự cải tiến.

Đây mới chỉ là trình bày ý tưởng trong việc cải tiến độ chính xác phân cụm cho thuật toán K-Means dựa trên ý tưởng rút gọn tập dữ liệu ban đầu (ý tưởng “chia để trị” phân tập ban đầu thành từng lớp và dần dần mở rộng lớp) và cực tiểu hóa hàm tổng bình phương sai số và chỉ mới được kiểm chứng bằng chương trình thực nghiệm, nên chưa đưa ra được cơ sở toán học của cải tiến cũng như đánh giá độ phức tạp.

1.Ý tưởng

Trong thuật toán K-Means, chúng ta thấy rằng K-Means cố gắng cực tiểu hóa bình phương sai số của các điểm tới trọng tâm cụm. Điều này làm cho K-Means trở thành một thuật toán đơn giản và còn một số hạn chế. Để cải tiến điều này, Elham Karoussi trình bày ý tưởng của mình như sau:

Đầu tiên, ta rút gọn (reduce) số lượng các đối tượng trong tập dữ liệu đã cho bằng cách chọn ngẫu nhiên mỗi lần 2 đối tượng, tính khoảng cách trung bình giữa chúng và lấy đối tượng trung bình này đưa vào một lớp. Bước thứ hai là ta sẽ áp dụng thuật toán K-Means trên các lớp dữ liệu vừa tạo ra, bắt đầu từ lớp thấp nhất. Bằng cách chuyển đổi các đối tượng giữa các cụm trong mỗi lớp, ta sẽ tìm ra được cực tiểu của hàm tổng bình phương sai số. Trong luận văn của mình, Elham Karoussi gọi thuật toán này là “K-means in multilevel context”.

2.Thuật toán

Trong bước đầu tiên của thuật toán 4.1, ta bắt đầu bằng cách rút gọn số lượng các đối tượng. Tạo ra một đối tượng mới bằng cách chọn ngẫu nhiên mỗi lần 2 đối tượng và lấy trung bình của chúng. Việc rút gọn này được thực hiện cho đến khi số lượng các đối tượng thu được bằng hoặc lớn

10% số đối tượng ban đầu. Tất nhiên là các thuộc tính (thông tin) của đối tượng mới được tạo ra và 2 điểm gốc tạo ra nó vẫn được giữ lại để sử dụng sau này khi nhóm được mở rộng.

Sau khi việc rút gọn đạt tới mức tối thiểu, ta chạy thuật toán K-Means và gom các đối tượng này vào N cụm. Sau bước đầu tiên, với một nhóm nhỏ nhất các đối tượng đã được phân cụm, ta chạy vòng lặp từ Bước 7 đến Bước 10 của thuật toán 4.1 để tối ưu hóa thuật toán K-Means với số lần lặp là 10.000. Như đã trình bày, mỗi đối tượng mới là kết quả trung bình của 2

Thuật toán:

1) Repeat //Vòng lặp 1

2) Chọn ngẫu nhiên mỗi lần 2 đối tượng thuộc tập dữ liệu cho trước, tạo ra một đối tượng mới (rút gọn dữ liệu) bằng cách tính và lấy giá trị trung bình của chúng.

3) Until Rút gọn cuối cùng đạt được 10% số đối tượng trong tập dữ liệu ban đầu. //Kết thúc vòng lặp 1

4) Chạy thuật toán K-Means trên lớp dữ liệu mới vừa tạo ra. 5) Repeat //Vòng lặp 2

6) Repeat 10.000 lần//Vòng lặp 3

7) Chọn 2 cụm ngẫu nhiên trong k cụm

8) Chọn trong mỗi cụm một đối tượng và hoán đổi (swap) chúng giữa 2 cụm đó.

9) Tính Tổng bình phương sai số (Sum of the Squared Error – SSE) cho 2 cụm.

9.1) If SSE tốt hơn (khoảng cách nhỏ hơn) Then hoán đổi

Else không hoán đổi.

10) Until 10.000 lần đã thực hiện xong. //Kết thúc vòng lặp 3

11) Mở rộng cho mỗi cặp đối tượng trong mỗi cụm và quay lại Bước 6. 12) Until Thực hiện xong cho tất cả các đối tượng trong tập dữ liệu gốc.

đối tượng trước đó trong mỗi cụm, ta mở rộng đến 2 đối tượng đó. Có nghĩa là kích thước của mỗi cụm sẽ trở nên gấp đôi. Sau đó, chạy tiếp vòng lặp từ Bước 7 đến Bước 10 cho các đối tượng mới. Tiếp tục như thế cho đến khi đạt được số lượng đối tượng trong tập đã cho ban đầu.

3.Tác động của thuật toán cải tiến

Hình 4.1 cho thấy tác động của SSE sau khi áp dụng thuật toán 4.1. Nó thể hiện kết quả sau khi rút gọn tối ưu hóa SSE trên tập dữ liệu Iris.

Hình 4.1: Tác động của thuật toán “K-Means in multilevel context”

Một phần của tài liệu Thuật toán K-Prototypes trong phân loại bệnh nhân và đề xuất một cải tiến phân cụm (Trang 43)