THUẬT TOÁN PHÂN CỤM HIERACHICAL

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 60)

3.5.1 Nguyên lý thực hiện

Cho một tập N phần tử cần đƣợc phân cụm và một ma trận khoảng cách kích thƣớc N*N (hoặc ma trận tƣơng tự), tiến trình thực hiện thuận toán phân cụm phân cấp đƣợc xác định nhƣ sau:

Bƣớc 1: gán mỗi phần tử cho một cụm, nếu chúng ta có N phần tử thì tại bƣớc này, chúng ta sẽ có N cụm, mỗi cụm chỉ chứa một phần tử. Ma trận khoảng cách (tƣơng tự) giữa các cụm sẽ bằng với ma trận khoảng cách (tƣơng tự) giữa các phần tử của các cụm đó.

Bƣớc 2: Tím các cặp cụm gần nhau nhất và hợp nhất chúng thành một cụm, chúng ta sẽ bớt đƣợc một cụm (N-1).

Bƣớc 3: Tính khoảng cách (độ tƣơng tự) giữa cụm mới với các cụm đƣợc tạo tại bƣớc 1 (cụm cũ).

Bƣớc 4: Lặp bƣớc 2 và bƣớc 3 cho đến khi tất cả các phần tử đƣợc phân cụm thành một cụm duy nhất có kích thƣớc N hay N phần tử.

Tất nhiên chúng ta không muốn phân cụm thành một cụm duy nhất, điều này cho chúng ta thấy cách thức xây dựng một cây phân cấp đầy đủ, tƣơng ứng với các cấp khác nhau của cây sẽ cho chúng ta số cụm thích hợp và chúng ta có thể dừng thuật toán một khi đáp ứng đƣợc yêu cầu về số cụm. Chẳng hạn với k cụm, chúng ta sẽ cắt sau khi thực hiện đƣợc N-k+1 bƣớc.

Bƣớc 3 có thể đƣợc dừng với các cách khác nhau, các cách này đƣợc phân biệt thành phân cụm liên kết đơn (single-linkage) và liên kết trọn vẹn (complete-linkage) hay liên kết trung bình (average-linkage).

Với phân cụm liên kết đơn (single-linkage) hay còn gọi là liên kết rõ ràng hay phƣơng pháp tối thiểu, chúng ta cho rằng khoảng cách giữa một cụm tới cụm khác bằng với khoảng cách ngắn nhất giữa các phần tử thuộc hai cụm đó. Nếu dữ liệu chứa độ tƣơng tự, chúng ta cho rằng độ tƣơng tự giữa hai cụm bằng độ

tƣơng tự lớn nhất giữa phần tử của cụm này với bất kỳ phần tử nào của cụm kia.

Với phân cụm liên kết trọn vẹn (complete-linkage) hay còn gọi là phóng đại hay phƣơng pháp lớn nhất, chúng ta cho rằng khoảng cách giữa cụm này với cụm kia bằng khoảng cách lớn nhất giữa các phần tử của hai cụm đó.

Trong phƣơng pháp liên kết trung bình (average-linkage), các giá trị đó đƣợc tính bằng trung bình khoảng cách giữa bất kỳ phần tử nào thuộc cụm này tới phần tử thuộc cụm kia.

Phƣơng pháp phân cụm phân lớp còn đƣợc gọi là tích tụ bởi lẽ nó kết hợp các cụm một cách lặp lạ1.

Còn có một phƣơng pháp gọi là phân cụm phân cấp phân chia mà bắt đầu thực hiện với tấ cả các phần tử trong một cụm, sau đó chia chúng thành những phần nhỏ hơn. Phƣơng pháp này nhìn chung rất ít khi đƣợc áp dụng trong thực tế.

3.5.2 Mô tả thuật toán

Chúng ta sẽ xem xét trƣờng hợp liên kết đơn. Thuật toán là một lƣợc đồ vun đống và sẽ xoá dòng/cột của ma trận tạm thời lƣu các cụm cũ để tạo các cụm mới.

Ma trận N*N với D = [d(i,j)]. Thứ tự các cụm sẽ đƣợc gán theo thứ tự 0,1,..., (n-1) và L(k) là bậc của cụm thứ k. Một cụm có số thứ tự là m sẽ biểu thị là (m) và khoảng cách giữa các cụm (r) và (s) sẽ biểu thị bằng d[(r),(s)].

