1. Trang chủ
  2. » Luận Văn - Báo Cáo

(LUẬN văn THẠC sĩ) về tính hiệu quả của các thuật toán tối ưu tiến hóa cho phân cụm mờ và ứng dụng trong phân tích nhu cầu khách hàng 04

90 5 0

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Định dạng
Số trang 90
Dung lượng 1,59 MB

Cấu trúc

  • CHƯƠNG 1: TỔNG QUAN VỀ PHÂN CỤM MỜ (13)
    • 1.1. Tập mờ (15)
      • 1.1.1. Lý thuyết mờ (15)
      • 1.1.2. Tập mờ (15)
    • 1.2. Giới thiệu về phân cụm mờ (18)
      • 1.2.1. Khái quát phân cụm (18)
      • 1.2.2. Độ đo gần gũi (20)
      • 1.2.3. Các bước phân cụm (22)
      • 1.2.4. Phân cụm mờ (23)
    • 1.3. Thuật toán Fuzzy C – Means (FCM) (25)
      • 1.3.1. Thuật toán Fuzzy C - Means (26)
      • 1.3.2. Cài đặt chương trình (28)
    • 1.4. Kết luận chương (34)
    • 2.2. Các dạng của thuật toán tiến hóa (37)
      • 2.2.1. Thuật toán lập trình tiến hóa (38)
      • 2.2.2. Chiến lược tiến hóa (39)
      • 2.2.3. Thuật toán di truyền (39)
      • 2.2.4. Lập trình di truyền (41)
      • 2.2.5. Tiến hóa vi phân (42)
      • 2.2.6. Thuật toán văn hóa (42)
    • 2.3. Một số thuật toán cụ thể (43)
      • 2.3.1. Tìm kiếm cục bộ (43)
      • 2.3.2. Thuật toán tìm kiếm Tabu (47)
      • 2.3.3. Tìm kiếm lân cận biến đổi (VNS) (50)
      • 2.3.4. Tối ưu bầy đàn PSO (52)
    • 2.4. Áp dụng thuật toán tối ưu tiến hóa cho phân cụm mờ (56)
      • 2.4.1. Thuật toán Fuzzy J – Means heuristic (FJM) (56)
      • 2.4.2. Thuật toán VNS (64)
      • 2.4.3. Thuật toán tối ưu bầy đàn cho phân cụm mờ (FPSO) (66)
    • 2.5. Kết luận chương (71)
  • CHƯƠNG 3: SO SÁNH HIỆU NĂNG THUẬT TOÁN TỐI ƯU TIẾN HÓA 62 3.1. Thiết lập môi trường thực nghiệm (13)
    • 3.1.1. Dữ liệu (72)
    • 3.1.2. Cấu hình cài đặt (72)
    • 3.1.3. Kết quả thực nghiệm (73)
    • 3.1.4. So sánh hiệu năng thuật toán (75)
    • 3.2. Ứng dụng (76)
      • 3.2.1. Bài toán (76)
      • 3.2.2. Dữ liệu (76)
      • 3.2.3. Kết quả chạy thực nghiệm bài toán (78)
    • 3.3. Kết luận chương (85)
  • KẾT LUẬN (86)
  • TÀI LIỆU THAM KHẢO (88)

Nội dung

TỔNG QUAN VỀ PHÂN CỤM MỜ

Tập mờ

Trong lý thuyết tập hợp kinh điển do Cantor khởi xướng, mỗi phần tử chỉ có thể có giá trị 0 hoặc 1, nghĩa là chỉ có hai khả năng: thuộc hoặc không thuộc tập hợp Tuy nhiên, lý thuyết này không thể xử lý các dữ liệu có tính không chắc chắn và không rõ ràng.

Lotfi A Zadeh và Dieter Klaua là những người sáng lập lý thuyết tập mờ, bắt đầu với bài báo "Fuzzy Sets" xuất bản trên tạp chí "Information and Control" năm 1965 Zadeh đã phát triển lý thuyết này từ những khái niệm trừu tượng và không chắc chắn của thông tin như độ tuổi, chiều cao và nhiệt độ, bằng cách giới thiệu khái niệm toán học gọi là tập mờ FS, nhằm tổng quát hóa khái niệm tập hợp.

