1. Trang chủ
  2. » Công Nghệ Thông Tin

Bài toán phân cụm giải thuật và các ứng dụng

60 250 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 60
Dung lượng 3,19 MB

Nội dung

Ta sẽ khám phá hai chủ đề quan trọng :  Những cách khác nhau để nhóm một tập các đối tượng thành một tập các cụm  Các kiểu cụm.. I.2.2 Các kiểu phân cụm Trong phần này chúng ta sẽ phâ

Trang 1

BÀI TOÁN PHÂN CỤM Giải thuật và các ứng dụng

11/27/2014

Trường Đại học Bách khoa Hà nội

Viện Công nghệ thông tin và Truyền thông

Trang 2

CỘNG HÒA XÃ HỘI CHỦ NGHĨA VIỆT NAM

Độc lập – Tự do – Hạnh phúc

BẢN XÁC NHẬN CHỈNH SỬA LUẬN VĂN THẠC SĨ

Họ và tên tác giả luận văn: Nguyễn Hoàng Anh

Đề tài luận văn: Bài toán phân cụm: giải thuật và các ứng dụng

Chuyên ngành: Công nghệ thông tin

Mã số SV: CB120053

Tác giả, Người hướng dẫn khoa học và Hội đồng chấm luận văn xác nhận tác giả

đã sửa chữa, bổ sung luận văn theo biên bản họp Hội đồng ngày

… ………… với các nội dung sau:

………

……… ………

……… ………

……… ………

Ngày 29 tháng 1 năm 2015

CHỦ TỊCH HỘI ĐỒNG

Trang 3

PHIẾU GIAO NHIỆM VỤ LUẬN VĂN CAO HỌC

1 Thông tin giao đề tài luận văn và cán bộ hướng dẫn:

Họ và tên học viên: Nguyễn Hoàng Anh MSHV: CB120053

Tên đề tài: Bài toán phân cụm: giải thuật và các ứng dụng

Thời gian làm LVCH: Từ ngày 13/5 /2013 đến 27/11 /2014

2 Mục đích nội dung của LVCH

 Tìm hiểu tổng quan các thuật toán phân cụm và các ứng dụng

 Bài toán phân cụm cân bằng và ứng dụng

 Cài đặt và thử nghiệm giải thuật phân cụm cân bằng

3 Các nhiệm vụ cụ thể của LVCH

 Tìm hiểu tổng quan về phân cụm và các ứng dụng trong thực tế

 Tìm hiểu các thuật toán phân cụm cổ điển và các ưu nhược điểm của chúng

 Nghiên cứu chi tiết thuật toán phân cụm cân bằng

 Cài đặt thử nghiệm thuật toán phân cụm cân bằng trên dữ liệu nguồn

OpenStreetMap là các trạm ATM trên địa bàn Hà Nội

 Đánh giá và kết luận

Trang 4

4 Lời cam đoan của học viên:

Tôi - Nguyễn Hoàng Anh - cam kết LVCH là công sức đóng góp của bản thân tôi dưới

sự hướng dẫn của TS Phạm Quang Dũng

Các kết quả nêu trong LVCH là trung thực, không phải là sao chép toàn văn của bất kỳ công trình nào khác

Hà Nội, ngày 25 tháng 12 năm 2014

Tác giả LVCH

Nguyễn Hoàng Anh

5 Xác nhận của cán bộ hướng dẫn về mức độ hoàn thành của LVCH và cho phép bảo vệ:

Hà Nội, ngày 25 tháng 12 năm 2014

Cán bộ hướng dẫn

Tiến sĩ Phạm Quang Dũng

Trang 5

TÓM TẮT NỘI DUNG LUẬN VĂN CAO HỌC

PHẦN I : CƠ SỞ LÍ THUYẾT

 CHƯƠNG I : Giới thiệu chung

Giới thiệu tổng quan về phân cụm, bao gồm các định nghĩa cơ bản tới các ứng dụng của phân cụm trong thực tế Chương này cũng nêu lên những khó khăn trong việc phân cụm, chi tiết về các kiểu cụm và cuối cùng là giới thiệu các kĩ thuật phân cụm phổ biến nhất

 CHƯƠNG II : Thuật toán phân cụm cổ điển

Tìm hiểu thuật toán phân cụm cổ điển K-means, K-medoid nhưng chỉ tập trung chi tiết vào thuật toán K-means, thuật toán phân cụm phổ biến nhất Sau đó các vấn đề

bổ sung, nâng cao khi thực hiện phân cụm theo thuật toán K-means cũng sẽ được đề cập

và cuối cùng là các ưu nhược điểm của thuật toán

PHẦN II : PHÂN CỤM CÂN BẰNG

 CHƯƠNG III : Bài toán phân cụm cân bằng

Chương này giới thiệu cụ thể về bài toán phân cụm cân bằng, các nhu cầu thực tế của phân cụm nhưng cần thêm điều kiện ràng buộc cân bằng số điểm bằng nhau trong mỗi cụm Chương cũng trình bày một cách tóm tắt về tiến trình thực hiện phân cụm dữ liệu theo yêu cầu mở rộng này

 CHƯƠNG IV : Thuật toán phân cụm cân bằng

Chương này nghiên cứu một cách chi tiết về thuật toán phân cụm cân bằng Ba bước được trình này vắn tắt ở chương trước đó là : lấy mẫu, phân cụm tập mẫu và phân phối, lọc sẽ được mô tả cụ thể và trình bày dưới dạng giả ngôn ngữ Phần trọng tâm của thuật toán là bước phân phối và lọc Sau cùng một bước hậu xử lí giúp cải thiện hàm mục tiêu sẽ được đề xuất

 CHƯƠNG V : Cài đặt thử nghiệm