Thuật toán thực hiện nhƣ sau:

1. Bắt đầu với việc gán mức L(0) = 0 và số thứ tự m = 0. 2. Tìm cụm có khoảng cách nhỏ nhất và gọi là (r), (s), với

d[(r),(s)] = min d[(i),(j)]

3. Tăng số thứ tự: m = m +1. Kết hợp hai cụm (r) và (s) thành một cụm duy nhất để thực hiện bƣớc tiếp theo. Đặt mức của cụm này là L(m) = d[(r),(s)].

4. Cập nhật ma trận khoảng cách D bằng cách xoá các dòng, cột tƣơng ứng với hai cụm (r) và (s), sau đó thêm cột và dòng cho cụm mới, biểu thị (r,s) và cụm cũ (k) đƣợc định nghĩa nhƣ sau:

d[(k), (r,s)] = min d[(k),(r)], d[(k),(s)]

5. Nếu tất cả các phần tử đều thuộc một cụm thì dừng lại, không thì quay lại bƣớc 2.

3.5.3 Ví dụ về thuật toán phân cấp

Sử dụng phƣơng pháp phân cụm phân cấp để phân cụm các địa điểm bay giữa các thành phố của Italia. Khoảng cách đƣợc cho trong bảng (tính theo K- means). Chúng ta áp dụng phƣơng pháp liên kết đơn.

Ma trận khoảng cách đầu vào nhƣ sau:

BA FI MI NA RM TO BA 0 662 877 255 412 996 FI 662 0 295 468 268 400 MI 877 295 0 754 564 138 NA 255 468 754 0 219 869 RM 412 268 564 219 0 669 TO 996 400 138 869 669 0

Khoảng cách gần nhất giữa thành phố là MI và TO, 138km. Chúng ta kết hợp thành một cụm có tên là "MI/TO". Mức của cụm mới là L(MI/TO) = 138 và số thứ tự mới m = 1.

Chúng ta tính khoảng cách từ cụm mới hợp nhất tới tất cả các cụm khác. Trong phân cụm liên kết đơn, đây chính là khoảng cách nhỏ nhất của các phần tử thuộc hai cụm. Do đó, khoảng cách từ "MI/TO" tới RM đƣợc chọn là 564, đó là khoảng cách từ MI tới RM. Cứ tiếp tục nhƣ vậy, ta đƣợc bảng sau:

BA FI MI/TO NA RM BA 0 662 877 255 412 FI 662 0 295 468 268 MI/TO 877 295 0 754 564 NA 255 468 754 0 219 RM 412 268 564 219 0 (adsbygoogle = window.adsbygoogle || []).push({});

Tìm min d(i,j) = d(NA,RM) = 219 => kết hợp NA và RM thành một cụm mới gọi là NA/RML(NA/RM) = 219, m = 2. BA FI MI/TONA/RM BA 0 662 877 255 FI 662 0 295 268 MI/TO 877 295 0 564 NA/RM 255 268 564 0

Tiếp tục tính min d(i,j) = d(BA,NA/RM) = 255, kết hợp BA và NA/RM thành một cụm mới BA/NA/RML(BA/NA/RM) = 255, m = 3.

BA/NA/RM FI MI/TO

BA/NA/RM 0 268 564

FI 268 0 295

MI/TO 564 295 0

Tính min d(i,j) = d(BA/NA/RM,FI) = 268, kết hợp BA/NA/RM với FI thành một cụm mới BA/FI/NA/RM. Tính L(BA/FI/NA/RM) = 268. m = 4.

BA/FI/NA/RM MI/TO

BA/FI/NA/RM 0 295

Cuối cùng, chúng ta hợp nhất hai cụm ở mức 295.

Tiến trình thực hiện đƣợc thể hiện qua cây phân cấp nhƣ sau:

3.5.4 Ƣu, nhƣợc điểm của thuật toán

Ƣu điểm

- Thuật toán đơn giản, dễ hiểu.

- Không cần biết trƣớc số lƣợng phân cụm.  Hạn chế

Phƣơng pháp phân cụm phân cấp có một số điểm hạn chế chính nhƣ sau: - Có độ phức tạp về thời gian lớn: độ phức tạp thuật toán về thời gian nhỏ