Các nhà nghiên cứu như Dubois, Prade, Mamdani, Tagaki, Sugeno, Ishibuchi và Herrera đã áp dụng nhiều phương pháp khác nhau để đạt được những kết quả lý thuyết và ứng dụng trong các lĩnh vực như điều khiển mờ, khai phá dữ liệu mờ, cơ sở dữ liệu mờ, và các hệ hỗ trợ quyết định Tập mờ FS được định nghĩa nhằm phục vụ cho các nghiên cứu này.

1.1.2 Tập mờ Định nghĩa 1.2 [25]: Cho tập nền X và x là phần tử của tập X Một tập mờ

F trên tập X được định nghĩa bởi một hàm thành viên hay còn gọi là hàm thuộc

 (degree of membership), đo “mức độ” mà phần tử x thuộc về tập F thỏa mãn điều kiện với  x  X , 0   F   x 1

Khi  F   x = 0 thì x  F hoàn toàn Khi  F   x = 1 thì  x  F hoàn toàn Tập mờ F rỗng nếu và chỉ nếu  F   x = 0 với  x  X

Tập mờ F toàn phần nếu và chỉ nếu  F   x = 1 với  x  X

Khái niệm tập mờ là sự mở rộng của tập rõ, trong đó hàm thuộc có thể nhận giá trị bất kỳ trong khoảng [0, 1] Tập rõ là một trường hợp đặc biệt của tập mờ, với hàm thuộc chỉ nhận hai giá trị là 0 hoặc 1.

Hàm thuộc không còn mang 2 giá trị tuyệt đối 0 hay 1, mà là giá trị thuộc đoạn [0,1]

Biểu diễn tập mờ theo đồ thị

Hình 1.1: Tập mờ và biểu diễn tập mờ

Ví dụ 1.4: Cho tập X gồm 5 người là  x 1 , x 2 , x 3 , x 4 , x 5  tương ứng có tuổi là

50, 10, 15, 55, 70, xác định tập F là tập hợp những người “Trẻ”?

Ta cú thể xõy dựng hàm thuộc như sau: à F (50)=0.35, à F (10)=0.95, à F (15)=0.75, à F (55)=0.30, à F (70)=0.05

Khi đó tập mờ F = {(50, 0.35) (10, 0.95) (15, 0.75) (55, 0.30)(70, 0.05)} và F được biểu diễn như Hình 1.2 sau:

Hình 1.2: Ví dụ một tập mờ

Số mờ là một khái niệm quan trọng trong lý thuyết tập mờ, được áp dụng trên tập các số thực R Mặc dù không có ràng buộc chặt chẽ trong việc xây dựng các tập mờ để diễn đạt các khái niệm ngôn ngữ, việc sử dụng số mờ giúp đơn giản hóa quá trình xây dựng và tính toán Số mờ được sử dụng để biểu thị các khái niệm mơ hồ về số, như gần 10, khoảng 15, hay lớn hơn nhiều so với 10.

Trong lĩnh vực điều khiển, để đơn giản hóa khả năng tích hợp các hàm, người ta thường tập trung vào hai loại số mờ chính là số mờ hình thang và số mờ hình tam giác.

Số mờ hình thang Hàm thành viên có dạng sau [1]:

Hình 1.3 Số mờ hình thang

Số mờ hình tam giác

Số mờ hình tam giác là trường hợp đặc biệt của số mờ hình thang Hàm thành viên có dạng sau:

Giới thiệu về phân cụm mờ

Phân cụm là một kỹ thuật quan trọng trong khai phá dữ liệu, thuộc phương pháp học không giám sát trong học máy Kỹ thuật này giúp tìm kiếm và phát hiện các cụm dữ liệu tự nhiên tiềm ẩn trong tập dữ liệu lớn, từ đó cung cấp thông tin và tri thức cần thiết cho quá trình ra quyết định.

Phân cụm là một kỹ thuật quan trọng, được hiểu là quá trình nhóm các đối tượng đã cho thành các cụm, trong đó các đối tượng trong cùng một cụm có sự tương đồng, trong khi các đối tượng thuộc các cụm khác lại khác biệt nhau.

Mục đích của phân cụm là khám phá bản chất bên trong các nhóm dữ liệu không có nhãn Tuy nhiên, không có tiêu chí nào được coi là tốt nhất để đánh giá hiệu quả của phân tích phân cụm, vì điều này phụ thuộc vào mục tiêu cuối cùng của việc phân cụm Do đó, người sử dụng cần cung cấp tiêu chuẩn để đảm bảo rằng kết quả phân cụm đáp ứng nhu cầu của họ.

