Tóm tắt một số kỹ thuật chọn trung tâm cụm khởi động thuật toán k-Means

Một phần của tài liệu Khai thác dữ liệu chuỗi thời gian dựa vào rút trích đặc trưng bằng phương pháp điểm giữa và kỹ thuật xén = time series data mining based on feature extraction with middle points and clipping method (Trang 115)

Means.

Năm 1967, McQueen giới thiệu một kỹ thuật đƣợc gọi là MA (McQueen

Approach) [81]. Kỹ thuật này chọn k trung tâm cụm một cách ngẫu nhiên. Ở bƣớc tiếp theo, thay vì phân hoạch tất cả các đối tƣợng còn lại vào cụm gần nhất rồi thực hiện thuật toán k-Means cho tới khi hội tụ, kỹ thuật MA gán mỗi lần một đối tƣợng vào một cụm gần nhất theo thứ tự xuất hiện trong cơ sở dữ liệu rồi thực hiện thuật toán k- Means trƣớc khi gán đối tƣợng kế tiếp vào các cụm. Đây là phiên bản trực tuyến (on- line) của thuật toán k-Means. Điểm yếu của kỹ thuật này là độ phức tạp tính toán cao trong trƣờng hợp cơ sở dữ liệu lớn vì thuật toán k-Means cần nhiều lần lặp sau mỗi lần gán một đối tƣợng vào các cụm [93].

Năm 1990, Kaufman và Rousseeuw [94] đề nghị chọn trung tâm cụm thứ nhất là đối tƣợng nằm gần trung tâm nhất. Trung tâm cụm thứ hai đƣợc chọn là đối tƣợng trong cơ sở dữ liệu cho ra giá trị hàm mục tiêu nhỏ nhất. Tiến trình tiếp tục cho đến khi k trung tâm cụm đƣợc chọn. Nhƣợc điểm của kỹ thuật này là khối lƣợng tính toán lớn để tìm trung tâm cụm.

98

Phƣơng pháp chọn trung tâm cụm sử dụng kỹ thuật lập trình về di truyền đƣợc Babu và Murty (1993) [95] đề xuất nhƣ sau: sự phù hợp của mỗi giải pháp lựa chọn trung tâm cụm đƣợc đánh giá bằng cách chạy thuật toán k-Means cho đến khi hội tụ, sau đó tính toán hàm mục tiêu. Giải pháp phù hợp nhất sẽ đƣợc dùng để tái tạo các giải pháp thế hệ thứ hai. Tiến trình tiếp tục cho đến khi số thế hệ qui định trƣớc đạt đƣợc. Phƣơng pháp này có thể cho lời giải tối ƣu, nhƣng trong trƣờng hợp cơ sở dữ liệu lớn việc phải chạy thuật toán k-Means cho mỗi giải pháp của mỗi thế hệ là không hiệu quả [93].

Thuật toán KKZ đƣợc Katsavounidis và các cộng sự đề xuất (1994) [96]. Thuật

toán này bắt đầu bằng việc chọn một đối tƣợng ở đƣờng biên của tập dữ liệu làm trung tâm cụm thứ nhất c. Đối tƣợng có khoảng cách xa nhất so với c đƣợc chọn làm trung

tâm cụm thứ hai. Tiếp theo tính toán khoảng cách của tất cả các đối tƣợng so với trung tâm cụm gần nhất với đối tƣợng đang xét. Đối tƣợng có khoảng cách xa nhất so với trung tâm cụm gần nhất với nó đƣợc chọn làm trung tâm cụm thứ ba. Tiến trình này đƣợc lặp lại cho đến khi k trung tâm cụm đạt đƣợc. Thuật toán này có điểm yếu là các đối tƣợng nằm xa bên ngoài sẽ đƣợc chọn mà không cần biết có gần trung tâm cụm không.

Năm 2003 Likas và các cộng sự sử dụng một phiên bản của kd-tree để khởi động cho mỗi lần chạy thuật toán k-Means [97]. Họ dùng kd-tree để tạo k nhóm và dùng

trung tâm của mỗi nhóm làm trung tâm cụm khởi động thuật toán k-Means. Sự biến đổi trên kd-tree mà họ sử dụng là chia mỗi nhóm dọc theo chiều có dao động lớn nhất.