Mô tả các bước cài đặt thuật toán dựa vào bộ dữ liệu nguồn OpenStreetMap, là các điểm ATM có trên địa bàn Hà Nội Các kết quả so sánh giữa việc phân cụm theo

Trang 6

hơn của các cụm khi áp dụng bước hậu xử lí sau khi áp dụng thuật toán phân cụm cân bằng cũng sẽ được trình bày cụ thể

TỔNG KẾT ĐÁNH GIÁ

TÀI LIỆU THAM KHẢO

Trang 7

Mục lục

PHIẾU GIAO NHIỆM VỤ LUẬN VĂN CAO HỌC 3

TÓM TẮT NỘI DUNG LUẬN VĂN CAO HỌC 5

LỜI NÓI ĐẦU 10

PHẦN I : CƠ SỞ LÍ THUYẾT 11

Chương I : Giới thiệu chung 11

I.1 Tổng quan về phân cụm 11

Định nghĩa 11

Ứng dụng 11

I.2 Chi tiết về phân cụm 12

I.2.1 Khó khăn trong việc phân cụm 12

I.2.2 Các kiểu phân cụm 13

Phân cấp và phân vùng 13

Duy nhất, xếp chồng và mờ 14

Toàn bộ và bộ phận 14

I.2.3 Các kiểu cụm 14

Well-separated 15

Prototyped-Based 15

Graph-Based 15

Density-Based 15

Shared-Property 16

I.2.4 Các kĩ thuật phân cụm 17

Kĩ thuật K-means 17

Kĩ thuật phân cấp xếp đống 17

Kĩ thuật DBSCAN 17

Chương II : Thuật toán phân cụm cổ điển 18

II.1 K-means, K-mendoid 18

II.1.1 Cơ bản về thuật toán K-means 18

Giải thuật 1 K-means cơ bản 18

Gán điểm vào trọng tâm gần nhất 20

Trọng tâm và các hàm mục tiêu 20

Trang 8

Dữ liệu văn bản 21

Trường hợp tổng quát 22

Lựa chọn các điểm trọng tâm ban đầu 22

Ví dụ 1 (Các điểm trọng tâm khởi tạo tồi) [2] 22

Ví dụ 2 (Giới hạn của sự khởi tạo ngẫu nhiên) [2] 23

Độ phức tạp tính toán 26

II.1.2 K-mean : Các vấn đề bổ sung 26

Điều khiển các cụm rỗng 26

Nằm ngoài 27

Giảm SSE ở bước hậu xử lí 27

Cập nhật tăng các điểm trọng tâm 28

II.1.3 Bisecting K-mean 28

Giải thuật 2 Bisecting K-mean 28

Ví dụ 3 ( Bisecting K-mean và khởi tạo) 29

II.1.4 K-mean và những kiểu cụm khác nhau 30

II.1.5 Điểm mạnh và điểm yếu 32

PHẦN 2 : PHÂN CỤM CÂN BẰNG 34

Chương III : Bài toán phân cụm cân bằng 34

Tóm tắt 34

Giới thiệu bài toán 34

Chương IV : Thuật toán phân cụm cân bằng 38

Tóm tắt 38

IV.1 Lấy mẫu 40

IV.2 Phân cụm tập mẫu 40

IV.2.1 K-means Ơ clit 41

IV.2.2 K-means hình cầu 41

IV.3 Phân phối và lọc 42

IV.3.1 Thuật toán phân phối 43

IV.3.2 Thuật toán lọc 44

Gán từng điểm 45

Gán cụm điểm 45

IV.4 Đề xuất bước hậu xử lí 46

Trang 9

Chương V : Cài đặt thử nghiệm 48

V.1 Môi trường phát triển và thiết kế ứng dụng 48

Môi trường cài đặt 48

Dữ liệu bản đồ từ OpenStreetMap 48

Thiết kế dữ liệu cho một điểm 49

Xử lí nguồn dữ liệu bản đồ 49

Hiển thị các cụm dữ liệu lên Google Map 50

V.2 Kết quả thử nghiệm 51

V.2.1 Thuật toán K-means 51

Chia 3 cụm theo K-means 52

Chia 4 cụm theo K-means 53

V.2.2 Thuật toán phân cụm cân bằng 53

Chia 3 cụm theo phân cụm cân bằng 54

Chia 4 cụm theo phân cụm cân bằng 55

V.2.3 Độ ổn định sau bước hậu xử lí 57

TỔNG KẾT ĐÁNH GIÁ 58

1 Đánh giá kết quả 58

2 Kết luận 59

TÀI LIỆU THAM KHẢO 60

Trang 10

LỜI NÓI ĐẦU

Sau một thời gian tìm hiểu và nghiên cứu rất nhiều các thuật toán phân cụm, em nhận thấy thuật toán phân cụm cân bằng là một thuật toán mang tư tưởng mới mẻ về ràng buộc số điểm nằm trong mỗi cụm là bằng nhau, thuật toán có tính ứng dụng cao trong đời sống hiện nay Cụ thể như một công ty muốn phân công cho nhân viên của mình đi lấy dữ liệu khách hàng từ các trạm thông tin, khi đó bài toán đặt ra không chỉ là chia các trạm thành nhiều cụm mà số trạm trong một cụm cũng phải đều nhau Mặc dù chưa phải tuyệt đối mĩ mãn như lí thuyết nhưng các kết quả chạy ứng dụng cài đặt thuật toán đã thu được một số thành công nhất định Ngoài nỗ lực bản thân, em còn cần tới rất nhiều sự trợ giúp của nhiều người để có thể hoàn thành được luận văn cao học như ngày hôm nay