Cho X là một tập dữ liệu gồm N vector:  x 1 , x 2 , , x N  Bài toán phân cụm là chia tập dữ liệu X , c cụm dữ liệu Z   z 1 , z , , z 2 c 

Thỏa mãn 3 điều kiện sau:

Phân cụm được đóng vai trò quan trọng trong các nghành khoa học:

Phân cụm dữ liệu trong thương mại giúp các nhà cung cấp xác định các nhóm khách hàng quan trọng với những đặc trưng tương đồng Qua đó, họ có thể mô tả và hiểu rõ hơn về hành vi của từng nhóm dựa trên các mẫu trong cơ sở dữ liệu khách hàng.

Phân cụm dữ liệu trong sinh học giúp xác định các loại sinh vật và phân loại các gen có chức năng tương đồng, đồng thời thu được các cấu trúc trong các mẫu sinh học.

Phân tích dữ liệu không gian trở nên khó khăn do khối lượng lớn dữ liệu từ hình ảnh vệ tinh, thiết bị y học và hệ thống thông tin địa lý (GIS) Phân cụm dữ liệu giúp người dùng tự động phân tích và xử lý thông tin không gian, hỗ trợ nhận dạng và chiết xuất các đặc tính cũng như mẫu dữ liệu quan trọng trong cơ sở dữ liệu không gian.

- Lập quy hoạch đô thị: Nhận dạng các nhóm nhà theo kiểu và vị trí địa lý, v.v, nhằm cung cấp thông tin cho quy hoạch đô thị

- Nghiên cứu trái đất: Phân cụm để theo dõi các tâm động đất nhằm cung cấp thông tin cho nhận dạng các vùng nguy hiểm

- Địa lý: Phân lớp các động vật, thực vật và đưa ra đặc trưng của chúng

Khai phá Web là quá trình phân cụm dữ liệu giúp khám phá các nhóm tài liệu quan trọng và có ý nghĩa trong môi trường trực tuyến Các lớp tài liệu này hỗ trợ việc tìm kiếm tri thức từ dữ liệu Web, phát hiện các mẫu truy cập của khách hàng, cũng như khám phá các cộng đồng trên mạng.

Trong bài toán phân cụm, khái niệm "đối tượng tương tự nhau" rất quan trọng Để xác định sự tương tự giữa hai đối tượng, cần xem xét các yếu tố và đặc điểm chung của chúng Việc đo lường mức độ tương tự có thể được thực hiện thông qua các phương pháp phân tích dữ liệu và thuật toán khác nhau.

Một độ đo không tương tự  trên X là một hàm:

Độ đo không tương tự, hay còn gọi là DM metric, được xác định là nhỏ nhất khi hai vector hoàn toàn đồng nhất hoặc tương tự nhau.

Một số độ đo không tương tự:

Khoảng cách giữa hai đối tượng x , y như sau

   với q là số nguyên dương

   Đây là trường hợp đặc biệt của khoảng cách Minkowski với q  2

 Khoảng cách cực đại:   x y ,   m ax i  1 N x i  y i

 Độ đo tương tự Cosin hai vector: cos

Một số phương pháp phân cụm điển hình

Dựa trên cách tiếp cận và thuật toán sử dụng, người ta phân các thuật toán phân cụm theo các phương pháp chính sau:

- Phân cụm dựa trên mật độ

- Phân cụm dựa trên lưới

- Phân cụm dựa trên mô hình

- Phân cụm có ràng buộc

Khi chọn lựa đặc trưng, cần phải thực hiện một cách hợp lý để tối ưu hóa việc "mã hoá" thông tin liên quan đến công việc Mục tiêu chính là giảm thiểu sự dư thừa thông tin giữa các đặc trưng Trước khi sử dụng, các đặc trưng cần được tiền xử lý để đảm bảo hiệu quả trong các bước tiếp theo.

Để đảm bảo tính chính xác trong việc đo lường độ tương tự giữa hai véc tơ đặc trưng, cần chọn độ đo gần gũi phù hợp Quá trình tiền xử lý đóng vai trò quan trọng, giúp tất cả các véc tơ đặc trưng có sự đóng góp đồng đều, tránh tình trạng một đặc trưng nào đó chiếm ưu thế hơn các đặc trưng khác.