nhất là O(n2), với n là số lƣợng phần tử cần phân cụm; - Không quay lại đƣợc sau khi đã thực hiện xong một bƣớc.

3.6 THUẬT TOÁN PHÂN CỤM K-LÁNG GIỀNG GẦN 3.6.1 Thuật toán K-láng giềng gần 3.6.1 Thuật toán K-láng giềng gần

Thuật toán K-láng giềng gần nhất (hay K-Nearest Neighbor - KNN) là một thuật toán học có giám sát mà kết quả của một đối tƣợng dữ liệu mới đƣợc phân cụm dựa chủ yếu vào k phần tử láng giềng gần. Mục đích của thuật toán này là phân cụm các đối tƣợng mới dựa vào các thuộc tính và các ví dụ huấn luyện.

Thuật toán KNN sử dụng phân loại láng giềng nhƣ dự đoán giá trị của một đối tƣợng dữ liệu mớ1.

Ví dụ:

Giả sử chúng ta có dữ liệu từ một cuộc điều tra và mục tiêu là kiểm tra hai thuộc tính độ phù hợp và tiện ích của một sản phẩm Ngân hàng mới đƣa ra

(điểm cao sẽ tốt hơn) để phân loại sản phẩm đó thích hợp với thị trƣờng hay không (tốt hay xấu). Sau đây là ví dụ huấn luyện

X1 = thích hợp X2 = tiện lợi Phân loại

7 7 Tốt

7 4 Tốt

3 4 Xấu

1 4 Xấu

Với một kết quả X1 = 3 và X2 = 7, không cần lấy thêm ý kiến, hỏi có đánh giá đƣợc sản phẩm này phù hợp hay không? Với thuật toán KNN, điều này có thể thực hiện đƣợc.

3.6.2. Cách thức thực hiện thuật toán KNN (adsbygoogle = window.adsbygoogle || []).push({});

Thuật toán KNN tƣơng đối đơn giản, nó thực hiện dựa trên khoảng cách gần của dữ liệu mới với tập dữ liệu huấn luyện để xác định K láng giềng gần. Sau khi xác định đƣợc K láng giềng gần, chúng ta sẽ dựa vào các láng giềng này để dự đoán về đối tƣợng dữ liệu mớ1.

Dữ liệu trong thuật toán KNN có thể chứa một số thuộc tính có tên là

(i=1,2..) và sẽ đƣợc phân cụm theo . Dữ liệu có thể đƣợc đo theo tỷ lệ bất kỳ từ thứ tự, danh nghĩa tới tỷ lệ định lƣợng nhƣng hiện tại chúng ta sẽ tiến hành với số lƣợng và nhị phân (danh nghĩa) . Phần sau sẽ tiến hành với loại dữ liệu khác.

Giả sử chúng ta có tập dữ liệu nhƣ sau:

X1 X2 Y X1 X2 Y 4 3 + 4 6 - 1 3 + 4 4 - 3 3 + 5 8 - 3 7 + 7 8 - 7 4 + 5 6 - 4 1 + 10 5 - 6 5 + 7 6 - 5 6 + 4 10 - 3 7 + 9 7 - 6 2 + 5 4 - 8 5 - 6 6 - 7 4 - 8 8 - 6 5 ?

Dòng cuối cùng là dữ liệu mà chúng ta cần dự đoán phân cụm. Biểu diễn đồ hoạ của bài toán trên nhƣ hình vẽ 4.1 phía dƣớ1.

Giả sử chúng ta gán K = 8 (chúng ta sẽ thực hiện với 8 láng giềng gần nhất)

nhƣ là một biến của thuật toán. Tiến hành tính các khoảng cách giữa điểm mới và các dữ liệu huấn luyện. Bởi vì chúng ta chỉ sử dụng số lƣợng nên có thể dùng khoảng cách Ơclit. Giả thiết điểm mới có toạ độ ( , ) và toạ độ của điểm trong ví dụ huấn luyện là ( , ), khi đó khoảng cách bình phƣơng Ơclit là:

.

