Thực hiện tinh chỉnh

Một phần của tài liệu Ứng dụng một số thuật toán phân cụm phân tích dữ liệu ngân hàng (Trang 46 - 48)

Trong các thuật toán nêu trên, có thể xảy ra trƣờng hợp hai cụm đƣợc phân rất gần với nhau và nó có thể cần thiết để hợp lại thành một cụm. Điều này không thể thực hiện bằng các thuật toán nêu trên. Có một cách để thực hiện điều này đó là thực hiện thuật toán hợp đơn giản sau đây sau khi kết thúc các thuật toán phân cụm nêu trên.

Thuật toán hợp cụm:

(A) Find Ci, Cj (i<j) thoả mãn d(Ci, Cj) = min k,r=1…m, kr d(Ck,Cr) If d(Ci, Cj) ≤ M1 then

Merge Ci, Cj to Ci và loại bỏ Cj

Cập nhật đại diện cụm của Ci (nếu có sử dụng véctơ đại diện)

Đổi tên lần lƣợt Cj+1 …. Cm thành Cj …. Cm-1 m = m -1 Go to (A) Else Stop End {If}

M1 là biến đƣợc định nghĩa xác định độ gần nhau giữa hai cụm Ci, Cj . Độ khác biệt d(Ci,Cj) giữa các cụm có thể đƣợc định nghĩa bằng các khái niệm ở chƣơng trƣớc.

Một điều trở ngại khác của thuật toán tuần tự đó là độ nhạy cảm với thứ tự vào của các véctơ. Chẳng hạn, ví dụ khi sử dụng BSAS, x2 đƣợc gán cho cụm

C1 và sau khi kết thúc thuật toán thì có 4 cụm đƣợc phân. Có thể có trƣờng hợp x2 gần với một cụm khác hơn là C1. Tuy nhiên, không có cách nào đến chuyển x2 đển cụm gần nhất sau khi đã gán cho cụm khác.

Có một cách để chống lại hiện tƣợng này đó là sử dụng thuật toán gán lại véctơ sau đây:

Thuật toán gán lại véctơ:

For i = 1 to N

Find Cj thoả mãn d(xi, Cj) = min k=1…m d(xi,Ck) Set b(i) = j

End {for} For j = 1 to m

Set Cj =b(i) = {xi X: b(i) = j}

Cập nhật véctơ đại diện (nếu có sử dụng)

End {for}

Trong thủ tục trên, b(i) biểu thị cho cụm gần với xi nhất. Thủ tục có thể đƣợc sử dụng sau khi hoàn thành các thuật toán phân cụm hoặc sau khi thực hiện thủ tục hợp các cụm nêu ở trên.

Một biến thể của BSAS đó là kết hợp hai thủ tục tinh chế [5]. Chỉ có trƣờng hợp sử dụng đại diện mới đƣợc xem xét. Phù hợp với thuật toán này, thay vì bắt đầu với một cụm riêng lẻ, chúng ta bắt đầu với m > 1 cụm, mỗi cụm chứa một trong số m véctơ đầu tiên của X. Chúng ta áp dụng thuật toán hợp cụm và sau đó chúng ta thực thi thuật toán với mỗi véctơ còn lạ1. Sau khi gán véctơ hiện thời với một cụm và cập nhật véctơ đại diện, chúng ta lại thực hiện thuật toán hợp cụm một lần nữa. Nếu khoảng cách giữa véctơ xi và cụm gần nhất lớn hơn ngƣỡng đã xác định, chúng ta sẽ tạo cụm mới chỉ chứa véctơ x1. Cuối cùng, sau khi tất cả các véctơ đƣợc thực thi với thuật toán, chúng ta sẽ thực hiện thủ tục gán lại một lần nữa. Thủ tục hợp cụm đƣợc áp dụng N – m + 1 lần. Cuối cùng, một biến thể của thuật toán đƣợc đƣa ra đòi hỏi một lần duyệt

duy nhất qua X [6]. Đặc biệt hơn nữa, giả sử rằng các véctơ đều đƣợc sinh ra bởi một pha trộn của k mật độ xác xuất Gauxơ, p(x|Ci), khi đó,

P(x) = j=1..kP(Cj) p(x|Cj; j, j) (3.6)

Với j, j lần lƣợt là trung bình và ma trận hiệp phƣơng sai của phân bố Gauxơ thứ j. P(Cj) là xác xuất của Cj. Để thuận tiện, giả sử rằng tất cả các P(Cj) đều bằng nhau. Các cụm đƣợc xây dựng bởi thuật toán đều có vẻ nhƣ theo phân bố Gauxơ. Khởi đầu, một cụm đơn đƣợc tạo lập sử dụng véctơ đầu tiên. Sau đó đối với mỗi véctơ mới vào xi, véctơ trung bình và ma trận hiệp phƣơng sai của mỗi trong m cụm đều đƣợc cập nhật phù hợp và các xác suất P(Cj|xi) có điều kiện đều đƣợc đánh giá. Nếu P(Cq|xi) = maxj=1…mP(Cj|xi) lớn hơn ngƣỡng a đã xác định trƣớc đó thì xi sẽ đƣợc gán cho Cq. Nếu không, một cụm mới sẽ đƣợc tạo với xi đƣợc gán.

Một phần của tài liệu Ứng dụng một số thuật toán phân cụm phân tích dữ liệu ngân hàng (Trang 46 - 48)