Tiêu chuẩn phân cụm phụ thuộc vào cách hiểu của chuyên gia về thuật ngữ “dễ nhận thấy”, dựa trên loại cụm mà họ cho là ẩn dưới tập dữ liệu Ví dụ, tiêu chuẩn cho cụm trong không gian một chiều sẽ khác so với cụm trong không gian nhiều chiều.

- Thuật toán phân cụm: Cần lựa chọn một sơ đồ thuật toán riêng biệt nhằm làm sáng tỏ cấu trúc cụm của tập dữ liệu

Khi có kết quả phân loại, việc kiểm tra tính chính xác của kết quả là rất quan trọng Điều này thường được thực hiện thông qua các kiểm định phù hợp để đảm bảo độ tin cậy của kết quả.

Trong nhiều tình huống, các chuyên gia trong lĩnh vực ứng dụng cần phải kết hợp kết quả phân loại với bằng chứng thực nghiệm và phân tích để đưa ra những kết luận chính xác.

Tóm lại, phân cụm dữ liệu là một vấn đề đòi hỏi chúng ta phải giải quyết những công việc sau đây:

- Xây dựng hàm tính độ tương tự

- Xây dựng các tiêu chuẩn phân cụm

- Xây dựng mô hình cho cấu trúc cụm dữ liệu

- Xây dựng thuật toán phân cụm và xác lập các điều kiện khởi tạo

- Xây dựng các thủ tục biểu diễn và đánh giá kết quả phân cụm

Bài toán phân cụm mờ đã được ứng dụng rộng rãi trong nhiều lĩnh vực như nhận dạng ảnh, xử lý thông tin và phân loại khách hàng trong ngân hàng, với nhiều nghiên cứu chuyên sâu trong hai thập kỷ qua Điểm khác biệt chính giữa phân cụm mờ và phân cụm xác suất là trong phân cụm mờ, một vector có thể thuộc nhiều cụm cùng lúc, trong khi phân cụm xác suất chỉ cho phép một vector thuộc duy nhất một cụm Ưu điểm của phân cụm mờ thể hiện rõ trong thực tế khi không có ranh giới rõ ràng giữa các cụm, cho phép các điểm dữ liệu linh hoạt hơn Khái niệm độ thuộc được sử dụng để chỉ mức độ liên quan của một điểm dữ liệu với cụm mà nó thuộc, với giá trị nằm trong khoảng (0,1) Trường hợp điểm dữ liệu không thuộc vào cụm nào hoặc chỉ thuộc duy nhất một cụm rất hiếm gặp.

1.2.4.1 Tập dữ liệu trong phân cụm mờ

Kỹ thuật phân cụm có thể được áp dụng cho dữ liệu được định lượng (kiểu số), định lượng (phân loại) hoặc có thể kết hợp cả hai

Dữ liệu được quan sát bằng quá trình vật lý Mỗi quan sát chứa n biến độ đo, được biểu diễn thành vector cột n chiều x k   x 1 k , x 2 k , , x nk  T , x k  R n Tập A của

N quan sát được biểu diễn X   x k k  1, 2 , N  , và biểu diễn như một ma trận n N  :

Thuật toán Fuzzy C – Means (FCM)

Phân cụm dữ liệu là yếu tố then chốt trong việc giải quyết bài toán nhận diện mẫu và xác định mô hình mờ Thuật toán FCM được xem là lựa chọn tối ưu cho cả dữ liệu lớn lẫn nhỏ, đặc biệt là khi dữ liệu phân bố quanh các tâm cụm.

Fuzzy C – Means là một phương pháp phân nhóm cho phép một phần dữ liệu thuộc hai hay nhiều cụm

Thuật toán Fuzzy C – Means phân tập N đối tượng trong không gian R d chiều

 1 , z 2 , ,  j j j jd z  z x , với x i   x i 1 , x i 2 , , x id  thành c cụm mờ 1 c   N với tâm cụm

Z  z , với z j   z j 1 , z j 2 , , x jd  Cụm mờ của N đối tượng được biểu diễn bằng ma trận mờ có N hàng và c cột với N là số các đối tượng và c là số cụm

Có thể tổng quát bài toán bằng công thức (p) như [8]

 d ij  x i  z j là khoảng cách Euclide

 m m (  1) tham số mờ (Đối với m  1 thì Fuzzy C – Means trở thành thuật toán rõ Giá trị thường sử dụng là m  2 )

 Tâm cụm z j của cụm thứ j được tính theo công thức (1.4): ij 1 j