Năm 2007, Redmond và các cộng sự giới thiệu kỹ thuật tạo các trung tâm cụm khởi động thuật toán k-Means bằng cách sử dụng kd-tree để ƣớc lƣợng mật độ của dữ liệu tại các vị trí khác nhau, sau đó sử dụng một phiên bản của thuật toán Katsavounidis kết hợp với ƣớc lƣợng mật độ này để chọn k trung tâm cụm cho thuật toán k-Means [93]. Đây là phƣơng pháp tạo trung tâm cụm khởi động thuật toán k- Means nhanh và đáng tin cậy.

99

5.2 Biểu diễn chuỗi thời gian ở nhiều mức xấp xỉ theo phƣơng pháp MP_C.

Để biểu diễn một chuỗi thời gian có chiều dài n ở nhiều mức xấp xỉ theo phƣơng pháp MP_C, chúng ta tiến hành các công việc sau. Trƣớc tiên, chuỗi thời gian T đƣợc chia thành N đoạn bằng nhau (N phải là một số nguyên có dạng 2k) và tính trung bình mỗi đoạn. Các điểm giữa của các đoạn này đƣợc xác định và một chuỗi bit của biểu diễn MP_C của chuỗi ở mức phân giải mịn nhất đƣợc tạo ra. Một chuỗi những giá trị trung bình ở mức phân giải này sẽ trở thành chuỗi dữ liệu nguyên sơ cho việc xấp xỉ MP_C ở mức phân giải kế tiếp. Số đoạn ở mức phân giải kế tiếp chỉ bằng một nửa của số đoạn ở mức phân giải hiện hành. Chú ý rằng khi một đoạn chỉ gồm có hai điểm, thì ta có thể chọn điểm đầu tiên của đoạn làm điểm giữa. Quá trình tạo ra biểu diễn MP_C từ một mức phân giải cao sang một mức phân giải thấp hơn cứ tiếp tục nhƣ thế cho đến khi ta đạt đến mức phân giải thô nhất. Bảng 5.1 cho một thí dụ về các xấp xỉ MP_C ở ba mức phân giải đầu tiên của chuỗi S = [4, 3, 6.5, 5, 4, 1, 3, 5, 7, 6, 2, 8] với

l = 1. Ở mức phân giải 3, chuỗi đƣợc chia làm 4 đoạn, mỗi đoạn gồm 3 điểm. Số đoạn

ở mức phân giải 2 bằng một nửa số đoạn ở mức phân giải 3 và số đoạn ở mức phân giải 1 bằng một nửa số đoạn ở mức phân giải 2.

Bảng 5.1 Ví dụ về các xấp xỉ MP_C ở ba mức phân giải đầu tiên của chuỗi S = [4, 3, 6.5, 5, 4, 1, 3, 5, 7, 6, 2, 8] với l = 1. Mức phân giải Trị trung bình các đoạn Chuỗi bit biểu diễn

các điểm giữa 3 2 1 4.50, 3.33, 5.00, 5.33 3.91, 5.16 4.54 0100 10 0 5.3 Kd-tree.

Kd-tree (k là số chiều của không gian tìm kiếm) đƣợc giới thiệu bởi Bentley (1975) [98]. Nó là một cấu trúc phân cấp từ trên xuống để phân hoạch các đối tƣợng. Hình 5.1 minh họa một sự phân hoạch các đối tƣợng hai chiều và kd-tree tƣơng ứng đƣợc tạo.

Kd-tree đƣợc xây dựng theo nguyên tắc sau: cho một tập n đối tƣợng (A1, A2, …, An), trong đó Ai = (Ai1, Ai2, …, AiN). Mỗi đối tƣợng đƣợc lƣu trữ nhƣ một nút trong cây. Mỗi nút chứa N khóa hình thành nên đối tƣợng và hai con trỏ có thể mang giá trị null

100

hoặc trỏ tới nút khác trong cây (mỗi con trỏ có thể đƣợc xem nhƣ một cây con). Mỗi nút đƣợc kết hợp với một số nguyên từ 0 đến N-1, đƣợc gọi là DISC(P), dùng để chỉ chiều sẽ đƣợc dùng để phân hoạch. Tất cả các nút ở cùng một mức của cây có cùng giá trị DISC(P). Nút gốc có DISC(P) là 0, hai nút con của nó có DISC(P) là 1, tiếp tục nhƣ vậy, các nút ở mức thứ N có DISC(P) là N-1. Mức thứ N+1 có DISC(P) trở lại là 0 và qui trình đƣợc lặp lại tƣơng tự.