Trước hết, em xin gửi lời cảm ơn chân thành và sâu sắc tới TS Phạm Quang Dũng

- Bộ môn Khoa học máy tính, Viện Công nghệ thông tin và Truyền thông, trường Đại học Bách Khoa Hà Nội đã hết lòng giúp đỡ, định hướng và hướng dẫn tận tình để giúp

em vượt qua từng giai đoạn khó khăn trong quá trình làm luận văn cao học

Em cũng xin được gửi lời cảm ơn tới các thầy cô giáo trong trường Đại học Bách Khoa Hà Nội nói chung và các thầy cô trong Viện Công nghệ thông tin và Truyền

thông nói riêng đã tận tình giảng dạy, truyền đạt cho em những kiến thức và kinh nghiệm quý báu trong thời gian học tập chương trình Thạc sĩ kỹ thuật tại trường Đại học Bách Khoa Hà Nội

Cuối cùng em xin gửi lời cảm ơn tới gia đình đã luôn ở bên động viên và trợ giúp, nhất là luôn luôn tin tưởng vào cá nhân em, để em có thể hoàn thành được bản luận văn cao học của mình

Trang 11

PHẦN I : CƠ SỞ LÍ THUYẾT

Chương I : Giới thiệu chung

I.1 Tổng quan về phân cụm

Định nghĩa

Phân cụm chia dữ liệu thành các nhóm (clusters) ý nghĩa hoặc hữu dụng Mục đích là những đối tượng trong một nhóm sẽ tương đồng nhau và khác với các đối tượng trong nhóm khác Sự tương đồng trong một nhóm càng lớn thì sự khác nhau giữa các nhóm càng lớn, như vậy là việc phân cụm tốt hơn, độc nhất hơn

Cụm (Cluster) là một nhóm các đối tượng có chung một số đặc điểm, đóng vai trò quan trọng trong cách con người phân tích và mô tả thế giới Thực ra, con người có kĩ năng phân chia các đối tượng thành các cụm và gán các đối tượng đặc biệt vào các cụm này

Ví dụ, một đứa trẻ có thể nhanh chóng nhận diện được đâu là tòa nhà, xe cộ, con người, vật nuôi, cây cối trong một bức tranh Trong bối cảnh tìm hiểu dữ liệu, clusters là những lớp tiềm năng và phân tích cụm là kĩ thuật tự động tìm các lớp

Ứng dụng

Kỹ thuật phân cụm có thể áp dụng trong rất nhiều lĩnh vực như :

Marketing [2]: xác định các nhóm khách hàng (khách hàng tiềm năng, khách hàng giá

trị, phân loại và dự đoán hành vi khách hàng,…) sử dụng sản phẩm hay dịch vụ của công ty để giúp công ty có chiến lược kinh doanh hiệu quả hơn;

Thư viện [2]: theo dõi độc giả, sách, dự đoán nhu cầu của độc giả

Sinh học [2]: các nhà sinh học đã tốn nhiều năm để phân loại ra tất cả các thể sống :

ngành, lớp, loại, gia đình, loài Do đó không ngạc nhiên khi từ trước đây họ đã làm việc với phân tích cụm để tìm ra thuật toán tự động tìm cấu trúc phân loại Ngày nay, các

Trang 12

nhà sinh học áp dụng phân cụm để phân tích số lượng lớn thông tin di truyền ví dụ để

tìm nhóm các gens có cùng chức năng

Bảo hiểm, tài chính [2]: Phân nhóm các đối tượng sử dụng bảo hiểm và các dịch vụ tài

chính, dự đoán xu hướng (trend) của khách hàng, phát hiện gian lận tài chính (identifying frauds)

Truy xuất thông tin [2]: WWW bao gồm hàng tỉ các trang web, kết quả trả về theo một

truy vấn máy tìm kiếm có thể trả lại hàng ngàn trang Phân cụm có thể dùng để nhóm những kết quả này lại thành số ít các cụm, mỗi cái chứa một đặc tính cụ thể của truy vấn Ví dụ, truy vấn :”movie” có thể được nhóm lại theo catalog là : reviews, trailers, stars … mỗi catalog (cụm) có thể chia nhỏ hơn thành các catalog con ( sub-cluster), tạo

ra một cấu trúc phân cấp để hỗ trợ người dùng tìm kiếm kết quả

Chương này giới thiệu về phân tích cụm Chúng ta bắt đầu xem nhiều cách tiếp cận để chia các đối tượng thành tập các cụm và những kiểu khác nhau Sau đó ta mô tả 3 kĩ thuật phân cụm cụ thể đại diện cho số lượng lớn thuật toán và minh họa cho một vài khái niệm : K-means, phân cụm phân cấp xếp đống và DBSCAN

I.2 Chi tiết về phân cụm

Ở phần này sẽ cho chúng ta thấy định nghĩa rõ hơn về phân cụm, minh họa vì sao nó

là khó khăn và giải thích mối quan hệ của nó với những kĩ thuật khác Ta sẽ khám phá hai chủ đề quan trọng :

 Những cách khác nhau để nhóm một tập các đối tượng thành một tập các cụm

 Các kiểu cụm

