Phân cụm dữ liệu dựa trên sự ràng buộc

Một phần của tài liệu Ứng dụng mạng Kohonen cho khảo sát, đánh giá, thống kê tình hình của Trường Cao đẳng nghề (Trang 30 - 79)

Trong phân cụm dữ liệu để có những hiểu biết về những trường hợp nên hay không nên gom cụm lại với nhau người ta có thể áp dụng phương pháp phân cụm dựa trên những ràng buộc. Phân cụm ràng buộc dựa trên sự thay đổi của thuật toán K-mean dựa vào tính toán những liên kết bắt buộc giữa hai điểm trong cùng một cụm và hạn chế những liên kết không thể thực hiện được giữa hai điểm trong một cụm. Những yêu cầu đó là bắt buộc trong khi phân cụm dữ liệu. Khi các ràng buộc không được đáp ứng các liên kết ràng buộc được gán bằng 0. Phân cụm ràng buộc dựa trên các liên kết liên quan nhưng sự khác biệt đến từ phân cụm bán giám sát khi có một số nhãn được biết trước.

Hiện nay, các phương pháp phân cụm trên đã và đang được phát triển [5] và áp dụng nhiều trong các lĩnh vực khác nhau và đã có một số nhánh nghiên cứu được phát triển trên cơ sở của các phương pháp đó như: Phân cụm thống kê, phân cụm khái niệm, phân cụm mờ.

Phân cụm thống kê : Dựa trên các khái niệm phân tích hệ thống, nhánh nghiên cứu này sử dụng các độ đo tương tự để phân hoạch các đối tượng, chúng chỉ áp dụng cho các dữ liệu có thuộc tính số.

Phân cụm khái niệm : Kỹ thuật này được phát triển áp dụng cho dữ liệu hạng mục, chúng phân cụm các đối tượng theo các khái niệm mà chúng sử lý.

Phân cụm mờ : Sử dụng kỹ thuật mờ để PCDL. Các thuật toán thuộc loại này chỉ ra lược đồ phân cụm thích hợp với tất cả các hoạt động đời số hàng ngày, chúng chỉ sử lý các dữ liệu không chắc chắn.

Phân cụm sử dụng mạng Kohonen SOM (Self-Organizing Maps): Loại phân cụm này dựa trên khái niệm của các mạng nơron. Mạng SOM có tầng nơron vào và các tầng nơron ra. Mỗi nơron của tầng vào tương ứng với mỗi thuộc tính của bản ghi, mỗi một nơron vào kết nối với tất cả các nơron của tầng ra. Mỗi liên kết được gắn liền với một trọng số nhằm xác định vị trí của nơron ra tương ứng.

CHƢƠNG 2

MỘT SỐ VẤN ĐỀ VỀ PHÂN CỤM DỮ LIỆU BẰNG MẠNG KOHONEN 2.1. Thuật toán phân cụm dữ liệu

PCDL là kỹ thuật sử dụng quan sát đối tượng, mục đích để tổ chức một tập các đối tượng cụ thể hoặc trừu tượng vào các nhóm, cụm phân biệt. Bài toán phân cụm thường được thực hiện khi chúng ta không biết được nội dung thông tin của các thành phần thuộc cụm để định nghĩa trước các lớp. Vì lý do này mà công việc phân cụm thường được nhìn dưới con mắt của học máy không giám sát, phương pháp học mà khi ta cho trước một mẫu chỉ gồm các đối tượng cần tìm một cấu trúc đáng quan tâm của dữ liệu và nhóm lại các dữ liệu giống nhau.

Thuật toán phân cụm phát triển có thể cho kết quả tốt nhất với một loại tập hợp dữ liệu, nhưng có thể thất bại hoặc cho kết quả kém với các dữ liệu của các loại khác. Mặc dù đã có nhiều nỗ lực để tiêu chuẩn hóa các thuật toán có thể thực hiện tốt trong tất cả các trường hợp tình huống tuy nhiên vẫn chưa đạt được kết quả như mong muốn. Nhiều thuật toán phân nhóm đã được đề xuất. Mỗi thuật toán có giá trị riêng và điểm yếu riêng và không thể làm việc cho tất cả các tình huống thực tế. Phân cụm là quá trình phân vùng dữ liệu được thiết lập thành các nhóm dựa trên những đặc điểm tương tự nhau. Đây là vấn đề quan trọng trong học không giám sát. Nó thực hiện công việc với cấu trúc tìm kiếm trong một bộ dữ liệu không được dán nhãn. Để thực hiện tốt các thuật toán phân cụm thì cần phải có những điều kiện[6]:

- Khả năng mở rộng - dữ liệu phải được mở rộng nếu không sẽ đưa ra kết quả sai

- Thuật toán phân cụm phải có khả năng giải quyết với các loại thuộc tính khác nhau.