Hình 5.1 Sự phân hoạch các đối tượng hai chiều và kd-tree tương ứng ( [98]).

Cho P là một nút bất kỳ trong kd-tree và j là DISC(P), thì với bất kỳ nút Q nào là nút con nhỏ hơn nút P ta có khóaj(Q) < khóaj (P), và với bất kỳ nút R nào là nút con lớn hơn nút P, ta có khóaj(P) < khóaj(R). Nhƣ vậy khi xây dựng kd-tree, nếu khóaj(Q) ≠ khóaj (P) thì ta quyết định đƣợc ngay nút con nhỏ hơn hay lớn hơn của P sẽ đƣợc

tạo. Trƣờng hợp khóaj(Q) = khóaj(P), quyết định phải đƣợc dựa trên các khóa còn lại. Thông thƣờng ngƣời ta sử dụng siêu khóa của P đƣợc định nghĩa nhƣ sau:

Sj(P) = khóaj(P) khóaj+1(P)… khóaN-1(P) khóa0(P)… khóaj-1(P)

Nếu Sj(Q) < Sj(P) thì nút con nhỏ hơn sẽ đƣợc tạo; nếu Sj(Q) > Sj(P) nút con lớn hơn sẽ đƣợc tạo. Nếu Sj(Q) = Sj(P) thì một giá trị đặc biệt sẽ đƣợc trả lại để chỉ ra điều đó.

5.4 Dùng kd-tree để tạo các trung tâm cụm khởi động cho thuật toán I-k-

Means.

Nhƣ đã đề cập ở trên, kd-tree đã đƣợc Redmond và các cộng sự sử dụng để khởi động thuật toán k-Means năm 2007 [93]. Tuy nhiên, việc sử dụng kd-tree để tạo trung tâm cụm khởi động cho k-Means có nhƣợc điểm là nếu số chiều dữ liệu nhỏ thì chất lƣợng gom cụm sẽ thấp, ngƣợc lại nếu số chiều dữ liệu cao thì thời gian tạo trung tâm cụm bằng kd-tree sẽ lâu. Để khắc phục nhƣợc điểm trên, chúng tôi sử dụng kd-tree để khởi động cho thuật toán I-k-Means ở mức phân giải thứ hai vì nó cung cấp một cách

A B C D E F G (0,100) (100,100) (0,0) • E(40,85) B(10,70) • • G(10,60) C(80,15) • • D(25,20) • A(50,50) F(70,85) • (100,0) K0 K1

101

nhanh và hiệu quả để tạo các trung tâm cụm khởi động cho thuật toán này. Phƣơng pháp này đƣợc thực hiện nhƣ sau [93]:

Cho một tập n đối tƣợng {A1, A2, …, An}, trong đó Ai = (Ai1, Ai2, …, AiN). Ta xem nhƣ tất cả các đối tƣợng này đƣợc bao bởi một vùng bao trong không gian N chiều.

Vùng bao này đƣợc định nghĩa bởi các giá trị nhỏ nhất và lớn nhất của các giá trị trong mỗi chiều của mỗi đối tƣợng. Các đối tƣợng đƣợc phân hoạch vào hai vùng bao con bằng cách phân chia các đối tƣợng dọc theo chiều dài nhất của vùng bao cha (mỗi vùng bao định nghĩa một cây con). Sự phân hoạch có thể thực hiện tại giá trị trung vị (median value) hay giá trị trung bình (mean value) của các tọa độ trong chiều dài nhất. Nếu giá trị trung vị đƣợc chọn thì số đối tƣợng trong mỗi vùng bao sau khi đƣợc phân hoạch sẽ xấp xỉ bằng nhau. Ngƣợc lại nếu giá trị trung bình đƣợc chọn thì thuật toán sẽ cần thêm một ít sự tính toán so với trƣờng hợp đầu. Trong thực nghiệm của chúng tôi, giá trị trung vị đƣợc chọn để phân hoạch.

Sự phân hoạch tiếp tục đƣợc thực hiện một cách đệ qui trên mỗi vùng bao con cho đến khi tất các vùng bao con ở mức thấp nhất thỏa một điều kiện nào đó nhƣ chỉ chứa một đối tƣợng hoặc chứa ít hơn một số đối tƣợng nào đó. Các vùng bao ở mức này đƣợc gọi là các vùng bao lá và tiến trình phân hoạch sẽ kết thúc. Hình 5.2 minh họa ba bƣớc trong quá trình phân hoạch các đối tƣợng hai chiều.

