1. Trang chủ
  2. » Giáo Dục - Đào Tạo

DATA MINING Chameleon 2: Thuật toán phân cụm dựa trên đồ thị được cải tiến

29 6 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 29
Dung lượng 2,57 MB

Các công cụ chuyển đổi và chỉnh sửa cho tài liệu này

Nội dung

DATA MINING Chameleon 2: Thuật toán phân cụm dựa trên đồ thị được cải tiến. B2B DATA MINING Chameleon 2 Thuật toán phân cụm dựa trên đồ thị được cải tiến Thuật toán phân cụm dựa trên đồ thị được cải tiến Giới thiệu Thuật toán Chameleon nguyên bản Giới thiệu thuật toán Chamele.

Trang 1

DATA MINING

Chameleon 2: Thuật toán phân cụm dựa trên đồ thị được cải tiến

Trang 2

1. Giới thiệu

2. Thuật toán Chameleon nguyên bản

3. Giới thiệu thuật toán Chameleon 2

4. Chameleon 2 autopilot

5. Thử nghiệm

Mục lục

Trang 3

1 Giới thiệu

• Phân cụm là một kỹ thuật nhóm các đối tượng tương đồng thành các cụm và các đối tượng khác nhau thành các cụm khác nhau

• Không có định nghĩa chung chính xác một cụm là gì Các thuật toán khác nhau sử dụng các định nghĩa khác nhau của một cụm

• Phân cụm là một vấn đề (thuật toán) không giám sát Tức là gán dữ liệu cho một số nhóm không xác định trước dựa trên sự tương đồng của chúng

• Các thuật toán phân cụm được thiết kế để nhóm các đối tượng theo cách tương tự như cách quan sát của con người

• Tuy nhiên, mục tiêu cuối cùng là phát hiện các cấu trúc có kích thước cao hơn khả năng mà con người có thể nhận ra

Trang 4

1 Giới thiệu

• Nhiều thuật toán không tạo ra kết quả phân cụm hơn con người

• Một số gán các nhãn chính xác cho một cụm, trong khi nhiều thuật toán khác chấp nhận gán mờ cho nhiều cụm khác

• Nhược điểm chính của các phương pháp phân cụm dựa trên nguyên mẫu là gán các điểm dữ liệu cho centroid gần nhất, các phương pháp như vậy không thể phát hiện ra các cụm không phải hình cầu

Trang 5

1 Giới thiệu

• Là một thuật toán phân cụm dựa trên đồ thị, cố gắng khắc phục những hạn chế của phương pháp phân cụm truyền thống

• Hoạt động bằng cách kết nối các điểm dữ liệu gần nhau cũng như có tính đến thuộc tính các cụm bên trong khi hợp nhất chúng với nhau

• Không giống các thuật toán khác, Chameleon tạo ra kết quả giống con người nhất có thể

Trang 6

1 Giới thiệu

• Thuật toán Chameleon nguyên bản thường xác định được các cụm chính, nhưng lại sản sinh ra thêm các cụm nhiễu và hơn nữa rất khó để cấu hình

• Phiên bản cải tiến thuật toán Chameleon 2 có khả năng tìm thấy các cấu trúc phức tạp trong các bộ dữ liệu khác nhau với tỷ lệ lỗi tối thiểu và không cần điều chỉnh tham số quá nhiều

• Theo đánh giá, thuật toán Chameleon mới vượt trội hơn so với thuật toán nguyên bản trên tất cả các bộ dữ liệu thử nghiệm và hầu như luôn cung cấp kết quả tốt hơn so với các thuật toán thường dùng khác

Trang 7

2 Thuật toán Chameleon nguyên bản

• Hoạt động trên biểu đồ biểu diễn dữ liệu

• Thuật toán Chameleon gồm 3 bước:

• Bước 1: Xây dựng đồ thị kNN cho tập điểm dữ liệu (nếu đồ thị đã có, bỏ qua bước này)