- Thuật toán phân cụm phải tìm ra các cụm dữ liệu với những hình dạng khác nhau.

- Kết quả thu được có thể giải thích được và có thể sử dụng để hiểu biết tối đa các thông số đầu vào.

- Thuật toán phân cụm phải có khả năng giải quyết tập dữ liệu đa chiều.

2.2. Một số thuật toán cơ bản trong phân cụm dữ liệu

2.2.1. Thuật toán phân cụm phân cấp

Thuật toán phân cụm phân cấp gồm có 2 loại: Thuật toán phân cụm theo thứ bậc trên xuống (Agglomerative Hierarchical). Thuật toán phân cụm theo thứ bậc từ dưới lên (Divisive Hierarchical). Hai thuật toán này trình tự làm việc ngược nhau. Thuật toán phân cụm phân cấp. Thuật toán này hoạt động bằng cách nhóm dữ liệu từng cặp một trên cơ sở các biện pháp khoảng cách gần nhất của khoảng cách giữa các điểm dữ liệu tất cả các cặp. Một lần nữa khoảng cách giữa các điểm dữ liệu được tính toán lại. Khi các nhóm đã được hình thành cần xem xét lại khoảng cách giữa các điểm dữ liệu. Một số phương pháp xem xét khoảng cách giữa các điểm dữ liệu:

- Khoảng cách gần nhất hoặc liên kết đơn nhất. - Khoảng cách xa nhất hoặc liên kết đầy đủ.

- Khoảng cách trung bình hoặc liên kết trung bình. - Tổng bình phương Euclide là nhỏ nhất

Thuật toán phân cụm phân cấp:

Cho X={x1,x2…xn} là tập hợp các điểm dữ liệu.

Bước 1: Bắt đầu với phân chia các nhóm có mức L(0) = 0 và dãy số m = 0.

Bước 2: Tìm khoảng cách tối thiểu của cụm trong cụm hiện tại biểu diễn bằng cặp (r), (s) theo công thức d[(r),(s)]=min d[i,j] là nhỏ nhất so với các cụm hiện tại.

Bước 3: Tăng số thứ tự m=m+1. Hợp nhất các cụm (r) và (s) vào một cụm duy nhất hình thành m cụm tiếp theo. Thiết lập mức của nhóm này là L (m)=d[(r),(s)]

Bước 4: Cập nhật ma trận khoảng cách D bằng cách xóa các hàng và cột tương ứng với cụm (r) và (s) và thêm một hàng và cột tương ứng với cụm mới được thành lập. Khoảng cách giữa cụm mới ký hiệu là (r,s) và cụm cũ (k) được định nghĩa d[(k),(r,s)] = min(d[(k),(r)],d[(k),(s)])

Bước 5: Nếu tất cả các điểm dữ liệu trong một cụm thì dừng lại nếu không lặp lại từ bước 2

Ưu điểm của thuật toán phân cụm phân cấp

- Không có thông tin về các cụm được yêu cầu.

- Dễ dàng thực hiện và cho kết quả tốt nhất trong một số trường hợp

Nhược điểm của thuật toán phân cụm phân cấp

Thuật toán không thể quay lại những gì đã thực hiện trước đó. Độ phức tạp của thuật toán O(n2log n) với n là số điểm dữ liệu. Không có hàm mục tiêu được giảm thiểu ngay lập tức. Khó xác định số lượng các cụm chính xác bởi sơ đồ nhánh.

Phân cụm phân cấp bao gồm một số thuật toán như: Thuật toán CURE; Thuật toán BIRCH; Thuật toán AGNES; Thuật toán DIANA; Thuật toán ROCK; Thuật toán CHANMELEON.

2.2.2. Thuật toán phân cụm phân hoạch (Thuật toán K-means)

Thuật toán K-mean là một trong các thuật toán học không giám sát để thực hiện phân cụm dữ liệu. Thủ tục đơn giản và dễ dàng để phân loại dữ liệu được thiết lập thông qua số lượng nhất định các cụm (giả sử k cụm).

Hình 2.1. Các thiết lập để xác định ranh giới các cụm ban đầu

Xác định trung tâm của mỗi cụm. Trung tâm của mỗi cụm phải được đặt ở những vị trí chính xác vì đặt ở những vị trí khác nhau sẽ đưa ra kết quả khác nhau. Vị trí đặt các trung tâm ở những vị trí càng xa nhau càng tốt. Bước tiếp theo là lấy mỗi điểm thuộc một tập hợp dữ liệu đưa ra và liên kết đến trung tâm gần nhất. Khi không có điểm chờ xử lý bước đầu tiên được hoàn thành và một nhóm đầu tiên được thực hiện. Tại thời điểm này chúng ta cần phải tính toán lại trọng tâm k mới