I.2.1 Khó khăn trong việc phân cụm

Trong rất nhiều ứng dụng, khái niệm của một cụm không được định nghĩa tốt

Để hiểu rõ hơn về sự khó khăn của việc quyết định những gì tạo thành một cụm, xem hình 1: 20 điểm và 3 cách khác nhau để chia chúng thành các cụm:

Trang 13

Hình 1 [2] Các cách phân cụm khác nhau với cùng một tập điểm

Hình dạng của khối đánh dấu các thành viên của cụm Hình 1(b) và 1(d) chia dữ liệu thành 2 và 6 phần Tuy nhiên, sự phân chia rõ ràng hai khối lớn thành 3 khối nhỏ

có thể đơn giản dựa theo trực giác con người và cũng chẳng có lí do gì để không chia theo như hình 1(c) Hình trên chứng minh rằng định nghĩa về một cụm là không chính xác và định nghĩa tốt nhất phụ thuộc vào bản chất của dữ liệu và kết quả mà ta mong muốn

Phân tích cụm liên quan tới các kĩ thuật chia các đối tượng dữ liệu thành các nhóm Ví dụ, phân cụm có thể được xem như một phân loại trong đó nó tạo một nhãn cho các đối tượng

I.2.2 Các kiểu phân cụm

Trong phần này chúng ta sẽ phân biệt các loại phân cụm [2]:

- Phân cấp (hierarchical - nested) với phân vùng (partitional - unnested)

- Duy nhất (exclusive) với chồng (overlapping) với mờ (fuzzy)

- Toàn bộ (complete) với bộ phận (partial)

Phân cấp và phân vùng

Điểm khác biệt giữa những kiểu phân cụm được thảo luận nhiều nhất đó là : khi

Trang 14

unnested) Một partition đơn giản là một sự phân chia tập các đối tượng dữ liệu thành các tập con không chồng nhau (mỗi đối tượng dữ liệu chính xác nằm trong một tập con) Hình 1 b-d là phân cụm dạng partition

Nếu chúng ta cho phép cụm có những cụm con, khi đó ta có kiểu phân cấp Hierarchical : một tập các cụm lồng nhau được tổ chức theo dạng cây Mỗi nút là một cụm (trừ nút lá) là hợp của các con của nó ( subcluter) và gốc của cây chính là cụm tổng chứa toàn bộ các đối tượng ví dụ hình 1 a có hai cụm con như 1 b và trong mỗi cụm con của hình 1 b lại chia ra ba cụm con nữa như hình 1 d Khi xét theo trật tự đó chúng

ta hình thành lên một cây phân cấp Hierarchical chứa : 1,2,4,6 cụm Cuối cùng, lưu ý một cây phân cấp có thể được xem như một chuỗi các phân vùng Partition và một phân vùng có thể được tách ra bằng cách lấy bất kì đoạn nào trong chuỗi phân vùng của cây phân cấp Hierarchical đó

Duy nhất, xếp chồng và mờ

Hình 1 là tất cả là duy nhất: mỗi đối tượng được gắn với duy nhất 1 cụm Nếu đối tượng có thể đồng thời gắn với nhiều hơn một cụm ta có dạng xếp chồng (overlapping hay non-exclusive) Ví dụ : một người ở trường đại học có thể vừa là sinh viên tham gia học vừa là nhân viên thuộc trường đó Đối với phân cụm kiểu mờ (fuzzy) thì mọi đối tượng đều có một tỉ lệ nào đó thuộc về mọi cụm - tỉ lệ trọng số thành viên từ

0 tới 1 Như vậy các cụm được xem xét như các tập mờ

Trang 15

sự khác nhau giữa những kiểu của cụm [2], chúng ta dùng các điểm hai chiều như hình

Tập các đối tượng trong đó mỗi đối tượng gần với prototype định nghĩa ra cụm

chứa nó hơn với protype của cụm khác Ví dụ center-based cụm

Graph-Based

Nếu dữ liệu được biểu diễn dưới dạng đồ thị bao gồm các nút là các đối tượng và đường nối thì cụm sẽ được hiểu là các bộ phận được kết nối với nhau Ví dụ : Cụm kề

(contiguity-based clusters) trong đó hai đối tượng chỉ được nối với nhau khi chúng nằm

trong phạm vi khoảng cách quy định của mỗi đối tượng Có nghĩa là mỗi đối tượng nằm trong một Contiguity-based cluster sẽ gần với các đối tượng trong cùng cụm hơn bất cứ điểm nào ở cụm khác Hình 2 (c) chỉ ra một ví dụ của dạng cụm kề này đối với các điểm hai chiều

Density-Based

Một vùng dày đặc các đối tượng được bao quanh bởi một vùng ít dày đặc

Trang 16

Hình 2 [2] Các kiểu cụm khác nhau

Shared-Property

Tập các đối tượng mà có chung một vài đặc tính Cách định nghĩa này bao hàm toàn bộ các định nghĩa về một cụm mà ta đã đề cập, ví dụ : các đối tượng trong một cụm hướng tâm có chung thuộc tính là chúng gần nhất với điểm trung tâm Tuy nhiên, cách tiếp cận của Shared property cụm bao gồm những kiểu mới của cụm Xem các cụm ở hình 2 (e) ta thấy : một cụm vùng tam giác kế cận với một vùng chữ nhật, và có hai vòng tròn quấn vào nhau, và cần một thuật toán rất chi tiết để nhận diện ra các vùng cụm này tuy nhiên rất phức tạp ( sang phạm trù nhận diện mẫu) nên chúng ta sẽ chỉ xem xét những kiểu cụm đơn giản hơn trong luận văn này