• Bước 2: Phân rã đồ thị được tạo ra thành các phân vùng nhỏ có kích thước bằng nhau và giảm thiểu số lượng cạnh bị cắt (với cạnh bị cắt là cạnh có trọng số nhỏ, bằng với đảo ngược khoảng cách của 2 điểm) Sau khi phân vùng, nhiều cụm nhỏ có kết nối cao được hình thành (Để phân vùng có thể sử dụng thuật toán phân vùng siêu đồ thị Hmetis của Karypis

Trang 8

2.1 Công thức tính toán trong Chameleon

• Tính tổng trọng số của các cạnh kết nối 2 cụm con:

, (1), (2)

Trang 9

2.1 Công thức tính toán trong Chameleon

• Công thức tính gần gũi tương đối (relative closeness):

Trang 10

2.1 Công thức tính toán trong Chameleon

• Trong công thức (4), càng lớn thì 2 cụm và càng nên hợp nhất với nhau do là sự so sánh giữa tổng trọng số các cạnh nối trong cụm với tổng trọng số sau khi tách cụm Do đó, Chameleon hợp nhất các cụm có mật độ tương tự nhau

• Cuối cùng sự tương đồng giữa 2 cụm và được tính bằng công thức:

Trang 11

3 Thuật toán Chameleon 2

• Hạn chế của thuật toán Chameleon

• Không có khả năng xử lý các cụm nhỏ (chỉ chứa một hoặc vài phần tử)

• Không xử lý được các phần tử nhiễu

• Cấu hình thuật toán khá phức tạp

• Bên cạnh các tham số k, α, β, một số tham số trong hMETIS cũng cần được điều chỉnh cho bộ dữ liệu cụ thể

Trang 12

3.1 Khởi tạo đồ thị

• Chameleon 1(Chameleon gốc) được xây dựng dựa trên đồ thị kNN bất đối xứng

Biểu diễn đồ thị kNN bất đối xứng trên tập dữ liệu DS-577, mỗi phần tử được kết nối với k=18 nút lân cận

Trang 13

3.1 Khởi tạo đồ thị

• Chameleon 2 được xây dựng dựa trên đồ thị kNN đối xứng

Biểu diễn đồ thị kNN đối xứng trên tập dữ liệu DS-577, mỗi cạnh được thêm vào chỉ khi 2 điểm của cạnh đó liệt kê các nút khác trong 18

nút lân cận

Trang 14

3.1 Khởi tạo đồ thị

• Đồ thị kNN đối xứng của thuật toán Chameleon 2 loại bỏ nhiều cạnh kết nối giữa các cụm dẫn đến kết quả phân cụm tốt hơn

• Để có được sự phân cụm hợp lý, một giá trị k thích hợp cần phải được khởi tạo

• Thuật toán hoạt động tốt nhất nếu một biểu đồ kết nối được cung cấp

• Brito và cộng sự đã chứng minh rằng với n đủ lớn và hằng số c thiết lập k=c.ln(n) thì đồ thị kết nối được đảm bảo Trong bài này c=2 và n là kích thước dữ liệu đầu vào

Trang 15

3.2 Phân rã đồ thị

• Chameleon 1 sử dụng thuật toán phân rã siêu đồ thị nhanh (hMETIS), tuy nhiên thuật toán này không xác định và không có sẵn mã nguồn

• Chameleon 2 thực hiện phương pháp phân rã thay thế dựa trên sự tách rời Fiduccia-Mattheyses đệ quy

• Quy trình tách rời đệ quy:

• Yêu cầu một tham số , xác định số đối tượng tối đa trong một phân vùng

• Tách rời Fiduccia-Mattheyses liên tục cho đến khi số đối tượng trong một cụm không quá giá trị

•  

Trang 16

3.3 Tinh chỉnh phân vùng

• Sau khi phân rã (sử dụng hMETIS hoặc dùng phân rã tách đệ quy) đôi khi có thể tạo ra

các cụm bao gồm các phần tử cách xa nhau và không được kết nối bởi bất kỳ cạnh nào

Các cụm như vậy không thể được cố định trong giai đoạn hợp nhất và làm xấu đi

nghiêm trọng kết quả cuối cùng

• Để khắc phục tình trạng này, chúng ta áp dụng phương pháp Flood fill mà đệ quy để tìm

thấy các thành phần được kết nối trong biểu đồ phân rã Nếu một cụm bị ngắt kết nối,

Flood fill sẽ chia nó thành các cụm riêng biệt và được kết nối

• Thuật toán 1: Flood fill và ví dụ về kết quả tinh chỉnh ở trang sau

Một ví dụ về phân rã cân bằng với số lượng cạnh cắt nhỏ nhất Kết quả đã phân ra làm 2 cụm có số lượng nút gần bằng nhau Tuy nhiên, phần còn lại

là một cụm (có 1 nút) bị ngắt kết nối.

Trang 17

3.3 Tinh chỉnh phân vùng

Thuật toán 1: Flood fill

Input: Biểu đồ kNN được phân rã.

Output: Các cụm được kết nối.

Tìm và đánh dấu các đồ thị con được kết nối

Funtion FloodFill(graph)

while not marked all nodes in graph do

foreach node in graph do

if not marked(node) then

cluster = NewCluster() MarkConnectedSubgraph(graph, node, cluster) Thêm đệ quy tất cả các nút được kết nối vào cùng một cụm

Funtion MarkConnectedSubgraph(graph, node, cluster)

Mark(node, cluster)

foreach neighbor in neighbor(node) do

if not marked(neighbor) then

MarkConnectedSubgraph(graph, node, cluster)

Trang 18

3.4 Hợp nhất

• Không giống các thuật toán phân cụm phân cấp truyền thống, Chameleon 2 lưu trữ những cụm lân cận gần nhất, vì nó sẽ hợp nhất các cụm đó

• Thay vì tính toán độ phức tạp O() khoảng cách giữa tất cả các cặp cụm có thể có, chỉ có các cụm với hằng số c lân cận gần nhất là có thể hợp nhất Trong lần lặp đầu tiên, chỉ có O(n.c) được đánh giá

•  

Trang 19

3.5 Biện pháp cải thiện độ tương tự

• Chameleon 1 chọn cặp cụm tương tự nhất và hợp nhất các cụm ghép nối đó với nhau; bước này lặp lại đến khi không còn cụm nào

• Sự lựa chọn cặp cụm giống nhau dựa trên một chức năng được gọi là thước đo độ tương tự

• Thay vì tính toán dựa vào sự tách rời như ở Chameleon 1, Chameleon 2 dựa trên sự tương đồng về tỉ lệ giữa trọng số trung bình của tất cả các cạnh trên 2 cụm và tổng trọng số bên trong các cụm đó:

, (6), (7)

•  

Trang 20

3.5 Biện pháp cải thiện độ tương tự

• được tính theo cách tương tự bằng cách sử dụng trung bình của trọng số cạnh liên cụm giữa cụm và Do đó cách tính độ tương tự gần giống công thức (3)

, (8)

• Kết nối liên kết (inter-connectivity) được sửa đổi chỉ xem xét tỷ lệ giữa số cạnh, thay vì dựa vào trọng số cạnh

, (9)

•  

Trang 21

3.5 Biện pháp cải thiện độ tương tự

• Tham số β để sửa đổi trọng số của hệ số ρ:

Trang 22

lần quét đồ thị, do đó có độ phức tạp là O(n).

• Cuối cùng, một quá trình hợp nhất bình thường sẽ có độ phức tạp là O() Bằng cách ưu tiên hàng đợi, có thể giảm độ phức tạp này xuống O(log(m)) với m bước hợp nhất

• Do đó độ phức tạp của Chameleon 2 là O( + n + (n + )log(m))

•  

Trang 23

3.7 Cài đặt tham số

• Các tham số thuật toán được biểu diễn giá trị mặc định trong Bảng bên dưới Để thiết lập k, nên sử dụng k = a + c.ln (n), trong đó a và c là các hằng số Các hằng số này phải là các số nguyên nhỏ vì khi k quá lớn, các nút có thể được kết nối với các nút lân cận ở xa, dẫn đến kết quả không được chính xác

Tham số Mô tả Giá trị mặc định

k α β

Similarity Bisection

Số lượng nút lân cận (kNN)

Độ ưu tiên lân cận

Độ kết nối lân cận Kích thước phân vùng tối đa Xác định thứ tự hợp nhất Thuật toán phân tách Yếu tố cho các cụm nhỏ

2ln(n) 2.0 1.0 Max {5,n/100}

BBK Fiduccia–Mattheyses

Tham số Mô tả Giá trị mặc định

Số lượng nút lân cận (kNN)

Độ ưu tiên lân cận

Độ kết nối lân cận Kích thước phân vùng tối đa Xác định thứ tự hợp nhất Thuật toán phân tách Yếu tố cho các cụm nhỏ

Trang 25

4.1 Biểu diễn biểu đồ thị Dendogram

• Biểu đồ Dendogram thường được sử dụng để mô tả cấu trúc phân cấp, đôi

khi kết hợp với bản đồ nhiệt

• Dựa vào hình bên, một số thay đổi nhất định so với biểu đồ dendogram

truyền thống đã được thực hiện: thay vì hiển thị các phần tử riêng lẻ, mức

dendrogram thấp nhất đại diện cho các cụm nhỏ được tạo ra trong giai đoạn

Trang 26

4.1 Biểu diễn biểu đồ thị Dendogram

• Cuối cùng, chiều cao nút được xác định lại Thông thường, chiều cao của mỗi nút ở cấp thứ I (mỗi cấp đại diện cho sự hợp nhất của 2 cụm) được định nghĩa là khoảng cách giữa các cụm , ở cấp độ x và y, sau đó được hợp nhất vào cụm như sau:

, (12)

• Trong đó d (·, ·) là hàm khoảng cách giữa hai cụm Chiều cao của dendrogram được xác định là:

, (13)

•  

Trang 27

4.2 Bước cắt đầu tiên

• Bước cắt đầu tiên (First jump cutoff - Ch2-FJ) là một phương pháp dựa trên ý tưởng rằng khoảng cách lớn đầu tiên giữa các cấp cây là nơi các cụm nên được chia

• Để giữ cho các cụm khác nhau tách biệt sau quá trình phân tách, thuật toán đã cắt càng gần gốc cây trên biểu đồ dendogram càng tốt

• Thuật toán Bước cắt đầu tiên được biểu diễn ở trang sau

Trang 28

4.2 Bước cắt đầu tiên

Thuật toán 2: First jump cutoff

Funtion FirstJump(mult, factor)

Dữ liệu: biểu đồ dendogram

Kết quả: Chiều cao của cây được đề xuất để cắt

if upper - lower > jump then

return lower + (upper − lower ) / 2

lower ← upper

return 0

Ngày đăng: 08/11/2022, 14:06

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

TÀI LIỆU LIÊN QUAN

🧩 Sản phẩm bạn có thể quan tâm

w