Để xem một kỹ thuật khai phá dữ liệu có nên đ−ợc thực hiện song song hay không, ta cần xác định độ phức tạp của nó, dựa trên mơ hình chi phí thực tế. Chi phí cho một ch−ơng trình song song gồm hai phần: l−ợng tính tốn mà nó thực hiện và truyền thơng giữa các bộ xử lý. Chi phí này có thể đ−ợc tính chính xác bởi [15]:
g h Max w Max C i lý xử bộ c c i lý xử bộ c cá + á =
với hàm Max đ−ợc tính trên tập toàn bộ các bộ xử lý; wi là số các lệnh đ−ợc thực hiện bởi bộ xử lý i; hi là số byte đ−ợc gửi hoặc nhận bởi bộ xử lý i; và g là khả năng truyền của mạng, tính bằng số đơn vị thời gian để truyền mỗi byte.
Xét một thuật toán khai phá dữ liệu tuần tự: giả sử tập dữ liệu gồm n hàng có kích th−ớc m và các thuật tốn tạo ra s khái niệm. Mỗi thuật toán gồm một số k_s
lần lặp để tạo ra các khái niệm lớn hơn từ các khái niệm nhỏ hơn. Độ phức tạp đ−ợc cho bởi công thức:
( ) ( ) [STEP nm s ACCESS nm ] s k s t_ = _ , + cos
với STEP là chi phí cho một b−ớc lặp, ACCESS là chi phí xử lý dữ liệu.
D−ới đây trình bày các chiến l−ợc song song hoá các thuật toán tuần tự nêu trên [15].
I.2.3.1. Xấp xỉ các khái niệm
- Chia dữ liệu làm p tập con, mỗi tập trên một bộ xử lý.
- Thực hiện thuật toán tuần tự (hoặc cải biên của thuật toán trên mỗi tập con). - Trao đổi thông tin mỗi bộ xử lý học đ−ợc với các bộ xử lý khác.
- Lặp lại.
( )⎥⎦ ⎦ ⎤ ⎢ ⎣ ⎡ + + ⎟⎟ ⎠ ⎞ ⎜⎜ ⎝ ⎛ + ⎟⎟ ⎠ ⎞ ⎜⎜ ⎝ ⎛ = rpg RES rp p nm ACCESS r p nm STEP a k a t_ _ * , cos
trong đó r là kích th−ớc của các khái niệm xấp xỉ đ−ợc tạo bởi mỗi bộ xử lý; rpg là tổng chi phí của việc trao đổi các khái niệm xấp xỉ này giữa các bộ xử lý; RES(rp) là chi phí tính tốn của việc sắp xếp các khái niệm xấp xỉ này để tính đ−ợc các xấp xỉ tốt hơn cho lần lặp sau. Có thể giả thiết rằng:
( ) p r nm STEP r p nm STEP , ⎟⎟= , ⎠ ⎞ ⎜⎜ ⎝ ⎛ và ( ) p r nm ACCESS r p nm ACCESS , ⎟⎟= , ⎠ ⎞ ⎜⎜ ⎝ ⎛ ⇒ k a(rpg RES ( )rp ) p s t a t_ = cos _ + _ + cos
Nh− vậy, ta tăng tốc đ−ợc p lần, khơng kể tổng chi phí, với điều kiện k_s và k_a có kích th−ớc có thể so sánh đ−ợc. Trao đổi kết quả th−ờng xuyên có thể cải thiện độ chính xác nhanh hơn với một số thuật tốn, ví thế k_a << k_s. Điều này cho ta sự tăng tốc gấp đơi: (tổng chi phí) p s t s k a k a t *cos _ _ _ _ _ _ cos = +
I.2.3.2. Phân chia các khái niệm
- Chia tập dữ liệu làm p tập con dựa trên các thuộc tính
- Thực hiện một biến đổi cụ thể của một thuật toán khai phá dữ liệu trên tập con này để lấy ra các khái niệm hoặc các tham số mơ hình chỉ ứng với tập con các thuộc tính này.
- Lặp lại.
- Kết hợp các khái niệm cục bộ hợp lý với nhau để tạo ra các khái niệm mơ tả tồn bộ tập dữ liệu.
( ) ( )⎥⎦ ⎦ ⎤ ⎢ ⎣ ⎡ + + ⎟⎟ ⎠ ⎞ ⎜⎜ ⎝ ⎛ + ⎟⎟ ⎠ ⎞ ⎜⎜ ⎝ ⎛ = EXCH n m r p g RES n m r p p m n ACCESS r p m n SPECIAL p k p t_ _ , , , , , , * , , , cos
với hàm SPECIAL tính độ phức tạp của một b−ớc của thuật tốn; EXCH là chi phí trao đổi các khái niệm cục bộ.
I.2.3.3. Các chiến l−ợc tìm kiếm độc lập
Khơng phân chia dữ liệu. Thay vì thực hiện cùng một thuật toán p lần, sử dụng một số kỹ thuật ngẫu nhiên để h−ớng thuật toán sang một phần khác của khơng gian tìm kiếm các khái niệm.
Giá của một thuật tốn tìm kiếm độc lập có dạng:
( ) ( ) [STEP nm s ACCESS nm ] s g s i k i t_ = _ * , + + * + cos
Rõ ràng cách tiếp cận này chỉ có ý nghĩa nếu ta có lý do để giả sử rằng
p s k i k _ = _ . I.2.3.4. So sánh các chiến l−ợc
Giá của các chiến l−ợc thực hiện khác nhau ở trên phụ thuộc vào giá trị của các giá trị k_a, k_p, k_i. Tuy nhiên, giả sử rằng chúng khơng tồi hơn k_s thì ta có
thể xếp hạng các cách song song hóa nh− sau:
Thuật tốn khái niệm xấp xỉ tốt hơn thuật toán khái niệm cục bộ, tốt hơn thuật tốn tìm kiếm độc lập. Các kỹ thuật kết hợp từng phần tạo nhiều khái niệm mà chúng không thể là một bộ phận của tập khái niệm lớn hơn. Vì thế các tập tạo bởi mỗi thuật toán độc lập là lớn hơn nhiều so với các tập có đ−ợc sau khi giải quyết, có nghĩa là mỗi thuật tốn đã làm một việc vơ ích. Cũng vậy, tìm kiếm độc lập khơng lợi dụng đ−ợc một thực tế là các bộ xử lý khác cũng đã có thể phát hiện ra các tri thức có ích mà có thể tỉa bớt sự tìm kiếm ở bộ xử lý này, và nó lại thực hiện cơng việc vơ ích.
Kết luận ch−ơng 1
Ch−ơng này đã trình bày những nội dung chính yếu về khai phá dữ liệu, hệ thống tính tốn song song và áp dụng trong khai phá dữ liệu song song. Việc phát hiện tri thức (những mẫu, những xu h−ớng tiềm ẩn và hữu ích) trong cơ sở dữ liệu là rất cần thiết và là một quá trình gồm nhiều giai đoạn, trong đó giai đoạn khai phá dữ liệu là một giai đoạn chính yếu nhất (mục 1.1.1). Trong các cơ sở dữ liệu đồ sộ, các ph−ơng pháp khai phá dữ liệu (điển hình là phân lớp, phân cụm) cho phép phát hiện đ−ợc các mẫu tiềm ẩn và đánh giá giá trị của chúng một cách tự động trong một khoảng thời gian nhanh nhất để hỗ trợ cho ng−ời sử dụng.
Thực hiện khai phá dữ liệu trên các hệ thống với dữ liệu lớn, trên các hệ thống phân tán, việc nghiên cứu và đề xuất các thuật toán khai phá dữ liệu song song trong các mơ hình song song là rất có ý nghĩa. Tùy thuộc vào cơ sở dữ liệu thực tế, việc lựa chọn cách thức song song để song song hóa thuật tốn khai phá dữ liệu tuần tự là rất quan trọng (mục 1.2.2), nó ảnh h−ởng trực tiếp tới giá thành thực hiện việc khai phá dữ liệu. Một số mơ hình chi phí hình thức cho khai phá dữ liệu song song đã đ−ợc tổng kết (mục 1.2.3).