Bƣớc tiếp theo là tìm K-láng giềng gần. Chúng ta sẽ kết luận một điểm huấn luyện làng giềng gần nếu khoảng cách của điểm này tới điểm mới nhỏ hơn hoặc bằng khoảng cách nhỏ nhất thứ K. Nói cách khác, chúng ta sắp xếp khoảng cách của tất cả các ví dụ huấn luyện tới điểm cần dự đoán và xác định K giá trị nhỏ nhất.

Bảng tính khoảng cách nhƣ sau:

Khoảng cách Dấu láng giềng gần Khoảng cách Dấu láng giềng gần

29 10 13 2 - 13 16 2 + 2 - 20 29 0 + 13 2 + 2 - 13 4 9 1 - 5 2 - 5 13

Trƣờng hợp này, số lƣợng các láng giềng có dấu “-” (5) nhiều hơn láng giềng có dấu “+” (3), chúng ta sẽ dự đoán điểm cần dự đoán sẽ có dấu “-”.

Nhƣ vậy, có thể tổng kết các bƣớc thực hiện thuật toán KNN nhƣ sau:

1. Xác định số K = số láng giềng gần nhất

2. Tính cách khoảng cách từ đối tượng dữ liệu tới các điểm ví dụ huấn luyện. 3. Sắp xếp các khoảng cách tính được và xác định K láng giềng gần nhất dựa vào các khoảng cách đó.

4. Xem xét các thuộc tính của K láng giềng gần đó.

5. Dự đoán giá trị của đối tượng dựa trên giá trị của các láng giềng nêu trên.

3.6.3. Một ví dụ áp dụng thuật toán KNN

Trở lại ví dụ đã đƣợc nêu ở phần đầu thuật toán này,

X1 = thích hợp X2 = tiện lợi Phân loại

7 7 Tốt

7 4 Tốt

1 4 Xấu

Với một kết quả X1 = 3 và X2 = 7, không cần lấy thêm ý kiến, hỏi có đánh giá đƣợc sản phẩm này phù hợp hay không?

Áp dụng thuật toán nêu trên

1. Xác định K = số láng giềng gần

Giả sử chúng ta sử dụng K = 3

2. Tính cách khoảng cách từ điểm mới tới các ví dụ huấn luyện (adsbygoogle = window.adsbygoogle || []).push({});

X1 = thích hợp X2 = tiện lợi Khoảng cách

7 7 (7-3)2 + (7-7)2 = 16 7 4 (7-3)2 + (4-7)2 = 25 3 4 (3-3)2 + (4-7)2 = 9 1 4 (1-3)2 + (4-7)2 = 13 3. Sắp xếp khoảng cách và xác định 3 láng giềng gần X1 = thích hợp

X2 = tiện lợi Khoảng cách Độ khoảng

cách Có nằm trong 3 láng giềng ko 7 7 3 Yes 7 4 4 No 3 4 1 Yes 1 4 2 Yes

4. Xem xét các giá trị của các láng giềng

Chỉ có dòng thứ 2 là không thuộc 3 láng giềng vì có độ khoảng cách (thứ tự)

là 4 > 3 (=K). X1 = thích hợp X2 = tiện lợi Khoảng cách Độ khoảng cách Có nằm trong 3 láng giềng ko Y=giá trị của LG 7 7 3 Yes Tốt 7 4 4 No - 3 4 1 Yes Xấu

1 4 2 Yes Xấu

5. Sử dụng các giá trị của láng giềng gần để dự đoán giá trị của dữ liệu mới

Chúng ta có 2 xấu và 1 tốt, do 2>1 nên có thể kết luận rằng sản phẩm mới không phù hợp với nhu cầu của khách hàng.

3.6.4. Ƣu, nhƣợc điểm của thuật toán KNN

Ƣu điểm

- Có thể xử lý đƣợc dữ liệu nhiễu. - Hiệu quả nếu tập dữ liệu học lớn.  Nhƣợc điểm

- Cần xác định trƣớc giá trị của K - số láng giềng gần nhất.

- Khoảng cách cơ sở dùng để học không rõ ràng nên không biết đƣợc khoảng loại cách nào và thuộc tính nào đƣợc sử dụng sẽ cho kết quả tốt nhất. Liệu chúng ta có thể sử dụng tất cả các thuộc tính hay chỉ một số thuộc tính nào đó mà thôi?.

- Yêu cầu về tính toán là rất lớn bởi vì chúng ta cần tính tất cả khoảng cách từ các dữ liệu học đến dữ liệu mới cần phân loạ1.