Trang 17

I.2.4 Các kĩ thuật phân cụm

Trong chương này, chúng ta dùng ba kĩ thuật đơn giản nhưng quan trọng sau để

giới thiệu về các khái niệm trong phân tích cụm [2]

Trang 18

Chương II : Thuật toán phân cụm cổ điển

II.1 K-means, K-mendoid

Các kĩ thuật phân cụm dựa trên prototype tạo ra một phân vùng một cấp cho các đối tượng dữ liệu Có một số kĩ thuật như vậy nhưng nổi tiếng nhất là K-means và K-

medoid [2] K-means định nghĩa một prototype về trọng tâm, thường là khoảng giữa

của một nhóm các điểm và thường áp dụng cho các đối tượng ở khoảng n chiều medoid định nghĩa một prototype về một medoid, đó là điểm tượng trưng đại diện nhất cho một nhóm các điểm, và có thể áp dụng cho một phạm vi rộng dữ liệu vì nó chỉ cần một sự đo đạc xấp xỉ cho một cặp đối tượng Trong khi một trọng tâm thường không bao giờ tương ứng với một điểm, còn với medoid, sẽ là một điểm Trong phần này chúng ta sẽ chỉ tập trung duy nhất vào K-means, thuật toán lâu đời nhất và được sử dụng rộng rãi nhất

K-II.1.1 Cơ bản về thuật toán K-means

Kĩ thuật phân cụm K-means rất đơn giản [2], chúng ta sẽ bắt đầu với một mô tả

cơ bản về thuật toán Đầu tiên ta chọn trọng tâm khởi tạo K, trong đó K là một tham số người dùng, số lượng cụm mong muốn Sau đó mỗi điểm sẽ được gán với trọng tâm gần nhất, và mỗi tập hợp các điểm được gắn với một trọng tâm sẽ được xem là một cụm Trọng tâm của mỗi cụm sau đó được cập nhật lại dựa trên những điểm trong cụm Ta lặp lại các bước gán và cập nhật tới khi không có điểm nào thay đổi cụm hay một cách tương đương : cho tới khi các trọng tâm không còn thay đổi

K-means được mô tả bởi giải thuật 1 [2] Sự hoạt động của K-means được minh họa chi

tiết trong hình 3, chỉ rõ cách, từ 3 điểm trọng tâm, những cụm cuối cùng được tìm thấy qua 4 bước : gán-cập nhật Trọng tâm được đánh dấu là “+”, các điểm thuộc cùng cụm được đánh dấu cùng hình dạng

Giải thuật 1 K-means cơ bản

Trang 19

1 Chọn K điểm các trọng tâm khởi tạo

Hình 3 [2] Thuật toán K-means chia bộ dữ liệu làm 3 cụm

Với các kiểu và chức năng kết hợp của các điểm trọng tâm, K-means luôn luôn quy tụ

về một cách giải quyết Ví dụ, K-means đạt tới trạng thái mà không có điểm nào dịch chuyển từ cụm này sang cụm kia và do đó, điểm trọng tâm không thay đổi Tuy nhiên dòng thứ 5 trong giải thuật 1 thường được thay thế bằng một điều kiện khác dễ hơn, như : lặp tới khi chỉ 1% các điểm thay đổi cụm

Trang 20

Chúng ta sẽ xem xét mỗi bước trong giải thuật K-means kĩ hơn và phân tích phạm vi và

độ phức tạp tính toán

Gán điểm vào trọng tâm gần nhất

Để gán một điểm vào trọng tâm gần nhất, chúng ta cần một thước đo xấp xỉ để định lượng khái niệm gần nhất Khoảng cách Ơ-clit (L2) thường được sử dụng cho các điểm trong tọa độ Ơ-clit Ngoài ra còn có khoảng cách Manhattan cũng được dùng cho các điểm dữ liệu Ơ-clit…

Trọng tâm của tất cả các điểm

Số lượng đối tượng trong cụm thứ ith

Số lượng đối tượng trong bộ dữ liệu

Trong tọa độ Ơ-clit, ta có thể tránh việc tính toán nhiều lần tương tự nhau bằng cách sử dụng giải thuật chia đôi K-means, và cách tiếp cận này giúp tăng tốc độ tính toán cho giải thuật 3

Trọng tâm và các hàm mục tiêu

Bước thứ 4 của giải thuật K-means được phát biểu là : “Tính toán lại trọng tâm của mỗi cụm”, mục tiêu của phân cụm thường được biểu diễn bởi một hàm mục tiêu, phụ thuộc vào sự gần nhau giữa các điểm và các điểm với trọng tâm Khi chúng ta xác định được một thước đo xấp xỉ và một hàm mục tiêu, thì trọng tâm có thể được tìm thấy bằng phương pháp toán học

Trang 21

Dữ liệu trong tọa độ Ơ-clit

Xét tập dữ liệu có thước đo xấp xỉ là khoảng cách Ơ-clit, còn hàm mục tiêu của chúng ta : dùng SSE (Sum of the squared error) _ sự phân tán, hay nói cách khác : ta tính toán lỗi của mỗi điểm Ví dụ : khoảng cách Ơ-clit tới trọng tâm gần nhất, và sau đó tính tổng bình phương lỗi

(1) Dist : là khoảng cách Ơ-clit giữa hai đối tượng trong hệ tọa độ Ơ-clit

