Phân cụm mờ Fuzzy C-means (FCM) do Bezdek [70] đề xuất là một thuật toán phân cụm dữ liệu hiệu quả và ngày càng được sử dụng rộng rãi trong nhiều lĩnh vực khác nhau, bao gồm cả lĩnh vực dự báo [28]. Tư tưởng chính của thuật toán được miêu tả như sau:
Cho tập dữ liệu chuỗi thời gồm n quan sát X = {�1, �2, … , ��}, FCM cho phép một đối tượng dữ liệu có thể thuộc hai hoặc nhiều cụm với các cấp độ thuộc khác nhau trong khoảng [0, 1]. Thuật toán này tìm các tâm cụm dựa trên việc cực tiểu hàm mục tiêu (1.12) với các ràng buộc được xác định theo công thức (1.13).
� � �( , � �) = ∑ ∑ ���� ���2 (��, ��) =1 � �=1 (1.12) � � ��� ∈ [0,1]; ∑ ���= 1; ∑ ���< � . =1 � �=1 (1.13)
Trong đó; n là số lượng quan sát trong tập dữ liệu X, m là tham số mũ (là trọng số của mỗi cấp độ thuộc mờ), c là số lượng cụm (2 ≤ c ≤ ) � , ��là tâm cụm thứ i thuộc vào tập tâm cụm V = {�1, �2, … , ��}, ��� là cấp độ thuộc của ��
thuộc vào cụm i và �2 (��, ��) hay ���là khoảng cách giữa quan sát ��và tâm cụm
��. U là ma trận độ thuộc có kích thước n × c, V là vector tâm cụm.
Thuật toán phân cụm FCM được trình bày thành 5 bước chính dưới đây và biển diễn dưới dạng sơ đồ khối như trong Hình 1.10.
Đầu vào: Tập dữ liệu {��}, (1 ≤ ≤ ) � �
Đầu ra: Giá trị các cụm và tâm cụm ��(1 ≤ ≤ ) � �
Bắt đầu
Bước 1- Xác định số cụm c, khởi tạo ngẫu nhiên tâm cụm �(0), thiết lập (t = 0,
m = 2, và 𝒜 = 0.0001).
Bước 2- Khởi tạo ma trận phân hoạch �(0) ∈ (0,1) dựa vào công thức (1.14)
� (�) = 1 ; 1 ≤ ≤ � �, 1 ≤ ≤ � � �� 2 ∑� ( ���(�)�−1 �=1 ���(�) (1.14)
)
Với ���= ‖��− ��‖ là khoảng cách giữa quan sát ��và tâm cụm ��(Khoảng cách Euclid).
- Nếu ���(t) = 0 thì ���= 1 và ���= 0 (r ≠ j).
Bước 3- Tăng t = t+1. Cập nhật tâm cụm ��dựa vào công thức (1.15) ∑ � 1 ��(�)∗��
��=( + 1�� �� ) =
∑�=1 ��� ��(�) (1.15)
Bước 4- Cập nhật các giá trị của ma trận độ thuộc ���theo công thức (1.14)
Bước 5- Nếu max {|���( + 1� ) − ���(�)|} < ε dừng FCM, trái lại quay lại Bước
3.
Kết thúc
Hình 1.10: Sơ đồ thuật toán phân cụm bằng FCM