CHƢƠNG 4. XÂY DỰNG CHƢƠNG TRÌNH PHÂN CỤM 4.1 PHÂN TÍCH CÁC MODULE

4.1.1 Module chuẩn bị dữ liệu

Để thực hiện đƣợc các chƣơng trình phân cụm, cần chuẩn bị dữ liệu đầu vào Module chuyển đổi dữ liệu thực hiện các chức năng đảm bảo đầu vào cho các thuật toán phân cụm, đó là:

- Xác định các thuộc tính đầu vào của các thuật toán, ở đây chính là xác định các trƣờng dữ liệu trong File.

- Chuyển đổi các kiểu trƣờng thành các kiểu thuộc tính thích hợp cho các module tính khoảng cách giữa các phần tử thuật toán phân cụm. Từ các kiểu dữ liệu thông thƣờng nhƣ chuỗi (String), số thực (Real, Double), số nguyên (Interger), kiểu logic (Boolean)… thành các kiểu dữ liệu dùng cho các thuật toán phân cụm nhƣ sau:

+ Danh nghĩa (NORMINAL )

+ Quãng tỷ lệ (INTERVAL-SCALED)

+ Biến nhị phân (BINARY) đối xứng và bất đối xứng. + Biến thứ tự (ORDINAL)

+ Biến tỷ lệ không tuyến tính (RATIO-SCALED)

4.1.2 Tinh chỉnh dữ liệu

Module tinh chỉnh dữ liệu thực hiện các chức năng làm sạch dữ liệu trƣớc khi thực hiện thuật toán phân cụm. Nó cho phép ngƣời dùng lựa chọn chuyển đổi dữ liệu từ dạng tỷ lệ không tuyến tính sang tỷ lệ tuyến tính, có loại bỏ dữ liệu khuyết thiếu khi thực hiện phân cụm hay không.

Các lựa chọn tinh chỉnh dữ liệu sẽ ảnh hƣởng trực tiếp tới kết quả thực hiện các thuật toán phân cụm về sau.

4.1.3 Hàm tính khoảng cách

Nhƣ đã trình bày tại chƣơng 1, các độ đo gần gũi hay khác biệt giữa các phần tử/các cụm sẽ quyết định cho việc phần tử sẽ thuộc vào cụm nào, do đó có thể nói các giải thuật tính khoảng cách chính là cốt lõi của các thuật toán phân cụm. (adsbygoogle = window.adsbygoogle || []).push({});

Tuỳ theo loại dữ liệu và tính chất bài toán mà có thể áp dụng các công thức tính khoảng cách khác nhau. Chẳng hạn:

Công thức Manhattan và công thức Euclide (hay tổng quát hoá là công thức Minkowsky) thƣờng đƣợc áp dụng cho các bài toán phân cụm với dữ liệu dạng số (Interval Scaled hay Ratio Scaled). Còn với các bài toán phân cụm dữ liệu hỗn hợp sẽ áp dụng công thức tính khoảng cách hỗn hợp của Kaufman và Rousseeuw.

- Công thức tính theo Euclide giữa đối tƣợng i và đối tƣợng j đƣợc định nghĩa nhƣ sau: 2 2 1 1 ) ... ( ) ( ) , (i j xi xj xip xjp d     

- Công thức tính theo Manhattan đƣợc định nghĩa nhƣ sau.

| | ... | | ) , (i j xi1 xj1 xip xjp d     

- Tổng quát hoá từ hai công thức trên, ta có cách tính Minkowsky nhƣ sau q jp ip j i x x x x j i d( , )(| 1 1|...|  |)1/

- Công thức kết hợp các biến khác nhau vào một ma trận khác biệt đƣợc đề xuất bởi Kaufman và Rousseeuw năm 1998. Giả sử dữ liệu có chứa p biến với các thuộc tính kết hợp. Định nghĩa độ khác biệt d(i,j) giữa đối tƣợng i và j đƣợc xác định nhƣ sau:

     p f f ij p f f ij f ij d j i d 1 ) ( 1 ) ( ) ( ) , (   với + f ij

 = 1 khi cả hai giá trị xif và xjf của biến f không bị khuyếm khuyết. 0 trong trƣờng hợp ngƣợc lại

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 60)