5.2. Ứng dụng thuật toán FCM-Cải tiến vào nhận dạng ảnh ...
79 82
Chƣơng này trình bày kết quả xây dựng chƣơng trình thử nghiệm của thuật toán FCM và ứng dụng thuật toán FCM-Cải tiến vào quá trình nhận dạng ảnh.
5.1. Cài đặt thử nghiệm thuật toán FCM
FCM là một thuật toán đƣợc áp dụng khá nhiều trong phân cụm dữ liệu vì hiệu năng và tính hiện thực của nó khá tốt. Thuật toán FCM đƣợc bắt đầu bằng cách chọn C cụm và chọn ngẫu nhiên c điểm làm trung tâm cụm hoặc chọn phân hoạch ngẫu nhiên C cụm và tính trọng tâm của từng cụm này. Nếu số lƣợng dữ liệu nhỏ hơn số cụm thì ta gán mỗi dữ liệu là một trọng tâm của cụm, mỗi trọng tâm sẽ có 1 số cụm. Nếu số lƣợng dữ liệu lớn hơn số cụm, với mỗi dữ liệu, ta tính toán độ tƣơng tự có trọng số giữa điểm đó và trọng tâm cụm và lấy khoảng cách tối thiểu. Dữ liệu này thuộc về cụm có khoảng cách tối thiểu tới dữ liệu đó. Khi chúng ta không chắc chắn về vị trí của trọng tâm, ta cần điều chỉnh vị trí trọng tâm dựa vào dữ liệu đã cập nhật hiện tại. Sau đó, ta gán tất cả dữ liệu tới trọng tâm mới này. Quá trình này đƣợc lặp lại cho tới khi không còn dữ liệu di chuyển sang cụm khác. Về mặt toán học, vòng lặp này có thể chứng minh là hội tụ cực tiểu cục bộ.
Quá trình cài đặt của thuật toán đƣợc mô phỏng thông qua giao diện của chƣơng trình nhƣ Hình 5.1 và Hình 5.2 dƣới đây:
Ngôn ngữ sử dụng là Visual C++ 6.0
Tham số ban đầu: Số cụm = 3, tham số mũ m = 2
Hình 5.1: Giao diện của chƣơng trình khi khởi động
Khi ngƣời sử dụng nhập số cụm vào khung “Nhập số cụm”, kích chuột vào khung chƣơng trình để tạo ra các điểm của cụm, vị trí của các điểm đƣợc thể hiện ở khung “Toạ độ xy”. Chƣơng trình sẽ tự động tạo ra các cụm dữ liệu bằng cách tối giản tổng bình phƣơng các khoảng cách giữa dữ liệu và trọng tâm cụm tƣơng ứng khi ta kích chuột vào khung chƣơng trình để tạo ra mỗi điểm. Mỗi điểm và tọa độ của nó biểu thị cho một đối tƣợng với mô tả hai thuộc tính của đối tƣợng đó là màu sắc của điểm và số nhãn biểu thị cho cụm.
Dƣới đây là hình ảnh thu đƣợc khi chạy chƣơng trình với số cụm nhập vào là
8 cụm..
Hình 5.2: Giao diện của chƣơng trình khi làm việc
Chƣơng trình tự động phân thành 8 cụm thông qua số màu hiện trong từng cụm và tâm của mỗi cụm.