FCM được đề xuất bởi Bezdek năm 1974:

- Giá trị hàm thuộc ij

 Thuật toán Bước 1: Lựa chọn m m (  1) ; Khởi tạo các giá trị hàm thuộc ij , i 1, 2, , N j ; 1, 2, , c

Bước 2: Tính toán tâm cụm z j ; j  1, 2, , c theo công thức (1.4) ij 1 j

Bước 3: Tính khoảng cách Euclide d i ij ,  1, 2 , N j ;  1, 2 , c

Bước 4: Cập nhật các giá trị hàm thuộc  ij , i  1, 2, , N j ;  1, 2, , c theo công thức (1.5): ij 2 ij 1 1

Bước 5: Nếu không hội tụ, lặp lại bước 2

Một số luật dừng có thể áp dụng trong quá trình tối ưu hóa Đầu tiên, các giá trị đầu và giá trị cuối sẽ giảm khi giá trị tâm cụm thay đổi Ngoài ra, hàm mục tiêu (1.1) cũng cần được xem xét trong bối cảnh này.

   không thể cực tiểu hơn nữa Thuật toán FCM nhạy cảm với giá trị khởi tạo và có thể sảy ra tối ưu cục bộ

* Ưu và nhược điểm: Ưu điểm:

- Cho kết quả tốt nhất cho dữ liệu chồng chéo

Dữ liệu điểm duy nhất có thể không chỉ thuộc về một cụm mà có thể được phân vào nhiều cụm khác nhau Mỗi điểm được xác định thuộc về cụm dựa trên kết quả tính toán hàm thuộc, cho phép một điểm có khả năng thuộc về nhiều cụm cùng lúc.

- Cần tiên nghiệm số lượng các cụm

-  càng thấp kết quả nhận được càng tốt nhưng chi phí tính toán càng nhiều

- Khoảng cách Euclide các yếu tố cơ bản có thể không đồng đều

Thuật toán được cài đặt trên Matlab, với các hàm phụ:

- Hàm đọc dữ liệu đầu vào lưu với tên file là ReadData.m

- Hàm chuẩn hóa dữ liệu đầu vào về dạng [0,1] lưu với tên file là Chuan_hoa.m

- Hàm tính giá trị hàm mục tiêu lưu với tên file ObjFunc2.m

Hàm FCM.m chứa thuật toán tính giá trị Fuzzy C-Means, với hàm chính là main() gọi các hàm phụ và đo thời gian thực hiện Dữ liệu đầu vào được đọc thông qua hàm ReadData(Str).

Hàm chuẩn hóa dữ liệu về [0,1] function X = Chuan_hoa(X)

%Lay kich thuoc data [N,r] = size(X);

% Chuan hoa theo chieu du lieu for j = 1:r

%Tim min va max theo moi chieu Min_ = min(X(:,j));

%Chuyen du lieu ve [0,1] for i = 1:N X(i,j) = (X(i,j) - Min_)/ (Max_ - Min_); end end end

Hàm tính giá trị hàm mục tiêu function J = ObjFunc2(X, V, m)

[C, r] = size(V); for k = 1:N gt = 0; for j = 1:C tong = 0; for i = 1:r tong = tong + power(X(k,i)-V(j,i),2); end gt = gt + power(tong,1-m); end

Hàm tính Fuzzy C - Means function [U, V, J] = FCM(X, C, m, Eps, maxTest) rng('shuffle');

%Lay kich thuoc ma tran X [N,r] = size (X);

% %Khoi tao V ngau nhien - la ma tran kich thuoc C x r

% end %Vong lap dem = 0; while (1>0) for i = 1:N for j = 1:C %Tinh tu so

The algorithm begins by initializing the total distance to zero and iterating through each cluster For each data point, it calculates the distance from the centroid, accumulates the squared distances, and updates the total The membership matrix U is then computed, where each entry is the inverse of the total distance Subsequently, the algorithm updates the centroids V based on the membership values, calculating the weighted average of the data points Finally, it compares the new centroids W with the previous centroids V to determine convergence by summing the squared differences.

%Kiem tra sai so voi Eps if (saiso

Ngày đăng: 17/12/2023, 02:00

TÀI LIỆU CÙNG NGƯỜI DÙNG

  • Đang cập nhật ...

TÀI LIỆU LIÊN QUAN

w