Trọng tâm nào khiến SSE nhỏ nhất là cái chúng ta cần Trọng tâm của cụm thứ i được định nghĩa bởi biểu thức :

(2)

Để mô phỏng, trọng tâm của một cụm có 3 điểm hai chiều (1,1) (2,3) (6,2) là ((1+2+6)/3, (1+3+2)/3) = (3,2) Bước 3 và 4 của thuật toán K-means cố gắng làm tối giản SSE Bước 3 định hình các cụm bằng cách gán các điểm với trọng tâm gần nhất, cách này làm tối giản SSE với một tập các trọng tâm cho trước Bước 4 tính toán lại các trọng tâm để tối giản hơn nữa SSE

Dữ liệu văn bản

Để minh chứng cho việc K-means không bị giới hạn ở dữ liệu trong không gian Ơ-clit, ta sẽ xem xét trường hợp của document data và độ đo cosin Giả sử document data được biểu diễn dưới dạng ma trận tài liệu, mục tiêu của ta là làm lớn nhất sự tương đồng của các tài liệu trong một cụm đối với trọng tâm – số lượng này còn được gọi là

độ liên kết của cụm (cohesion)

(3)

Trang 22

Trường hợp tổng quát

Có một vài lựa chọn cho hàm không gian, trọng tâm và hàm mục tiêu trong giải

thuật K-means cơ bản [2]

Hàm không gian Trọng tâm Hàm mục tiêu

Mahattan Điểm giữa Tối giản tổng các L1 (khoảng cách một điểm tới

tâm) Bình phương Ơ-

clit

Điểm giữa Tối giản tổng các bình phương L2 (khoảng cách

một điểm tới tâm) Cosin Điểm giữa Tối đa tổng của cosin sự đồng dạng của một điểm

tới tâm Phân kỳ Bregman Điểm giữa Tối giản tổng phân kỳ Bregman của một điểm tới

tâm

Lựa chọn các điểm trọng tâm ban đầu

Nếu sử dụng lựa chọn ngẫu nhiên, thuật toán K-means sẽ cho ra các tổng SSE khác nhau Ta mô phỏng với tập các điểm hai chiều như hình 3 với 3 cụm cho trước Hình 4 (a) chỉ ra một phương án phân cụm mà làm tối giản SSE cho toàn bộ 3 cụm, trong khi đó hình 4 (b) chỉ ra phương án chỉ tối ưu ở mức cục bộ

Lựa chọn đúng điểm trọng tâm ban đầu rất quan trọng Thường thì người ta hay chọn ngẫu nhiên và kéo theo là các cụm có chất lượng kém

Ví dụ 1 (Các điểm trọng tâm khởi tạo tồi) [2]

Lựa chọn một cách ngẫu nhiên điểm trọng tâm ban đầu có thể là tồi ví dụ như với cùng một tập các điểm như hình 3 ( hoặc 4) Hình 3 và 5 chỉ ra các cụm được tạo thành từ hai cách lựa chọn điểm trọng tâm ban đầu khác nhau Trong hình 3, cho dù tất

cả các điểm trọng tâm khởi tạo đều nằm trong một nhóm, thì SSE vẫn được tìm thấy

Trang 23

Trong hình 5, cho dù các trọng tâm khởi tạo dường như được phân bố tốt hơn, chúng ta lại thu được các cụm với tổng bình phương lỗi nhiều hơn (SSE)

Hình 5 [2] Các điểm khởi tạo tồi với K-means

Ví dụ 2 (Giới hạn của sự khởi tạo ngẫu nhiên) [2]

Một kĩ thuật hay được dùng cho vấn đề lựa chọn điểm trọng tâm ban đầu là thực hiện nhiều lần chạy, mỗi lần chọn ngẫu nhiên các điểm trọng tâm khác nhau và cuối cùng chọn phương án tạo ra các cụm có SSE nhỏ nhất Phương pháp này đơn giản nhưng có thể không tốt lắm, nó phụ thuộc vào tập dữ liệu và số lượng các cụm cần tìm

Ta sẽ chứng minh điều này bằng cách sử dụng tập dữ liệu như hình 6 (a)

Trang 24

Hình 6 [2] Hai cặp điểm khởi tạo nằm trong hai cặp cụm

Tập dữ liệu chứa hai cặp cụm (hai nhóm trên và dưới tạo thành một cặp), hai cụm trong cùng một cặp gần nhau hơn so với hai cụm ở cặp còn lại Hình 6 (b-d) chỉ ra nếu chúng ta chọn 2 điểm trọng tâm ban đầu ở mỗi cặp, thì sau đó, cho dù cả hai trọng tâm nằm trong một cụm thì cuối cùng chúng cũng được phân bố lại và ta tìm thấy các cụm cần thiết Tuy nhiên, hình 7 chỉ ra rằng nếu một cặp cụm ban đầu chỉ có một điểm trọng tâm và cặp cụm còn lại có 3 điểm trọng tâm thì cuối cùng ta thu được: hai cụm ban đầu kết hợp lại và có một cụm ban đầu bị chia ra

Trang 25

Hình 7 [2] Hai cặp cụm có nhiều điểm hơn hoặc ít hơn so với cụm khởi tạo ban đầu