như là trọng tâm của các cụm kết quả từ bước trước. Sau khi có những trọng tâm k một ràng buộc mới có thể được thực hiện giữa tập hợp điểm dữ liệu và trung tâm mới gần nhất. Tạo ra một vòng lặp kết quả của vòng lặp này có thể nhận thấy rằng các trung tâm k thay đổi vị trí của chúng cho đến khi các trung tâm không có bất kì di chuyển nào. Thuật toán này nhằm mục đích giảm thiểu hàm mục tiêu như là hàm bình phương sai số: i 2 C C i j i 1 j 1 f (v) ( x v ) (2.1) Trong đó: i j x v : là khoảng cách Euclide Ci: Số điểm dữ liệu trong cụm thứ i C: Số lượng các trung tâm cụm

Hình 2.2. Tính toán trọng tâm của các cụm mới

Các bước thực hiện thuật toán K-mean

Cho X={x1,x2…xn} là tập hợp các điểm dữ liệu, V={v1,v2,v3…vn} là tập các trung tâm.

Bước 1: Chọn ngẫu nhiên trung tâm cụm c.

Bước 2: Tính khoảng cách giữa các điểm với trung tâm cụm.

Bước 3: Gán các điểm dữ liệu đến trung tâm cụm có khoảng cách tối thiểu của tất cả các trung tâm cụm.

Bước 4: Tính toán lại các trung tâm cụm mới bằng công thức:

i C i i j 1 i 1 v x c (2.2)

Trong đó: ci đại diện cho số lượng các điểm dữ liệu trong cụm thứ i.

Bước 5: Tính toán lại khoảng cách giữa mỗi điểm dữ liệu và các trung tâm cụm mới thu được.

Bước 6: Nếu không có điểm dữ liệu được gán lại khi dừng thì lặp lại bước 3

Ưu điểm của thuật toán K-mean:

- Thuật toán thực hiện cho ra kết quả nhanh chóng, mạnh mẽ và dễ hiểu

- Độ phức tạp của thuật toán O(tknd) trong đó n là các đối tượng, k là các cụm, d kích thước của từng đối tượng t là số lần lặp thông thường k,d,t<<n.

- Cho kết quả tốt nhất với tập dữ liệu riêng biệt hoặc tách rời nhau.

Nhược điểm của thuật toán K-mean:

- Thuật toán yêu cầu biết trước số lượng trung tâm cụm.

- Nếu có nhiều hơn 2 bộ dữ liệu chồng chéo nhau thì thuật toán khó phân cụm. - Dữ liệu đại diện cho mẫu của tọa độ đề các và tọa độ cực sẽ cho kết quả khác nhau.

- Lựa chọn ngẫu nhiên trung tâm các cụm có thể dẫn tới kết quả không tối ưu. - Không thể xử lý nhiễu và dữ liệu ngoại lai.

- Thuật toán thất bại với tập dữ liệu phi tuyến tính.

Ngoài ra thuật toán K-means ra, phân cụm phân hoạch còn bao gồm một số các thuật toán khác như: Thuật toán PAM; Thuật toán CLARA; Thuật toán CLARANS.

2.2.3. Thuật toán phân cụm dựa trên mật độ (Thuật toán DBSCAN)

Thuật toán phân cụm dựa trên mật độ đóng vai trò quan trọng trong tìm kiếm cấu trúc phi tuyến tính dựa trên mật độ. Thuật toán phân cụm dựa trên không gian mật độ DBSCAN (Density-Based Spatial Clustering of Applications with Noise) là một giải thuật phân cụm dựa trên mật độ, được phát triển bởi Ester, Kriegel, Sander và Xu (1996) được sử dụng rộng rãi dựa trên mật độ. Nó dựa trên hai khái niệm khả năng tiếp cận mật độ và khả năng kết nối mật độ.

Khả năng tiếp cận mật độ: Một điểm p được gọi là mật độ truy cập từ một điểm q nếu p nằm trong khoảng cách ε từ điểm q và q có đủ số điểm lân cận với khoảng cách trong phạm vi ε.

Khả năng kết nối mật độ: Một điểm p và q được cho là kết nối mật độ nếu có tồn tại một điểm r trong đó có đủ số điểm trong lân cận và cả hai điểm p và q nằm trong khoảng cách ε. Nếu q là lân cận của r, r là lân cận của s, s là lân cận của t, t là lân cận của p có nghĩa là q là lân cận của p.

Hình 2.3. Hình dạng các cụm đƣợc khám phá bởi thuật toán DBSCAN

Các bước của thuật toán phân cụm dựa trên mật độ DBSCAN:

Cho tập hợp các điểm dữ liệu X={x1,x2,x3…xn}. DBSCAN yêu cầu hai tham số: ε và số lượng tối thiểu các điểm cần thiết để tạo thành một cụm