Một tính chất đáng quan tâm của kd-tree trong trƣờng hợp chọn giá trị trung vị để phân hoạch là số đối tƣợng trong mỗi vùng bao sau khi đƣợc phân hoạch sẽ xấp xỉ bằng nhau. Vì vậy nếu một vùng bao có mật độ dữ liệu dày đặc hơn một vùng khác thì thể tích vùng bao có mật độ dữ liệu dày đặc hơn sẽ nhỏ hơn. Đây chính là cơ sở cho cách tạo trung tâm cụm khởi động thuật toán I-k-Means.

(a) (b) (c) Hình 5.2 Ba bước trong quá trình phân hoạch các đối tượng hai chiều

(a) Vùng bao tất cả các đối tượng. (b) Hai vùng bao sau khi đã

102

Khi kd-tree đƣợc tạo, ta có thể qui định một cách bất kỳ là một vùng bao lá chứa nhiều nhất n/10k đối tƣợng. Điều này cho phép có xấp xỉ 10 vùng bao cho mỗi cụm. Gọi số vùng bao lá tạo đƣợc là q, thể tích của mỗi vùng bao lá Lj là Vj, và số đối tƣợng trong Lj là Nj. Ta tính mật độ ρj của vùng bao lá Lj theo công thức sau:

ρj = Nj / Vj, với j = 1… q

Khi tính mật độ của vùng bao lá ta cần đảm bảo thể tích vùng bao phải khác zero. Thể tích vùng bao lá có thể bằng zero nếu tất cả các đối tƣợng trong vùng bao có một hay nhiều giá trị tọa độ bằng nhau. Điều này có thể đƣợc khắc phục bằng cách thay thế bề rộng vùng bao dọc theo chiều có bề rộng là zero bằng trung bình của các bề rộng của các chiều có bề rộng lớn hơn zero.

Mật độ ρj của mỗi vùng bao lá đƣợc kết hợp với một điểm trong không gian. Trong thuật toán này, điểm đƣợc chọn là trung bình của các đối tƣợng dữ liệu nằm trong vùng bao lá đó. Gọi điểm này là mj. Nhƣ vậy ta có một danh sách q điểm (m1, …,

mq) trong không gian tƣơng ứng với q giá trị mật độ (ρ1, …, ρq).

Để chọn các trung tâm cụm khởi động cho thuật toán I-k-Means ở mức phân giải thứ hai, ta sẽ chọn k điểm mj từ q trƣờng hợp có thể. Thực hiện nhƣ sau: trung tâm cụm đầu tiên c1 đƣợc chọn là vùng bao lá có mật độ lớn nhất, nghĩa là 1 argmax ( )

j j

m

c  

Để chọn trung tâm cụm c2, ta tính giá trị gj = D(c1, mj). ρj, với D(c1, mj) là khoảng cách từ các mj còn lại so với trung tâm cụm c1. Trung tâm cụm c2 đƣợc chọn là điểm

mj tƣợng ứng giá trị gj lớn nhất. Tƣơng tự, trung tâm cụm c3 đƣợc chọn bằng cách tính công thức (5.2) rồi chọn điểm mj tƣợng ứng giá trị gj lớn nhất.

𝑔𝑗 = 𝑚𝑖𝑛𝑘=1,2 𝑑 𝑐𝑘, 𝑚𝑗 . 𝜌𝑗

Tổng quát, nếu t trung tâm cụm đã đƣợc chọn, trung tâm cụm kế tiếp ct+1 đƣợc chọn là điểm mj tƣơng ứng với giá trị gj lớn nhất, với j = 1,…, q. gj đƣợc tính theo công thức sau:

𝑔𝑗 = 𝑚𝑖𝑛𝑘=1..𝑡 𝑑 𝑐𝑘, 𝑚𝑗 . 𝜌𝑗

Thuật toán dùng kd-tree tạo k trung tâm cụm khởi động cho thuật toán I-k-Means đƣợc trình bày trong Hình 5.3.

(5.1)

(5.2)

103

Thuật toán. Dùng kd-tree tạo trung tâm cụm khởi động cho thuật toán I-k-Means

1. Tạo kd-tree cho tập dữ liệu chuỗi thời gian

2. Tính mật độ ρ’j và trung tâm vùng bao mj của mỗi vùng bao lá Lj, j = 1, …, q, với q là số vùng bao lá.