Chú ý, phân cụm đạt được trạng thái tối ưu ngay khi hai điểm trọng tâm ban đầu rơi vào bất cứ đâu trong một cặp cụm, khi đó, các điểm trọng tâm sẽ tự phân phối lại, mỗi điểm sẽ gắn vào một cụm Không may, khi số lượng cụm lớn, nó sẽ phát triển theo hướng tối thiểu một cặp cụm sẽ chỉ có một điểm trọng tâm Trong trường hợp này, vì hai cặp cụm cách xa nhau hơn khoảng cách giữa những cụm ở ngay trong nó, thuật toán K-mean sẽ không phân phối lại trọng tâm giữa các cặp cụm, do đó, chỉ có một điểm trọng tâm tìm thấy

Do vấn đề với việc chọn ngẫu nhiên điểm trọng tâm khởi tạo ban đầu, mà việc lặp lại việc chạy thử nhiều lần không có kết quả tốt thì các kĩ thuật khác sẽ được áp dụng cho giai đoạn khởi tạo này Một cách hiệu quả là lấy một mẫu điểm và phân chia

Trang 26

trọng tâm của những cụm đó sẽ được dùng làm điểm trọng tâm Cách này thương có hiệu quả nhưng chỉ nên thực hiện khi (1) : mẫu là tương đối nhỏ ví dụ : một vài trăm tới vài nghìn (2) : K là tương đối nhỏ so với kích thước của mẫu

Một cách tiếp cận khác để chọn điểm trọng tâm khởi tạo là chọn điểm đầu tiên là ngẫu nhiên (thường là lấy điểm trọng tâm của toàn bộ tập dữ liệu) Sau đó, với mỗi điểm khởi tạo thành công, chọn điểm xa nhất đối với tất cả các điểm trọng tâm đã chọn Theo cách này, ta sẽ đạt được một tập các điểm khởi tạo đảm bảo vừa ngẫu nhiên vừa phân tách tốt Không may, cách này hay chọn phải điểm ở rìa chứ không phải ở vùng mật độ cao Và nó cũng tốn kém để tính toán tìm điểm xa nhất so với tập các điểm trọng tâm khởi tạo đã chọn Để vượt qua vấn đề này, ta thường chỉ áp dụng cho một mẫu các điểm

Cuối cùng, ta sẽ thảo luận về các cách hiệu quả nhất trong việc phân cụm sao cho chất lượng (SSE nhỏ nhất) : sử dụng biến đổi K-mean và hậu xử lí để sửa lại tập các cụm vừa tạo ra

Độ phức tạp tính toán

Khoảng yêu cầu cho K-mean là khiêm tốn nhất vì chỉ phải lưu trữ các điểm dữ

liệu và điểm trọng tâm Cụ thể, khoảng lưu trữ cần thiết là O((m+K)*n) [2]

Trong đó m là số điểm, n là số thuộc tính Thời gian tính cho K-mean cũng là khiêm tốn nhất, cơ bản là bằng với số điểm dữ liệu Trong trường hợp đặc biệt, thời gian tính là

O(I*K*m*n), trong đó I là số vòng lặp cần thiết để hội tụ I thường nhỏ và thường có

Trang 27

điểm trọng tâm khác vì nếu không thì bình phương lỗi sẽ lớn hơn mức cần thiết Một cách giải quyết là chọn điểm xa nhất với tất cả các trọng tâm hiện tại Cách này sẽ khử điểm có đóng góp lớn nhất tới tổng bình phương lỗi Một cách khác trong việc chọn điểm trọng tâm thay thế đó là chọn từ cụm có SSE cao nhất Điều này thường sẽ chia nhỏ cụm và giảm tổng SSE của việc phân cụm Nếu có nhiều cụm rỗng, tiến trình khử này sẽ được lặp lại nhiều lần tương ứng

Nằm ngoài

Khi tiêu chuẩn bình phương lỗi được dùng, các điểm nằm ngoài có thể ảnh

hưởng lớn tới những cụm được tìm thấy [2] Trong trường hợp đặc biệt, khi có các

điểm nằm ngoài, thì các trọng tâm kết quả cuối cùng có thể sẽ không giống như mong muốn, và SSE cũng cao hơn Vì vậy, ta thường phải phát hiện các điểm ngoài và khử chúng Vậy làm thế nào để xác định? Có một số cách, nếu ta loại bỏ chúng trước khi thực hiện phân cụm thì sẽ tránh được điểm không có lợi cho việc phân cụm Một cách khác, có thể thực hiện ở bước hậu xử lí

Giảm SSE ở bước hậu xử lí

Một cách để giảm SSE là tìm nhiều cụm hơn, sử dụng K lớn Nhưng một số trường hợp ta muốn cải thiện SSE mà không tăng số lượng cụm, điều này có thể thực hiện với K-mean Có rất nhiều kĩ thuật để sửa chữa kết quả phân cụm để tạo ra bộ cụm

có SSE nhỏ hơn Chiến thuật là tập trung vào những cụm riêng ( total SSE bằng tổng các cụm SSE) Ta có thể thay đổi total SSE bằng cách thực hiện nhiều hoạt động trên các cụm như chia nhỏ hay gộp vào Một cách thông dụng là dùng xen kẽ các pha chia

và gộp Ở pha chia, các cụm được chia nhỏ, trong khi ở pha gộp, cụm được gộp lại

Hai chiến lược làm giảm total SSE bằng cách tăng số lượng cụm [2]:

- Chia một cụm : Chọn cụm có SSE lớn nhất hoặc cụm có khả năng chia nhỏ dễ dang nhất

- Tạo một điểm trọng tâm mới : Thường chọn điểm xa nhất với tất cả các trọng tâm của các cụm đã có Ta có thể dễ dang xác định nếu ta theo dõi SSE đóng góp