Bước 1: Bắt đầu với một điểm tùy ý không được kiểm tra.

Bước 2: Rút ra các lân cận của điểm này bằng cách sử dụng khoảng cách ε.

Bước 3: Nếu có đầy đủ các điểm lân cận xung quanh điểm này thì bắt đầu quá trình phân cụm và điểm được đánh dấu truy cập khác thời điểm này được dán nhãn như là nhiễu.

Bước 4: Nếu một điểm được tìm thấy là một phần của cụm thì lân cận ε của nó cũng là một phần của cụm và thủ tục trên từ bước 2 được lặp đi lặp lại cho tất cả các điểm lân cận ε. Điều này được lặp đi lặp lại cho đến khi tất cả các điểm trong cụm được xác định

Bước 5: Một điểm mới ghé thăm thường xuyên được lấy ra và xử lý, dẫn đến việc phát hiện ra một cụm hoặc nhiễu.

Bước 6: Quá trình này được thực hiện cho tới khi các điểm viếng thăm được đánh dấu.

Ngoài thuật toán DBSCAN ra, phân cụm dựa trên mật độ còn bao gồm 2 thuật toán khác như: Thuật toán OPTICS; Thuật toán DENCLUE.

2.2.4. Thuật toán phân cụm dựa trên lưới (Thuật toán STING)

Thuật toán STING là kỹ thuật phân cụm đa phân giải dựa trên lưới, trong đó vùng không gian dữ liệu được phân rã thành số hữu hạn các ô chữ nhật, điều này có nghĩa là các ô lưới được hình thành từ các ô lưới con để thực hiện phân cụm. Có nhiều mức của các ô chữ nhật tương ứng với các mức khác nhau của phân giải trong cấu trúc lưới, và các ô này hình thành cấu trúc phân cấp: mỗi ô ở mức cao được phân hoạch thành số các ô nhỏ ở mức thấp hơn tiếp theo trong cấu trúc phân cấp. Các điểm dữ liệu được nạp từ CSDL, giá trị của các tham số thống kê cho các thuộc tính của đối tượng dữ liệu trong mỗi ô lưới được tính toán từ dữ liệu và lưu trữ thông qua các tham số thống kê ở các ô mức thấp hơn. Các giá trị của các tham số thống kê gồm: số trung bình - mean, số tối đa - max, số tối thiểu - min, số đếm - count, độ lệch chuẩn - s, ...

Các đối tượng dữ liệu lần lượt được chèn vào lưới và các tham số thống kê ở trên được tính trực tiếp thông qua các đối tượng dữ liệu này. STING có khả năng mở rộng cao, nhưng do sử dụng phương pháp đa phân giải nên nó phụ thuộc chặt chẽ vào trọng tâm của mức thấp nhất. Cấu trúc dữ liệu lưới thuận tiện cho quá trình xử lí song song và cập nhật liên tục, khi duyệt toàn bộ CSDL một lần để tính toán các đại lượng thống kê cho mỗi ô, nên nó rất hiệu quả và do đó độ phức tạp thời gian để tạo các cụm xấp xỉ O(n), trong đó n là tổng số các đối tượng. Sau khi xây dựng cấu trúc phân cấp, thời gian xử lý cho các truy vấn là O(g), trong đó g là tổng số ô lưới ở mức thấp (g << n).

Thuật toán STING gồm các bước sau:

Bước 1: Xác định tầng để bắt đầu:

Bước 2: Với mỗi cái của tầng này, tính toán khoảng tin cậy (hoặc ước lượng khoảng) của xác suất mà ô này liên quan tới truy vấn.

Bước 3: Từ khoảng tin cậy của tính toán trên, gán nhãn cho là có liên quan hoặc không liên quan.

Bước 4: Nếu lớp này là lớp dưới cùng, chuyển sang Bước 6; nếu khác thì chuyển sang Bước 5.

Bước 5: Duyệt xuống dưới của cấu trúc cây phân cấp một mức. Chuyển sang Bước 2 cho các ô mà hình thành các ô lên quan của lớp có mức cao hơn.

Bước 6: Nếu đặc tả được câu truy vấn, chuyển sang Bước 8; nếu không thì chuyển sang Bước 7.

Bước 7: Truy lục dữ liệu vào trong các ô liên quan và thực hiện xử lí. Trả lại kết quả phù hợp yêu cầu của truy vấn. Chuyển sang Bước 9.

Bước 8: Tìm thấy các miền có các ô liên quan. Trả lại miền mà phù hợp

Một phần của tài liệu Ứng dụng mạng Kohonen cho khảo sát, đánh giá, thống kê tình hình của Trường Cao đẳng nghề (Trang 30 - 79)