3. Chọn c1 = mz, với z = argmaxj(ρ’j) 4. Cho t = 2, …, k

- cho j = 1, …, q tính gj = {minr=1,…,t[D(cr, mj)]}. ρ’j . - ct = mz, với z = argmaxj(ρ’j)

5. Bỏ 20% vùng bao lá có mật độ thấp nhất. Quay lại bƣớc 3 và tính k trung tâm cụm lần 2 (c’1, …, c’k)

6. Trả lại (c1, …, ck), (c’1, …, c’k)

Hình 5.3 Thuật toán dùng kd-tree tạo trung tâm cụm ban đầu ( [93]).

Chú ý là trong công thức (5.3) giá trị gj phụ thuộc vào mật độ và vị trí của vùng bao lá. Nhƣ vậy vùng bao có mật độ cao sẽ chiếm ƣu thế hơn và kết quả sẽ đặt nhiều trung tâm cụm khởi động gần các vùng bao có mật độ cao, trong khi bỏ qua các vùng bao có mật độ thấp. Điều này đƣợc giải quyết bằng cách dùng giá trị thứ hạng (rank value) của mật độ thay vì dùng chính giá trị mật độ. Giả sử ta có 100 vùng bao lá, các vùng bao này đƣợc sắp xếp theo giá trị mật độ tính đƣợc bằng công thức (5.1) và lấy thứ tự của vùng bao làm giá trị thứ hạng của mật độ. Nhƣ vậy, vùng bao có mật độ cao nhất sẽ có giá trị thứ hạng là 100 và vùng bao có mật độ thấp nhất sẽ có giá trị thứ hạng là 1. Trong Hình 5.3, ρ’j chính là giá trị thứ hạng của mật độ.

Trƣờng hợp các đối tƣợng nằm ở ngoài xa đƣợc chứa trong vùng bao có mật độ thấp. Nếu khoảng cách giữa các đối tƣợng ở xa và các đối tƣợng trong cơ sở dữ liệu là lớn, có thể sẽ tạo nên giá trị g cao và vùng bao các đối tƣợng này sẽ đƣợc chọn. Để

khắc phục điều này, thuật toán sẽ đƣợc thực hiện hai lần để tạo hai tập trung tâm cụm có thể. Lần đầu dùng tất cả các vùng bao lá, lần thứ hai chỉ dùng 80% vùng bao lá có mật độ cao, bỏ đi 20% vùng bao có mật độ thấp để loại bỏ các đối trƣợng nằm ngoài xa.

5.5 Dùng CF-tree để tạo các trung tâm cụm khởi động cho thuật toán I-k-

Means.

5.5.1 Đặc trưng cụm và CF-tree (Cluster Feature tree).

Khái niệm về đặc trƣng cụm và CF-Tree đƣợc giới thiệu trong giải thuật gom cụm BIRCH do Zhang và các cộng sự đề xuất năm 1997 [99] nhƣ sau: Cho N điểm d

104

chiều trong một cụm. Đặc trƣng cụm (CF) đƣợc định nghĩa nhƣ bộ ba:

Với

Khi một mẫu đƣợc thêm vào hoặc lấy ra khỏi cụm thì đặc trƣng mới đƣợc tính từ đặc trƣng cũ của cụm một cách dễ dàng. Việc trộn hai cụm hay việc tách cụm cũng rất dễ dàng. Nhƣ vậy thay vì đặt các dữ liệu của cụm trên vùng nhớ, chúng ta chỉ cần thông tin về đặc trƣng cụm.

Giả sử Ta có

Cho hai trung tâm cụm x01và x02 khoảng cách Euclid và khoảng cách Manhattan giữa hai cụm đƣợc tính từ đặc trƣng cụm nhƣ sau:

Hình 5.4 Minh họa CF-tree.

Cây đặc trƣng cụm (Cluster Feature tree – CF-tree): Là một cây cân bằng với hệ số nhánh B, kích thƣớc nút lá L và ngƣỡng nút lá T. Nút trung gian chứa tối đa B phần tử theo dạng [Cfi, childi], biểu diễn một cụm đƣợc hình thành từ tất cả các cụm con của

Một phần của tài liệu Khai thác dữ liệu chuỗi thời gian dựa vào rút trích đặc trưng bằng phương pháp điểm giữa và kỹ thuật xén = time series data mining based on feature extraction with middle points and clipping method (Trang 115)