Trang 28

bởi mỗi điểm Cách khác là chọn ngẫu nhiên từ tất cả các điểm hoặc trong số các điểm có SSE cao nhất

Hai chiến lược làm giảm total SSE bằng cách giảm số lượng cụm :

- Phân tán một cụm : loại bỏ trọng tâm tương ứng của cụm và gán lại các điểm cho các cụm khác Cụm bị phân tán nên được chọn là cụm có mức độ làm tăng SSE thấp nhất

- Gộp hai cụm : Những cụm có nhứng trọng tâm gần nhau nhất thường được chọn, nhưng có một cách khác là chọn những cụm làm tăng SSE nhỏ nhất

Cập nhật tăng các điểm trọng tâm

Thay vì cập nhật các trọng tâm sau khi tất cả các điểm đã được gán vào một cụm, thì các điểm trọng tâm có thể được cập nhật một cách gia tăng, sau mỗi lần gán

một điểm vào một cụm [2] Cách này đảm bảo những cụm rỗng sẽ không được sinh ra

khi tất cả các cụm đều bắt đầu bởi một điểm, và nếu một cụm chỉ có một điểm thì điểm

đó luôn được gán lại vào cùng cụm

Sử dụng cách này thì trọng số tương đối của điểm chuẩn bị được gán có thể được điều chỉnh

Cách này phải làm việc với hàm mục tiêu hơn là tối giản SSE

Điểm bất lợi là : vấn đề phụ thuộc thứ tự Các cụm sinh ra phụ thuộc vào thứ tự mà các điểm được xử lí Thuật toán K-mean cơ bản thực hiện việc cập nhật trọng tâm sau khi tất cả các điểm đã được gán vào cụm do đó không bị phụ thuộc vào thứ tự Ngoài ra, cách cập nhật gia tăng này có một chút đắt đỏ

II.1.3 Bisecting K-mean

Thuật toán bisecting K-mean là một mở rộng trực tiếp từ thuật toán K-mean cơ bản dựa trên ý tưởng : để đạt được K cụm, chia tập tất cả các điểm thành hai cụm, chọn

một cụm để đem đi chia nhỏ và cứ như vậy, cho tới khi K cụm được tạo thành [2] Chi

tiết như sau :

Trang 29

Khởi tạo danh sách các cụm để chứa cụm ban đầu của tất cả các điểm

repeat

loại bỏ một cụm khỏi danh sách

{Thực hiện vài lần thử chia đôi cụm được chọn}

chia đôi cụm được chọn sử dụng thuật toán K-mean cơ bản

Chọn hai cụm từ sự chia đôi với tổng SSE nhỏ nhất

Thêm hai cụm này vào danh sách

until danh sách chứa K cụm

Có một vài cách chọn cụm nào để đem đi chia nhỏ Ta có thể chọn cụm to nhất tại mỗi bước, chọn cái có SSE lớn nhất, hoặc dùng một tiêu chuẩn dựa trên cả kích thước lẫn SSE Các cách chọn khác nhau sẽ tạo ra các cụm khác nhau

Ta thường tinh chế các cụm kết quả bằng cách dùng các điểm trọng tâm của chúng làm các điểm trọng tâm khởi tạo trong thuật toán K-mean cơ bản Điều này là cần thiết vì mặc dù thuật toán K-mean đảm bảo tìm ra cách phân cụm thỏa mãn SSE, trong bisecting K-mean, ta dùng thuật toán K-mean một cách địa phương, ví dụ : chia đôi những cụm riêng Do đó, tập cụm cuối cùng không biểu diễn cách phân cụm thỏa mãn luật tổng SSE

Ví dụ 3 ( Bisecting K-mean và khởi tạo)

Để minh họa cho việc bisecting K-mean rất kém ở vấn đề khởi tạo, hãy xem hình

8, cách hoạt động của bisecting K-mean để tìm ra 4 cụm trong tập dữ liệu ban đầu như

hình 6 (a) [2]

Trang 30

Hình 8 [2] Bisecting K-means trên 4 cụm mẫu

Ở vòng lặp thứ nhất, hai cặp cụm được tìm thấy, ở vòng thứ hai, cụm bên phải được chia nhỏ, vòng 3, cụm bên trái được chia nhỏ Bisecting K-mean gặp ít vấn đề về khởi tạo vì nó thực thi vài lần thử chia đôi và chọn lần với SSE nhỏ nhất, và vì chỉ có hai trọng tâm tạo mỗi bước

Cuối cùng, bằng cách ghi lại chuỗi cụm sản sinh theo thuật toán bisecting mean, ta có thể dùng thuật toán này để thực hiện phân cụm phân cấp

K-II.1.4 K-mean và những kiểu cụm khác nhau

K-mean và những biến đổi của nó có một vài hạn chế trong việc tìm kiếm những kiểu cụm khác nhau Cụ thể, K-mean khó khăn trong việc dò tìm các cụm tự nhiên, khi các cụm không có dạng khối cầu hoặc kích thước hay mật độ khác xa nhau Điều này được mô tả ở hình 9, 10 và 11 Trong hình 9, K-mean không thể tìm được ba cụm tự nhiên vì một cụm lớn hơn rất nhiều so với hai cái còn lại, do đó, cụm lớn này bị chia nhỏ

Hình 9 [2] K-means với những cụm có kích thước khác nhau

Ngày đăng: 25/07/2017, 21:33

TỪ KHÓA LIÊN QUAN

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

TÀI LIỆU LIÊN QUAN

w