Tài liệu Luận văn Khai phá dữ liệu và thuật toán khai phá luật kết hợp song song: Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên
ĐẠI HỌC THÁI NGUYÊN
KHOA CÔNG NGHỆ THÔNG TIN
-----------------------------
LÊ THỊ VIỆT HOA
KHAI PHÁ DỮ LIỆU VÀ THUẬT TOÁN KHAI PHÁ
LUẬT KẾT HỢP SONG SONG
Chuyên ngành: KHOA HỌC MÁY TÍNH
Mã số : 60.48.01
LUẬN VĂN THẠC SĨ CÔNG NGHỆ THÔNG TIN
Hướng dẫn khoa học: PGS.TS ĐOÀN VĂN BAN
THÁI NGUYÊN 2008
Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên
LỜI CẢM ƠN
Xin chân thành cảm ơn Thầy giáo PGS.TS Đoàn Văn Ban đã tận tình
chỉ dạy và hướng dẫn tôi trong suốt thời gian học tập và làm luận văn.
Tôi cũng xin xin lời biết ơn chân thành đến quý Thầy giáo, cô giáo Viện
Công nghệ Thông đã tận tình giảng dạy, trang bị cho tôi những kiến thức quý
báu trong suốt quá trình học tập tại Khoa.
Xin cảm ơn tất cả các anh chị em học viên Cao học khóa 5, cám ơn cán
bộ công chức, giảng viên – Khoa Công nghệ Thông tin - Đại học Thái Nguyên
đã tạo điều kiện giúp đỡ tôi trong suốt quá trình học tập và làm luận...
86 trang |
Chia sẻ: haohao | Lượt xem: 1200 | Lượt tải: 1
Bạn đang xem trước 20 trang mẫu tài liệu Luận văn Khai phá dữ liệu và thuật toán khai phá luật kết hợp song song, để tải tài liệu gốc về máy bạn click vào nút DOWNLOAD ở trên
Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên
ĐẠI HỌC THÁI NGUYÊN
KHOA CÔNG NGHỆ THÔNG TIN
-----------------------------
LÊ THỊ VIỆT HOA
KHAI PHÁ DỮ LIỆU VÀ THUẬT TOÁN KHAI PHÁ
LUẬT KẾT HỢP SONG SONG
Chuyên ngành: KHOA HỌC MÁY TÍNH
Mã số : 60.48.01
LUẬN VĂN THẠC SĨ CÔNG NGHỆ THÔNG TIN
Hướng dẫn khoa học: PGS.TS ĐOÀN VĂN BAN
THÁI NGUYÊN 2008
Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên
LỜI CẢM ƠN
Xin chân thành cảm ơn Thầy giáo PGS.TS Đoàn Văn Ban đã tận tình
chỉ dạy và hướng dẫn tôi trong suốt thời gian học tập và làm luận văn.
Tôi cũng xin xin lời biết ơn chân thành đến quý Thầy giáo, cô giáo Viện
Công nghệ Thông đã tận tình giảng dạy, trang bị cho tôi những kiến thức quý
báu trong suốt quá trình học tập tại Khoa.
Xin cảm ơn tất cả các anh chị em học viên Cao học khóa 5, cám ơn cán
bộ công chức, giảng viên – Khoa Công nghệ Thông tin - Đại học Thái Nguyên
đã tạo điều kiện giúp đỡ tôi trong suốt quá trình học tập và làm luận văn.
Cuối cùng xin cảm ơn gia đình, bạn bè, đồng nghiệp đã giúp đỡ tôi
trong suốt thời gian học tập và hoàn thành luận văn này.
Thái Nguyên, tháng 9 năm 2008
Tác giả
Lê Thị Việt Hoa
Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên
LỜI CAM ĐOAN
Tôi xin cam đoan đề tài khoa học “Khai phá dữ liệu và thuật toán khai
phá luật kết hợp song song” này là công trình nghiên cứu của bản thân tôi.
Các số liệu và kết quả nghiên cứu nêu trong luận văn này là trung thực, được
các tác giả cho phép sử dụng và các tài liệu tham khảo như đã trình bày trong
luận văn. Tôi xin chịu trách nhiệm về luận văn của mình.
Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên
MỤC LỤC
Trang phụ bìa Trang
Lời cám ơn
Lời cam đoan
Mục lục
Danh mục các kí hiệu, các chữ viết tắt
Danh mục các hình vẽ
Mở đầu 1
Chương 1: TỔNG QUAN VỀ KHAI PHÁ DỮ LIỆU 3
1.1. Khái niệm 3
1.2. Kiến trúc của một hệ thống khai phá dữ liệu 3
1.3. Các giai đoạn của quá trình khai phá dữ liệu 4
1.4. Một số kỹ thuật khai phá dữ liệu 6
1.5. Các cơ sở dữ liệu phục vụ cho khai phá dữ liệu 10
1.6. Các phương pháp chính trong khai phá dữ liệu 11
1.7. Các ứng dụng của khai phá dữ liệu 13
1.8. Khai phá dữ liệu và các lĩnh vực liên quan 14
1.9. Các thách thức trong phát hiện tri thức và khai phá dữ liệu 15
1.10. Kết luận chương 1 16
Chương 2: KHAI PHÁ LUẬT KẾT HỢP TRONG CƠ SỞ DỮ LIỆU 17
2.1. Mở đầu 17
2.2 Luật kết hợp 18
2.2.1 Các khái niệm cơ bản 18
2.2.2. Khai phá luật kết hợp 21
2.2.3. Cách tiếp cận khai phá luật kết hợp 22
2.3 Luật kết hợp cơ sở 24
2.3.1 Phát hiện các tập mục phổ biến 24
2.3.2 Sinh luật kết hợp 30
Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên
2.4. Khai phá luật kết hợp với một số khái niệm mở rộng 32
2.4.1. Giới thiệu 32
2.4.2. Khai phá luật kết hợp trọng số 32
2.4.3 Khai phá luật kết hợp tổng quát 43
2.5. Kết luận chương 2 49
Chương 3: MỘT SỐ PHƯƠNG PHÁP KHAI PHÁ LUẬT KẾT HỢP
SONG SONG VÀ PHÂN TÍCH ĐÁNH GIÁ CÁC THUẬT TOÁN 50
3.1. Nguyên lý thiết kế thuật toán song song 50
3.2. Hư ớng tiếp cận chính trong thiết kế thuật toán khai phá luật kết hợp song song 51
3.2.1. Mô hình song song dữ liệu 51
3.2.2. Mô hình song song thao tác 51
3.3. Một số thuật toán khai phá luật kết hợp song song 52
3.3.1 Thuật toán Count Distribution (CD) 52
3.3.2. Thuật toán Data Distribution (DD) 54
3.3.3. Thuật toán Candidate Distribution 58
3.3.4. Thuật toán song song Fp-Growth 60
3.3.5 Thuật toán song song Eclat 65
3.4. Phân tích, đánh giá và so sánh việc thực hiện thuật toán 71
3.4.1. Phân tích và đánh giá thuật toán song song 71
3.4.2. So sánh việc thực hiện các thuật toán 73
3.5. Kết luận chương 3 74
Kết luận 75
Tài liệu tham khảo 77
Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên
DANH MỤC CÁC KÝ HIỆU VIẾT TẮT
Ký hiệu Diễn giải
Ck Tập các k-itemset ứng viên
kC Tập các k-itemset ứng viên mà TID của giao dịch sinh ra
liên kết với tập mục ứng viên
Conf Độ tin cậy (Confidence)
CFPT FP-Tree điều kiện cơ sở (Fisst conditional FP-Tree)
D Cơ sở dữ liệu giao dịch
Di Phần thứ i của cơ sở dữ liệu D
Item Mục
Itemset Tập mục
I Tập các mục
KDD Phát hiện tri thức trong cơ sở dữ liệu (Knowledge Discovery
in Database)
CSDL Cơ sở dữ liệu (Database)
k-itemset Tập mục gồm k mục
Lk Tập các k-itemset phổ biến
MPI Truyền thông điệp
minconf Ngưỡng tin cậy tối thiểu
minsup Ngưỡng hỗ trợ tối thiểu
OLAP Phân tích trực tuyến
OLTP Xử lý giao dịch trực tuyến
SC Số đếm hỗ trợ (support count)
sup Độ hỗ trợ (support)
T Giao dịch (transaction)
Tid Định danh của giao dịch
Tid-List Danh sách các định danh của giao dịch
X ⇒Y Luật kết hợp (với X là tiền đề, Y là hệ quả)
Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên
DANH MỤC HÌNH VẼ VÀ BẢNG
Trang
Hình 1.1. Khám phá tri thức trong cơ sở dữ liệu điển hình 3
Hình 1.2. Các bước của quy trình khai phá dữ liệu 5
Hình 1.3: Cây quyết định 7
Hình 1.4: Mẫu kết quả của nhiệm vụ phân cụm dữ liệu 8
Hình 1.5: Mẫu kết quả của nhiệm vụ hồi quy 8
Hình 1.6: Một số lĩnh vực liên quan đến khai phá dữ liệu 14
Hình 2.1. Sơ đồ tổng quan của thuật toán khai phá tập mục phổ biến 24
Hình 2.2: Ví dụ thuật toán Apriori 28
Bảng 2.1.a. Thông tin của một cửa hàng bán lẻ 33
Bảng 2.1.b. Tập giao dịch D của cửa hàng 33
Hình 3.1. Mô hình song song dữ liệu 51
Hình 3.2. Mô hình song song thao tác 52
Hình 3.3. Sơ đồ thuật toán Count Distribution 52
Hình 3.4. Phát hi ện các tập mục phổ biến bởi thuật toán song song CD 54
Hình 3.5. Sơ đồ mô tả thuật toán Data Distribution 55
Hình 3.6: Sơ đồ luồng thuật toán Data Distribution 56
Hình 3.7: Phát hi ện các tập mục phổ biến bởi thuật toán song song DD 57
Hình 3.8: Các phân hoạch CSDL và các FP-Tree cục bộ ban đầu 61
Bảng 3.1: Các mẫu điều kiện cơ sở và các FP-Tree điều kiện cơ sở 62
Hình 3.9: Quá trình sinh tập phổ biến bởi 2 bộ xử lý P1 và P2 63
Hình 3.10: Quá trình chuyển đổi CSDL theo chiều dọc 70
Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên
1
MỞ ĐẦU
Với sự bùng nổ và phát triển của công nghệ thông tin đã mang lại nhiều
hiệu quả đối với khoa học cũng như các hoạt động thực tế, trong đó khai phá dữ
liệu là một lĩnh vực mang lại hiệu quả thiết thực cho con người. Khai phá dữ
liệu đã giúp người sử dụng thu được những tri thức hữu ích từ những cơ sở dữ
liệu hoặc các kho dữ liệu khổng lồ khác.
Cơ sở dữ liệu trong các đơn vị, tổ chức kinh doanh, quản lý khoa học
chứa đựng nhiều thông tin tiềm ẩn, phong phú và đa dạng, đòi hỏi phải có
những phương pháp nhanh, phù hợp, chính xác, hiệu quả để lấy được những
thông tin bổ ích. Những “ tri thức” chiết suất từ nguồn cơ sở dữ liệu trên sẽ là
nguồn thông tin hỗ trợ cho lãnh đạo trong việc lên kế hoạch hoạt động hoặc
trong việc ra quyết định sản xuất kinh doanh. T iến hành công việc như vậy
chính là thực hiện quá trình phát hiện tri thức trong cơ sở dữ liệu (Knowledge
Discovery in Database) mà trong đó kỹ thuật khai phá dữ liệu (Data Mining)
cho phép phát hiện những tri thức tiềm ẩn. Để lấy được thông tin mang tính tri
thức trong khối dữ liệu khổng lồ, cần thiết phải phát triển các kỹ thuật có khả
năng tích hợp các dữ liệu từ các hệ thống giao dịch khác nhau, chuyển chúng
thành một tập hợp các cơ sở dữ liệu ổn định có chất lượng. Các kỹ thuật như vậy
được gọi là kỹ thuật tạo kho dữ liệu và môi trường các dữ liệu nhận được khi áp
dụng các kỹ thuật tạo kho dữ liệu nói trên được gọi là kho dữ liệu (Data
Warehouse) [19, 24].
Một trong các nội dung cơ bản nhất trong khai phá dữ liệu và rất phổ biến
là phát hiện các luật kế t hợp. Phương pháp này nhằm tìm ra các tập thuộc tính
thường xuất hiện đồng thời trong cơ sở dữ liệu và rút ra các luật về ảnh hưởng
của một tập thuộc tính dẫn đến sự xuất hiện của một (hoặc một tập) thuộc tính
khác như thế nào. Bên cạnh đó, nhu cầu song song hóa và xử lý phân tán là rất
cần thiết hiện nay bởi kích thước lưu trữ dữ liệu ngày càng nhiều nên đòi hỏi tốc
độ xử lý cũng như dung lượng bộ nhớ hệ thống phải đảm bảo. Vì thế, yêu cầu
cần có những thuật toán song song hiệu quả cho việc phát hiện luật kết hợp.
Ứng dụng khai phá dữ liệu đã mang lại những lợi ích to lớn trong việc
tổng hợp và cung cấp những thông tin trong các nguồn cơ sở dữ liệu lớn. Hơn
nữa hiện nay nhu cầu song song hóa và xử lý phân tán là rất cần thiết bởi kích
Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên
2
thước dữ liệu lưu trữ ngày càng lớn nên đòi hỏi tốc độ xử lý cũng như dung
lượng bộ nhớ hệ thống phải đảm bảo Vì thế, yêu cầu cần có những thuật toán
song song hiệu quả cho luật kết hợp.
Phương pháp nghiên cứu của luận văn là tổng hợp các kết quả dự a trên
các bài báo khoa học trong một số hội thảo quốc tế và các bài báo chuyên
ngành, từ đó trình bày các vấn đề khai phá dữ liệu và xây dựng một số thuật
toán khai phá luật kết hợp song song.
Nội dung luận văn được trình bày trong 3 chương và phần kết luận
Chương 1: Tổng quan về khai phá dữ liệu: Giới thiệu tổng quan về quá
trình khai phá dữ liệu, kho dữ liệu và khai phá dữ liệu; kiến trúc của một hệ
thống khai phá dữ liệu; Nhiệm vụ chính và các phương pháp khai phá dữ liệu.
Chương 2: Khai phá luật kết hợp song song: Chương này trì nh bày tổng
quan về luật kết hợp; phát biểu bài toán khai phá dữ liệu, phát hiện luật kết hợp;
các khái niệm cơ bản luật kết hợp và các phương pháp khai phá luật kết hợp;
khai phá luật kết hợp với một số khái niệm mở rộng.
Chương 3: Một số phương pháp khai phá luật kết hợp song song và phân
tích đánh giá các thuật toán song song .
Thái Nguyên 01 tháng 10 năm 2008
Tác giả
Lê Thị Việt Hoa
Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên
3
Chương 1
TỔNG QUAN VỀ KHAI PHÁ DỮ LIỆU
1.1. Khái niệm
Khai phá dữ liệu là một khái niệm ra đời vào những năm cuối của thập kỷ
80, nó là quá trình tìm kiếm, khám phá d ưới nhiều góc độ khác nhau nhằm phát
hiện các mối liên hệ, quan hệ giữa các dữ liệu, đối tượng bên trong CSDL, kết
quả của việc khai phá là xác định các mẫu hay các mô hình tồn tại bên trong
nhưng chúng nằm ẩn ở các CSDL [3]. Về bản chất nó là giai đoạn duy nhất rút
trích và tìm ra được các mẫu, các mô hình hay thông tin mới, tri thức tiềm ẩn có
trong CSDL chủ yếu phục vụ cho mô tả và dự đoán. Đây là giai đoạn quan trọng
nhất trong quá trình phát hiện tri thức từ CSDL, các tri thức này hỗ trợ trong việc
ra quyết định, điều hành trong khoa học và kinh doanh.
Khai phá dữ liệu là tiến trình khám phá tri thức tiềm ẩn trong các CSDL,
cụ thể hơn, đó là tiến trình lọc, sản sinh những tri thức hoặc các mẫu tiềm ẩn,
chưa biết những thông tin hữu ích từ các CSDL lớn.
1.2. Kiến trúc của một hệ thống khai phá dữ liệu
Khai phá d ữ liệu là quá trình rút trích thông tin bổ ích từ những kho dữ liệu lớn.
Khai phá d ữ liệu là quá trình chính trong khai phá tri th ức từ cơ sở dữ liệu.
Kiến trúc của một hệ thống khai phá dữ liệu có các thành [2] phần như sau:
Hình 1.1. Khám phá tri thức trong cơ sở dữ liệu điển hình
Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên
4
• CSDL, kho dữ liệu hoặc lưu trữ thông tin khác: Đây là một hay các tập
CSDL, các khi dữ liệu, các trang tính hay các dạng khác của thông tin được lưu trữ.
Các kỹ thuật làm sách dữ liệu và tích hợp dữ liệu có thể được thực hiện.
• Máy chủ CSDL (Database or Warehouse Server): Máy chủ có trách
nhiệm lấy những dữ liệu thích hợp dựa trên những yêu cầu khám phá của người
dùng.
• Cơ sở tri thức (Knowledge-base): Đây là miền tri thức dùng để tìm kiếm
hay đánh giá độ quan trọng của các mẫu kết quả thu được. Tri thức này có thể
bao gồm một sự phân cấp khái niệm dùng để tổ chức các thuộc tính hay các giá
trị thuộc tính ở các mức trừu tượng khác nhau.
• Máy khai phá dữ liệu (Data mining engine): là một hệ thống khai phá
dữ liệu cần phải có một tập các Modul chức năng để thực hiện công việc, chẳng
hạn như kết hợp, phân lớp, phân cụm.
• Modul đánh giá mẫu ( Pattern evaluation): Bộ phận tương tác với các
Modul khai phá dữ liệu để tập trung vào việc duyệt tìm các mẫu đáng được quan
tâm. Nó có thể dùng các ngưỡng về độ quan tâm để lọc mẫu đã khám phá được.
Cũng có thể Modul đánh giá mẫu được tích hợp vào Modul khai phá dữ liệu,
tùy theo cách cài đặt của phương pháp khai phá dữ liệu được dùng.
• Giao diện đồ họa cho người dùng (Graphical user interface) Bộ phận
này cho phép người dùng giao tiếp với hệ thống khai phá dữ liệu. Thông qua
giao diện này người dùng tương tác với hệ thống bằng cách đặc tả một yêu cầu
khai phá hay một nhiệm vụ, c ung cấp thông tin trợ giúp cho việc tìm kiếm và
thực hiện khai phá thăm dò trên các kết quả khai phá trung gian. Ngoài ra bộ
phận này còn cho phép người dùng xem các lược đồ CSDL, lược đồ kho dữ liệu,
các đánh giá mẫu và hiển thị các mẫu trong các khuôn dạng khác nhau.
1.3. Các giai đoạn của quá trình khai phá dữ liệu
Các thuật toán khai phá dữ liệu thường được mô tả như những chương
trình hoạt động trực tiếp trên tệp dữ liệu. Với các phương pháp học máy và
thống kê trước đây, bước đầu tiên là thuật toán thường nạp toàn bộ tệp (file) dữ
liệu vào trong bộ nhớ. Khi chuyển sang các ứng dụng công nghiệp liên quan đến
việc khai phá các kho dữ liệu lớn, mô hình này không thể đáp ứng được. Không
Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên
5
chỉ bởi nó không thể nạp hết dữ liệu vào trong bộ nhớ mà còn khó có thể chiết
xuất dữ liệu ra các tệp đơn giản để phân tích.
Hình 1.2. Các bước của quy trình khai phá dữ liệu
Quá trình xử lý khai phá dữ liệu bắt đầu bằng việc xác định chính xác vấn
đề cần giải quyết. Sau đó sẽ xác định dữ liệu liên quan dùng để xây dựng giải
pháp. Tiếp theo là thu thập dữ liệu có liên quan và xử lý chúng thành dạng sao
cho thuật toán khai phá dữ liệu có thể hiểu được.
Quá trình khai phá dữ liệu [2] trải qua ba bước:
Bước một: Lọc dữ liệu được thực hiện trong quá trình tiền xử lý. Công
việc đầu tiên là tích hợp và chỉnh sửa dữ liệu. Khi dữ liệu được thu thập từ nhiều
nguồn khác nhau nên có thể có những sự sai sót, dư thừa và trùng lặp. Lọc dữ
liệu là cắt bỏ những dư thừa để dữ liệu được định dạng thống nhất. Dữ liệu sau
khi lọc và chỉnh sửa sẽ nhỏ hơn, xử lý nhanh chóng hơn.
Ví dụ, trong bài toán tìm quy luật mua hàng của khách hàng trong một
siêu thị, ta tìm xem khách hàng thường cùng mua những mặt hàng nào để sắp
xếp những món hàng đó gần nhau. Từ dữ liệu nguồn do siêu thị cung cấp, có thể
có nhiều thuộc tính không cần thiết cho khai phá dữ liệu như: Mã khách hàng,
nhà cung cấp, đơn giá hàng, người bán hàng… Các dữ liệu này cần cho quản lý
bán hàng nhưng không cần cho khai phá dữ liệu, ta loại bỏ các thuộc tính này
khỏi dữ liệu trước khi khai phá dữ liệu.
Bước hai: Khai phá dữ liệu, là công việc chính, sử dụng các thuật toán
khác nhau để khai phá các kiến thức tiềm ẩn trong dữ liệu.
Xác
định
nhiệm
vụ
Xác
định dữ
liệu liên
quan
Thu thập
và tiền
xử lý dữ
liệu
Giải thuật
khai phá
dữ liệu
DL trực
tiếp
Thống kê tóm tắt
Mẫu
Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên
6
Bước ba: Sau xử lý, là quá trình ước lượng kết quả khai phá theo yêu cầu
của người dùng. Nhiều kỹ thuật khai phá dữ liệu được ứng dụng cho một nguồn dữ
liệu, các kỹ thuật cho các kết quả có thể khác nhau. Các kết quả được ước lượng
bởi những quy tắc nào đó, nếu cuối cùng kết quả không thỏa mãn yêu cầu, chúng ta
phải làm lại với kỹ thuật khác cho đến khi có kết quả mong muốn.
1.4. Một số kỹ thuật khai phá dữ liệu
Mục đích của khai phá dữ liệu là chiết xuất ra các tri thức có lợi cho kinh
doanh hay cho nghiên cứu khoa học… Do đó, ta có thể xem mục đích của khai
phá dữ liệu sẽ là mô tả các sự kiện và dự đoán. Các mẫu khai phá dữ liệu phát
hiện được nhằm vào mục đích này. Dự đoán liên quan đến việc sử dụng các biến
hoặc các đối tượng (bản ghi) trong CSDL để chiết xuất ra các mẫu, dự đoán
được những giá trị chưa biết hoặc những giá trị tương lai của các biến đáng quan
tâm. Mô tả tập trung vào việc tìm kiếm các mẫu mô tả dữ liệu mà con người có
thể hiểu được.
Để đạt được những mục đích này, nhiệm vụ chính của khai phá dữ liệu
bao gồm như sau:
Phân lớp dữ liệu [24]
Khái niệm phân lớp dữ liệu được Han và Kamber đưa ra năm 2000. Phân
lớp dữ liệu là xây dựng một mô hình mà có thể phân các đối tượng thành những
lớp để dự đoán giá trị bị mất tại một số thuộc tính của dữ liệu hay tiên đoán giá
trị của dữ liệu sẽ xuất hiện trong tương lai.
Quá trình phân lớp dữ li ệu được thực hiện qua hai bước. Bước thứ nhất:
Dựa vào tập hợp dữ liệu huấn luyện, xây dựng một mô hình mô tả những đặc
trưng của những lớp dữ liệu hoặc những khái niệm, đây là quá trình học có giám
sát, học theo mẫu được cung cấp trước. Bước thứ hai: Từ những lớp dữ liệu
hoặc những khái niệm đã được xác định trước, dự đoán giá trị của những đối
tượng quan tâm.
Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên
7
Một kỹ thuật phân lớp dữ liệu được Han và Kamber đưa ra là cây quyết định.
Mỗi nút của cây đại diện một quyết định dựa vào giá trị thuộc tính tương ứng. Kỹ
thuật này đã được nhiều tác giả nghiên cứu và đưa ra nhiều thuật toán.
Một ví dụ tiêu biểu về cây quyết định:
Hình 1.3: Cây quyết định
Trong hình 1.3 là một cây quyết định cho lớp mua laptop, chỉ ra một
khách hàng sẽ mua hay không mua một laptop. Mỗi nút lá đại diện một lớp mà
đánh giá mua laptop là Yes hay No. Sau khi mô hình này được xây dựng, chúng
ta có thể dự đoán việc có thể mua một laptop hay không dựa vào những thuộc
tính khách hàng mới là tuổi và nghề nghiệp. Cây quyết định có thể ứng dụng
rộng rãi trong nhiều hoạt động của đời sống thực.
Phân nhóm dữ liệu [13, 24]
Phân nhóm là kỹ thuật khai phá dữ liệu tương tự như phân lớp dữ liệu.
Tuy nhiên, sự phân nhóm dữ liệu là quá trình học không được giám sát, là quá
trình nhóm nhữn g đối tượng vào trong những lớp tương đương, đến những đối
tượng trong một nhóm là tương đương nhau, chúng phải khác với những đối
tượng trong những nhóm khác. Trong phân lớp dữ liệu, một bản ghi thuộc về
lớp nào là phải xác định trước, trong khi phân nhóm không xác định trước.
Trong phân nhóm, những đối tượng được nhóm lại cùng nhau dựa vào sự giống
nhau của chúng. Sự giống nhau giữa những đối tượng được xác định bởi những
chức năng giống nhau. Thông thường những sự giống nhau về định lượng như
khoảng cách hoặc độ đo khác được xác định bởi những chuyên gia trong lĩnh
vực của mình.
Tuổi
30-35 >35
Yes Sinh viên Giáo sư
Yes No Yes
No
TID
Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên
8
Hình 1.4: Mẫu kết quả của nhiệm vụ phân cụm dữ liệu
Đa số các ứng dụng phân nhóm được sử dụng trong sự phân chia thị
trường. Với sự phân nhóm khách hàng vào trong từng nhóm, những doanh nghiệp
có thể cung cấp những dịch vụ khác nhau tới nhóm khách hàng một cách thuận
lợi. Ví dụ, dựa vào chi tiêu, số tiền trong tài khoản và việc rút tiền của khách
hàng, một ngân hàng có thể xếp những khách hàng vào những nhóm khác nhau.
Với mỗi nhóm, ngân hàng có thể cho vay những khoản tiền tương ứng cho việc
mua nhà, mua xe, … Trong trường hợp này ngân hàng có thể cung cấp những
dịch vụ tốt hơn, và cũng chắc chắn rằng tất cả các khoản tiền cho vay đều có thể
thu hồi được. Ta có thể tham khảo một khảo sát toàn diện về kỹ thuật và thuật
toán phân nhóm trong.
Hồi qui (Regression): Là việc học một hàm ánh xạ từ một tập dữ liệu thành một
biến dự đoán có giá trị thực. Nhiệm vụ hồi qui tương tự như phân lớp, điểm
khác nhau chính là ở chỗ thuộc t ính để dự báo là liên tục chứ không rời rạc [13,
23]. Việc dự báo các giá trị số thường được làm bởi các phương pháp thống kê
cổ điểm chẳng hạn như hồi qui tuyến tính. Tuy nhiên, phương pháp mô hình hóa
cũng được sử dụng [13, 24].
+
+
+
+ +
+
+
+
+ +
+ + +
+ + +
+
+ +
+
+
+
nhóm 1
+ +
nhóm 2
nhóm 3
Nợ
Thu nhập
+
+
+
đường hồi quy
tuyến tính
Nợ
Thu nhập
+
+ +
+
+
+
0
0 0
0
0
0
0
0
0
0
0 0
0 0
Hình 1.5: Mẫu kết quả của nhiệm vụ hồi quy
Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên
9
Ứng dụng của hồi quy là rất nhiều, ví dụ: dự đoán số lượng sinh vật phát
quang hiện thời trong khi rừng bằng cách dò tìm vi sóng bằng thiết bị cảm biến
từ xa; dự đoán khả năng tử vong của bệnh nhân khi biết các kết quả xét nghiệm
chuẩn đoán; dự đoán nhu cầu tiêu thụ một sản phẩm mới bằng một hàm chi tiêu
quảng cáo… hình 1.5 chỉ ra mẫu kết quả hồi quy tuyến tính đơn giản, ở đây tổng
số nợ được điều chỉnh cho phù hợp giống như một hàm thu nhập tuyến tính.
Việc điều chỉnh này là không đáng kết bởi vì chỉ tồn tại một tương quan yếu
giữa hai biến.
Tổng hợp (summarization): Là công việc liên quan đến các phương pháp tìm
kiếm một mô tả cô đọng cho tập con dữ liệu [23, 24]. Các kỹ thuật tổng hợp
thường được áp dụng trong việc phân tích dữ liệu có tính thăm dò và báo cáo tự
động.
Mô hình hóa phụ thuộc (dependency modeling): Là việc tìm kiếm mô hình mô
tả các phụ thuộc quan trọng giữa các biến. Mô hình phụ thuộc tồn tại ở hai mức:
Mức cấu trúc của mô hình (thường dưới dạng đồ thị) xác định các biến phụ
thuộc cục bộ vào các biến khác; Mức định lượng của mô hình xác định mức
độ phụ thuộc của các biến [13, 24]. Những phụ thuộc này thường được biểu thị
dưới dạng luật.
Quan hệ phụ thuộc cũng có thể biểu diễn dưới dạng mạng tin cậy [24].
Đó là đồ thị có hướng không có dạng chu trình, các nút biểu diễn thuộc tính và
trọng số chỉ liên kết phụ thuộc giữa các nút đó.
Phát hiện sự thay đổi và độ lệch (change and deviation dectection): Nhiệm vụ
này tập trung vào khám phá những thay đổi có ý nghĩa trong dữ liệu dựa vào các
giá trị chuẩn hay độ đo đã biết trước, phát hiện độ lệch đáng kể giữa nội dung
của tập con dữ liệu và nội dung mong đợi. Hai mô hình độ lệch thường dùng là
lệch theo thời gian và lệch theo nhóm. Độ lệch theo thời gian là sự thay đổi có
nghĩa của dữ liệu theo thời gian. Độ lệch theo nhóm là sự khác nhau giữa dữ
liệu trong hai tập con dữ liệu, tính cả trường hợp tập con của đối tượng này
thuộc tập con kia, nghĩa là xác định dữ liệu trong một nhóm con của đối tượng
có khác nhau đáng kể so với toàn bộ đối tượng [13, 24].
Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên
10
1.5. Các cơ sở dữ liệu phục vụ cho khai phá dữ liệu
Dựa vào những kiểu dữ liệu mà kỹ thuật khai phá áp dụng, có thể chia dữ
liệu thành các loại khác nhau.
Cơ sở dữ liệu quan hệ
Đến nay, hầu hết dữ liệu được lưu giữ dưới dạng cơ sở dữ liệu quan hệ.
Cơ sở dữ liệu quan hệ là một nguồn tài nguyên lớn nhất chứa những đối tượng
mà chúng ta cần khai phá. Cơ sở dữ liệu quan hệ có cấu trúc cao, dữ liệu được
mô tả bởi một tập những thuộc tính và lưu trong những bảng. Khai phá dữ liệu
trên cơ sở dữ liệu quan hệ chủ yếu tập trung khai phá mẫu. Ví dụ, trong cơ sở dữ
liệu của một ngân hàng, ta có thể tìm được những khách hàng có mức chi tiêu
cao, ta có thể phân loại những khách hàng này dựa vào quá trình chi tiêu của họ.
Cũng với việc phân tích những mục chi tiêu của khách hàng, chúng ta có thể
cung cấp một số thông tin của khách hàng đến những doanh nghiệp khác. Giả sử
rằng một khách hàng chi mỗi tháng 500 đô la cho thời trang, nếu được phép,
ngân hàng có thể cung cấp thông tin về khách hàng này cho những cửa hàng
thời trang.
Cơ sở dữ liệu giao tác
Cơ sở dữ liệu giao tác là tập hợp những bản ghi giao dịch, trong đa số các
trường hợp chúng là những bản ghi các dữ liệu hoạt động của doanh nghiệp, tổ
chức. Với tính phổ biến của máy tính và thương mại điện tử, ngày nay có rất
nhiều cơ sở dữ liệu giao tác. Khai phá dữ liệu trên cơ sở dữ liệu giao tác tập
trung vào khai phá luật kết hợp, tìm mối tương quan giữa những mục dữ liệu
của bản ghi giao dịch. Nghiên cứu sâu về cơ sở dữ liệu giao tác được mô tả chi
tiết ở phần sau.
Cơ sở dữ liệu không gian
Cơ sở dữ liệu không gian bao gồm hai phần: Phần thứ nhất là dữ liệu
quan hệ hay giao tác, phần thứ hai là thông tin định vị hoặc thông tin địa lý.
Những luật kết hợp trên cơ sở dữ liệu không gian mô tả mối quan hệ giữa các
đặc trưng trong cơ sở dữ liệu không gian. Dạng của luật kết hợp không gian có
dạng X ⇒ Y, với X, Y là tập hợp những vị từ không gian. Những thuật toán
Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên
11
khai phá luật kết hợp không gian tương tự như khai phá luật kết hợp nhưng thêm
những vị từ về không gian.
Cơ sở dữ liệu có yếu tố thời gian
Giống như cơ sở dữ liệu không gian, cơ sở dữ liệu có yếu tố thời gian bao
gồm hai phần: Phần thứ nhất là dữ liệu quan hệ hay giao tác, phần thứ hai là
thông tin về thời gian xuất hiện dữ liệu ở phần thứ nhất. Những luật kết hợp có
yếu tố thời gian có nhiều thông tin hơn những luật kết hợp cơ bản. Ví dụ, từ luật
kết hợp cơ bản {Bia} ⇒ {Thuốc lá}, với dữ liệu có yếu tố thời gian chúng ta có
thể có nhiều luật: Độ hỗ trợ của luật {Bia} ⇒ {Thuốc lá} là 20% từ 9 giờ đến
13 giờ, là 50% trong thời gian 19 giờ tới 22 giờ. Rõ ràng rằng, những người bán
lẻ có thể xác định chiến lược để buôn bán tốt hơn.
Hầu hết nghiên cứu về lĩnh vực này ngày nay hình thành một hướng khai
phá dữ liệu mới gọi là khai phá mẫu lặp liên tục, khai phá tập mục dữ liệu
thường xuyên trong cơ sở dữ liệu thời gian.
Cơ sở dữ liệu đa phương tiện
Số lượng trang web đang bùng nổ trên thế giới, web có mặt ở khắp mọi nơi,
duyệt web đã là nhu cầu của mọi tầng lớp trong xã hội. Thông tin trên web đang phát
triển với tốc độ rất cao, khai phá thông tin trên web (web mining) đ ã trở thành một lĩnh
vực nghiên cứu chính của khai phá dữ liệu, được các nhà nghiên cứu đặc biệt quan tâm.
Khai phá d ữ liệu web thông thường được chia thành ba phạm trù chính: Khai phá cách
dùng web (web usage mining), khai phá c ấu trúc web (web structure mining) và khai
phá nội dung web (web content mining).
Khai phá cách dùng web tập trung vào việc khai phá thông tin của người
truy nhập web. Với những thông tin này người khai phá dữ liệu có thể cung cấp
những thông tin hữu ích cho người dùng và các nhà kinh doanh.
1.6. Các phương pháp chính trong khai phá d ữ liệu
• Phân lớp và dự đoán (Classification & Prediction)
Xếp một đối tượng vào một trong những lớp đa biết. Ví dụ : phân lớp
vùng địa lý theo dữ liệu thời tiết. Đối với hướng tiếp cận này thường áp dụng
một số kỹ thuật như học máy (Machine learning), cây quyết định (Decision
Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên
12
tree), mạng nơron nhân tạo (Neural network). Với hướng này, người ta còn gọi
là học có giám sát hạy học có thầy (Supervised learning).
• Phân cụm và phân đoạn (Clusterring and Segmentation)
Sắp xếp các đối tượng theo từng cụm (số lượng và tên của cụm chưa
được biết trước). Các đối tượng được gom cụm sao cho mức độ tương tự giữa
các đối tượng trong cùng một cụm là lớn nhất và mức độ tương tự giữa các đối
tượng nằm trong các cụm khác nhau là nhỏ nhất. Lớp bài toán phân cụm còn
được gọi là học không giám sát hạy học không thầy.
• Luật kết hợp (Association rules)
Luật kết hợp là dạng luật biểu diễn tri thức ở dạng khá đơn giản. Mục tiêu
của phương pháp này là phát hiện và đưa ra các mối liên hệ giữa các giá trị dữ
liệu trong cơ sở dữ liệu. Mẫu đầu của giải thuật khai phá dữ liệu là tập luật kết
hợp tìm được.
Ví dụ về luật kết hợp: Một cửa hàng bán văn phòng phẩm đăng thông tin
quảng cáo mỗi tuần trên một tờ báo địa phương. Khi một mặt hàng, chẳng hạn
như mực in đã được chỉ định bán giảm giá, người bán hàng xác định các mặt
hàng khác nào sẽ được mua cùng lúc với mực in. Họ thấy rằng giấy A4 và mực
in được khách hàng mua cùng chiếm 30% và kẹp giấy được mua kèm với mực
in là 40%. Dựa vào các mối quan hệ này, người bán hàng bày bán giấy A4 và
kẹp giấy gần với mặt hàng mực in khi bán giảm giá. Họ cũng quyết định không
đưa các mặt hàng này vào danh sách các mặt hàng giảm giá. Các hành động này
nhằm mục đích tăng thêm toàn bộ khối lượng hàng bán ra bởi việc bán các mặt
hàng mua mực in.
Có 2 luật kết hợp được đề cập ở ví dụ trên. Luật thứ nhất là: “30% khách
hàng mua mực in lẫn giấy A4 ”. Luật thứ hai là: “40% khách hàng khi mua mực
in thì cũng mua kẹ p giấy”. Các luậ t kết hợp này thường được sử dụng bởi các
cửa hàng bán lẻ để phân tích các giao dịch của cửa hàng. Đối với người quan lý
kinh doanh, các luậ t kết hợp được phát hiện có thể được dùng trong chiến dịch
Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên
13
quảng cáo, tiếp thị, quản lý hàng tồn kho và dự trữ hàng. Các luật kết hợp cũng
được sử dụng cho các ứng dụng khác như dự đoán lỗi, cho các mạng điện thoại
bằng việc xác định các sự kiện xuất hiện trước đó.
• Khai phá chuỗi theo thời gian (Sequential temporal patterns)
Cũng tương tự như khai phá dữ liệu bằng luật kết hợp nhưng có thêm tính
thứ tự và tính thời gian. Hướng tiếp cận này được ứng dụng nhiều trong lĩnh vực
tài chính và thị trường chứng khoán bởi vì chúng có tính dự báo cao.
• Mô tả khái niệm và tổng hợp hóa (Summarization)
Liên quan đến các phương pháp tìm kiếm một mô tả cho một tập con dữ
liệu. Các kỹ thuật toán tắt thường được áp dụng cho các phân tích dữ liệu tương
tác có tính thăm dò và tạo báo cáo tự động.
1.7. Các ứng dụng của khai phá dữ liệu
Khai phá dữ liệu tuy là một lĩnh vực mới nhưng đã thu hút được sự quan
tâm của rất nhiều nhà nghiên cứu, nhờ có nhiều những ứng dụng trong thực tiễn,
các ứng dụng điển hình, có thể liệt kê như sau:
- Phân tích dữ liệu và hỗ trợ ra quyết định (Analysis & decition support).
- Điều trị trong y học (Medical): mối liên hệ giữa triệu chứng, chuẩn đoán
và phương pháp điều trị (chế độ dinh dưỡng, thuốc men, phẫu thuật).
- Phân lớp văn bản, tóm tắt văn bản và phân lớp các trang Web (Text
mining & Web mining).
- Tin sinh học (Bio-informatics): Tìm kiếm, đối sánh các hệ gen và thông
tin di truyền, mối liên hệ giữa một số hệ gen và một số bệnh di truyền.
- Nhận dạng.
- Tài chính và thị trường chứng khoán (Finance & stock market): Phân
tích tình hình tài chính và dự đoán giá cổ phiếu.
- Bảo hiểm (Insurance).
- Giáo dục (Education).
Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên
14
1.8. Khai phá dữ liệu và các lĩnh vực liên quan
Hình 1.6: Một số lĩnh vực liên quan đến khai phá dữ liệu
Phát hiện tri thức và khai phá dữ liệu được coi là trung tâm của nhiều
ngành khoa học, nó liên quan đến rất nhiều ngành, nhiều lĩnh vực khác nhau
như tài chính, ngân hàng, thương mại, y tế, giáo dục, thống kê, máy móc, trí tuệ
nhân tạo, cơ sở dữ liệu, thuật toán học, tính toán song song, thu nhận tri thức
trong các hệ chuyên gia, quan sát dữ liệu.
Lĩnh vực học máy và nhận dạng mẫu là giống nhau trong khai phá dữ liệu
nghiên cứu các lý thuyết và thuật toán của hệ thống trích ra các mẫu và mô hình
dữ liệu. Khai phá dữ liệu tập trung vào việc mở rộng các lý thuyết và thuật toán
cho các vấn đề về tìm ra các mẫu đặc biệt, đây được coi là những mẫu hữu ích
hoặc tri thức quan trọng tập dữ liệu lớn.
Đặc biệt, phát hiện tri thức và khai phá dữ liệu rất gần gũi với lĩnh vực
thống kê, sử dụng các phương pháp thống kê để mô hình dữ liệu và phát hiện
các mẫu, luật…, kho dữ liệu và các công cụ xử lý trực tuyến (OLAP – online
analytical processing) tập trung vào phân tích dữ liệu đa chiều, tốt hơn SQL
trong tính toán và phân tích thống kê đa chiều cũng liên quan chặt chẽ đến khai
phá dữ liệu.
Đặc trưng của hệ thống khai phá dữ liệu là nhờ vào các phương pháp
thuật toán và kỹ thuật từ những lĩnh vực khác nhau, nhằm mục đích cuối cùng là
trích ra tri thức từ dữ liệu trong CSDL khổng lồ.
Khai phá dữ liệu
Cơ sở dữ liệu
Thương mại
Y tế
Thống kê
Giáo dục Các ngành
khoa học khác
Máy móc, trí
tuệ nhân tạo
Tài chính,
ngân hàng
Thuật toán học
Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên
15
1.9. Các thách thức trong phát hiện tri thức và khai phá dữ liệu
Khai phá dữ liệu ngày càng đóng một vai trò quan trọng trong việc tìm ra
các tri thức thực sự có ích, hiệu quả tiềm ẩn trong các khối dữ liệu thông tin
khổng lồ vẫn hàng ngày đang được thu thập, lưu trữ để giúp các cá nhân và tổ
chức đưa ra được các quyết định chính xác và nhanh chóng. Tuy đã có rất nhiều
các giải pháp và phương pháp được ứng dụng trong khai phá dữ liệu nhưng trên
thực tế quá trình này vẫn gặp không ít khó khăn và thách thức như:
- Cơ sở dữ liệu lớn
- Số chiều các thuộc tính lớn
- Thay đổi dữ liệu và tri thức có thể làm cho các mẫu đã phát hiện
không còn phù hợp
- Dữ liệu bị thiếu hoặc bị nhiễu
- Quan hệ giữa các trường phức tạp
- Giao tiếp với người sử dụng và kết hợp với các tri thức đã có
- Tích hợp với các hệ thống khác
Cơ sở dữ liệu lớn có thể lớn về số lượng các bản ghi, lớn về số lượng các
thuộc tính trong CSDL. Số lượng các bản ghi trong CSDL lớn có khi dung
lượng tới hàng gigabyte, terabyte; số các thuộc tính trong CSDL có thể rất nhiều
và đa dạng. Để giải quyết vấn đề này, người ta thường đưa ra một ngưỡng nào
đó cho CSDL bằng các cách như chiết xuất mẫu, xấp xỉ hoặc xử lý song song.
Trong CSDL khi mà số các thuộc tính là rất lớn , cùng với số lượng lớn
các bản ghi sẽ dẫn đến kích thước độ phức tạp của bài toán tăng lên. Vì vậy,
không gian tìm kiếm, không gian trạng thái gia tăng, n hiều mẫu hay mô hình
thừa, trùng lặp phát sinh nhiều luật thừa, đây được coi là vấn đề nan giải trong
quá trình khai phá dữ liệu. Nhằm giải quyết được những vấn đề trên , phải sử
dụng một số các tri thức đã biết trước để loại bỏ và trích lọc ra những dữ liệu
thích hợp với yêu cầu của bài toán.
Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên
16
Vấn đề dữ liệu bị thay đổi phụ thuộc theo thời gian, có nghĩa là dữ liệu bị
ảnh hưởng và phụ thuộc vào thời điểm quan sát, lấy mẫu, thời điểm khai phá.
Kết quả đạt được sau khai phá cũng gây không ít khó khăn cho khai phá dữ liệu,
như các mẫu được khai phá ở bước trước, có thể không còn giá trị hay vô nghĩa
đối với thời điểm sử dụng, hoặc có thể làm nhiễu hay phát sinh hiệu ứng phụ
làm sai lệch kết quả. Để khắc phục được vấn đề này cần phải chuẩn hóa, cải
tiến, nâng cấp các mẫu, các mô hình và có thể xem các thay đổi này là mục đích
của khai phá và tìm kiếm các mẫu bị thay đổi.
Thuộc tính không phù hợp, các bộ giá trị không đầy đủ, bị thiếu giá trị
trong các miền thuộc tính đã làm ảnh hưởng rất lớn trong khai phá dữ liệu .
Trong quá trình khai phá dữ liệu, khi các hệ thống tương tác với nhau phụ thuộc
nhau mà thiếu vắng một vài giá trị nào đó , sẽ dẫn đến các mẫu không được
chính xác, bị thiếu, không đầy đủ. Để giải quyết cho vấn đề này, người ta coi sự
thiếu vắng của các dữ liệu này là giá trị ẩn, chưa biết và có thể được tiên đoán
bằng một số phương pháp nào đó.
Quan hệ phức tạp giữa các thuộc tính trong CSDL cũng là vấn đề cần
được quan tâm. Những bộ thuộc tính có cấu trúc, phân lớp phức tạp, có mối liên
hệ phức tạp với nhau trong CSDL đòi hỏi khai phá dữ liệu phải có các giải pháp,
các kỹ thuật để có thể áp dụng được, nhận ra được các mối quan hệ này trong
quá trình khai phá dữ liệu.
1.10. Kết luận chương 1
Các tri thức tiềm ẩn trong các CSDL có ý nghĩa rất lớn trong nhiề u lĩnh
vực vì vậy việc phát hiện, rút trích tự động các tri thức ẩn từ các tập hợp dữ liệu
lớn thông qua các mẫu, mô hình dữ liệu càng đóng một vai trò hết sức quan
trọng, đặc biệt là trong bối cảnh hiện nay khi mà sự phát triển nhanh chóng của
các ứng dụng công nghệ thông tin ở nhiều ngành nghề trong đời sống xã hội ,
ngày càng tạo ra nhiều CSDL khổng lồ. Chương này trình bày tóm tắt các
phương pháp khai phá dữ liệu phổ biến, các thành phần chủ yếu của một giải
thuật khai phá dữ liệu và những thành tựu cũng như những thách thức trong khai
phá dữ liệu. Trong các phương pháp khai phá dữ liệu, khai phá các luật kết hợp
là một trong những lĩnh vực đang được quan tâm và nghiên cứu mạnh mẽ.
Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên
17
Chương 2
KHAI PHÁ LUẬT KẾT HỢP TRONG CƠ SỞ DỮ LIỆU
2.1. Mở đầu
Khai phá dữ liệu là quá trình phát hiện ra các thômg tin có giá trị tiềm ẩn
trong CSDL và được xem như là một công đoạn trong quá trình khai thác tri
thức. Chức năng của khai phá dữ liệu bao gồm phân lớp, phân cụm, dự đoán và
phân tích kết hợp. Ứng dụng khai phá kết hợp là một trong những ứng dụng
quan trọng của khai phá dữ liệu. Luật kết hợp được giới thiệu đầu tiên vào năm
1993 [19], được sử dụng để xác định các mối quan hệ giữa các tập thuộc tính
trong CSDL. Việc xác định các quan hệ này không được dựa vào các đặc tính
dữ liệu vốn có của chúng (như các phụ thuộc hàm), mà nên dựa vào sự xuất hiện
cùng lúc của các thuộc tính dữ liệu.
Ví dụ 1.1
Trong một hiệu sách lưu lại các phiếu mua sách, người ta phát hiện ra
rằng: Trong số những người mua quyển "Các khái niệm và kỹ thuật khai phá dữ
liệu" thì có 40% số người đó mua thêm quyển " Hệ quản trị cơ sở dữ liệu", và
25% mua thêm quyển "Kho dữ liệu".
Trong ví dụ trên, tìm được hai luật kết hợp:
- Có 40% số người mua quyển " Các khái niệm và kỹ thuật khai phá dữ
liệu" thì đồng thời mua quyển "Hệ quản trị cơ sở dữ liệu".
- Có 25% số người mua quyển " Các khái niệm và kỹ thuật khai phá dữ
liệu" thì đồng thời mua quyển "Kho dữ liệu".
Với những quy tắc được khám phá trên, ta có thể sắp xếp các quyển sách
có liên quan với nhau ở v ị trí gần nhau để giúp cho người mua sách thuận tiện
hơn. Những quy tắc đó cũng giúp cho nhà sách có chiến lược kinh doanh tốt
hơn.
Luật kết hợp được sử dụng rộng rãi trong nhiều lĩnh vực khác nhau như:
Kinh doanh, sản xuất, giao thông, viễn thông, giáo dục, quản lý thị trường, …
Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên
18
Luật kết hợp cho biết phạm vi mà trong đó, sự xuất hiện của tập các thuộc
tính A nào đó trong các bản ghi của CSDL D sẽ kéo theo sự xuất hiện của tập
các thuộc tính khác B, cũng trong những bản ghi đó, có dạng A ⇒ B. Mỗi luật
kết hợp được đặc trưng bởi một cặp tỷ lệ đó, là độ hỗ trợ và độ tin cậy. Thông
tin mà luậ t kết hợp mang lại là rất to lớn và hỗ trợ đáng kể cho quá trình ra
quyết định trong kinh doanh cũng như trong nghiên cứu khoa học.
2.2 Luật kết hợp
2.2.1 Các khái niệm cơ bản [18, 22]
Đặt: I = {i1,…,in}: tập n mục (Item, còn gọi là thuộc tính) phân biệt.
D: CSDL giao dịch
Mỗi giao dịch (Transaction - còn gọi là bản ghi - record) T ∈ D được
định nghĩa như một tập con các mục trong I (T ⊆ I) và có một định danh duy
nhất có dạng .
Một giao dịch T ∈ D hỗ trợ cho tập mục X, X ⊆ I nếu nó chứa tất cả các
mục của X, nghĩa là X ⊆ T, trong một số trường hợp người ta dùng ký hiệu
T(X) để chỉ tập các giao dịch hỗ trợ cho X. Ký hiệu sup(X) (support(X) hoặc
s(X)) là tỷ lệ phần trăm của các giao dịch hỗ trợ X trên tổng các giao dịch có
trong D, nghĩa là:
sup(X) = Pr(X) =
{ }
||
|
D
TXDT ⊆∈
(2.1)
Ta có 0 ≤ sup(X) ≤ 1 với mọi tập mục X.
Định nghĩa 2.1: Cho một tập X ⊆ I và một ngưỡng hỗ trợ tối thiểu
(minimum support) minisup∈ (0,1] (được xác định bởi người sử dụng). Một tập
mục X được gọi là một tập mục phổ biến (Frequent Itemset hoặc Large Iteset)
với độ hỗ trợ tối thiểu minsup nếu và chỉ nếu sup(X) ≥ minsup.
Một tập mục phổ biến được sử dụng như là một tập đáng quan tâm trong
các thuật toán, ngược lại, những tập mục không phải tập mục phổ biến là những
tập không đáng quan tâm. Trong các trình bày sau này, ta sử dụng những cụm từ
Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên
19
khác như ‘‘X có độ hỗ trợ tối thiểu ’’ , ‘‘X không có độ hỗ trợ tối thiểu ’’ cũng
chỉ để nói lên X thỏa mãn hay không thỏa mãn sup(X) ≥ minsup.
Một tập mục X được gọi là k-itemset nếu lực lượng của X bằng k (tức
làX= k).
Một số tính chất liên quan đến tập mục phổ biến:
Tính chất 2.1: Nếu A ⊆ B, A, B là các tập mục thì sup(A) ≥ sup(B) vì tất
cả các giao dịch của D hỗ trợ B thì cũng hỗ trợ cho A.
Tính chất 2.2: Một tập mục B không có độ hỗ tối thiểu trên D nghĩa là
sup(B) < minsup thì mọi tập cha A của B sẽ không phải là tập mục phổ biến vì
sup(A) ≤ sup(B) < minsup.
Tính chất 2.3: Nếu tập mục B là một tập mục phổ biến trên D, nghĩa là
sup(B) ≥ minsup thì mọi tập con A của B đều là tập phổ biến trên D vì
sup(A) ≥ sup(B) > minsup.
Định nghĩa 2.2: Một luật kết hợp là một quan hệ có dạng X ⇒Y, trong
đó X, Y ⊂ I là tập các mục còn gọi là itemset, và X ∩Y = φ . Ở đây, X được gọi
là tiền đề, Y là hệ quả của luật.
Hai thông số quan trọng của luật kết hợp là độ hỗ trợ và độ tin cậy.
Định nghĩa 2.3: Độ hỗ trợ (support) của luận kết hợp X ⇒ Y là tỷ lệ phần
trăm giữa các giao dịch chứa X ∪ Y và tổng số các giao dịch trong CSDL.
sup(X ⇒ Y) = Pr(X ∪ Y ) =
{ }
||
|
D
TYXDT ⊆∪∈
(2.2)
Bởi vậy, ta nói độ hỗ trợ của luật bằng 5% nghĩa là có 5% tổng số giao
dịch có chứa X ∪ Y. Độ hỗ trợ mang ý nghĩa thống kê của luật kết hợp. Trong
khi, một độ hỗ trợ cao cho luật kết hợp thường được mong muốn nhất, tuy nhiên
điều đó không phải luôn luôn đúng. Ví dụ, nếu ta sử dụng luật kết hợp để dự
đoán thất bại các nút chuyển mạch trong mạng điện thoại dựa vào tập sự kiện
nào đó xuất hiện trước một thất bại, mặc dù hai sự kiện này không thường xuyên
xuất hiện, các luật kết hợp chỉ ra quan hệ này vẫn có tầm quan trọng đáng kể.
Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên
20
Định nghĩa 2.4: Đối với một số giao dịch được đưa ra, độ tin cậy
(confidence) của luật kết hợp X ⇒ Y là tỷ lệ phần trăm giữa số giao dịch có
chứa X ∪ Y và số giao dịch chứa X.
conf (X ⇒ Y) = p (Y ⊆ I X ⊆ I) =
)sup(
)sup(
)(
)(
X
YX
TXp
TXTYp ∪
=
⊆
⊆∧⊆ (2.3)
Vì vậy, nếu ta nói rằng một luật có độ tin cậy conf = 85% có nghĩa là 85%
các giao dịch hỗ trợ cho X thì cũng hỗ trợ cho Y. Độ ti n cậy của luật cho biết
mức độ tương quan trong tập dữ liệu (dataset) giữa hai tập mục X và Y và là
tiêu chuẩn đánh giá độ tin cậy của một luật.
Việc khai thác các luật kết hợp từ cơ sở dữ liệu D chính là việc tìm tất cả các luật
có độ hỗ trợ và độ tin cậy lớn hơn ngưỡng hỗ trợ (độ hỗ trợ tối thiểu) và ngưỡng tin cậy
(độ tin cậy tối thiểu) do ngư ời sử dụng xác định trước. Ngưỡng hỗ trợ và ngưỡng tin cậy
lần lượt được ký hiệu là minsup và mincof. Chú ý r ằng, nếu luật X ⇒ Y thỏa mãn trên D
thì c ả X và Y đều là các t ập mục phổ biến trên D.
Một số tính chất liên quan đến luật kết hợp
Tính chất 2.4: Nếu X ⇒ Z và Y ⇒ Z là thỏa mãn trên D thì không nhất
thiết X ∪ Y ⇒ Z là đúng.
Xét trư ờng hợp X ∩Y = ∅ và các giao d ịch trong D có hỗ trợ cho Z nếu và chỉ
nếu chúng chỉ chứa X hoặc Y, khi đó conf(X ∪ Y ⇒ Z) = 0. Tương t ự, ta cũng có: Nếu
X ⇒ Y và Z ⇒ Z thỏa mãn trên D thì cũng không thể suy ra X ⇒ Y ∪ Z.
Tính chất 2.5: Nếu luật X ∪ Y ⇒ Z thỏa mãn trên D thì không nhất thiết
X ⇒ Z và Y ⇒ Z thỏa mãn trên D.
Chẳng hạn, khi Z có mặt trong giao dịch chỉ khi cả X và Y đều có mặt
trong giao dịch đó, nghĩa là sup(X ∪ Y) =sup(Z). Nếu sup(X) ≥ sup(X ∪ Y) và
sup(Y) ≥ sup(X ∪ Y) thì 2 luật trên sẽ không có độ tin cậy yêu cầu.
Tuy nhiên, nếu X ⇒ Y ∪ Z thỏa mãn trên D thì suy ra được X ⇒ Y và
X ⇒ Z cũng thỏa mãn trên D.
Tính chất 2.6: Nếu X ⇒ Y và Y ⇒ Z thỏa mãn trên D thì không thể
khẳng định X ⇒ Z cũng thỏa mãn trên D.
Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên
21
Giả sử T(X) ⊆ T(Y) ⊆ T(Z) và conf(X ⇒ Y) = conf(Y ⇒ Z) = minconf.
Khi đó, ta có conf(X ⇒ Z) = minconf2 < minconf vì minconf< 1, nghĩa là luật
X ⇒ Z không có độ tin cậy tối thiểu.
Tính chất 2.7: Nếu luật X ⇒ (L - X) không có độ tin cậy tối thiểu thì
không có luật nào trong các luật Y ⇒ (L – Y) có độ tin cậy tối thiểu, trong đó
Y ⊆ X ; X,Y ⊂ L.
Thật vậy, theo tính chất 2.1, vì Y ⊆ X nên sup(Y) ≥ sup(X) và theo định
nghĩa độ tin cậy, ta có:
confidence(Y ⇒ (L – Y)) = conf
Xport
Lport
Yport
Lport min
)(sup
)(sup
)(sup
)(sup
<≤
Nếu luật (L – X) ⇒ X thỏa mãn trên D thì các luật (L – Y) ⇒ Y với
Y ⊆ X và Y ≠ ∅ cũng thỏa mãn trên D.
2.2.2. Khai phá luật kết hợp
Trong mục này sẽ giới thiệu chi tiết bài toán khai phá luật kết hợp (Association
Rule Mining). Nh ững kết quả khác nhau trong khai phá luật kết hợp sẽ được trình bày
chi tiết cùng với những thuật toán và những ví dụ kinh điển.
Bài toán khai phá luật kết hợp trên một cơ sở dữ liệu được chia thành hai
bài toán nhỏ. Bài toán thứ nhất là tìm tất cả các tập mục dữ liệu có độ hỗ trợ
thỏa ngưỡng tối thiểu cho trước, gọi là tập các tập mục dữ liệu thường xuyên.
Bài toán thứ hai là tìm ra những luật kết hợp từ những tập mục dữ liệu thường
xuyên thỏa độ tin cậy tối thiểu cho trước.
Bài toán thứ hai được giải quyết như sau: Giả sử ta có tập các mục dữ liệu
thường xuyên Lk, với { }k21 iiik x,...,x,xL = , những luật kết hợp theo ngưỡng tin
cậy tối thiểu C0 với những mục dữ liệu thường xuyên này được phát sinh ra
bằng cách:
Luật thứ nhất: { } { }k1k21 iiii xx,...,x,x →− , kiểm tra đ ộ tin cậy củ a luật n ày có
thỏa ngưỡng tin cậy tối thiểu cho trước hay không.
Luật thứ hai: { } { }
1kk2k21 iiiii xx,x,...,x,x −− → , kiểm tra độ tin cậy của luật này có
thỏa ngưỡng tin cậy tối thiểu cho trước hay không.
Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên
22
Luật thứ k+1: { } { }
k1k2k21 iiiii x,xx,...,x,x −− → , kiểm tra độ tin cậy của luật này có
thỏa ngưỡng tin cậy tối thiểu cho trước hay không.
Tổng quát: ∀X ⊂ Lk, ta kiểm tra độ tin cậy của luật X → Lk \ X có thỏa
ngưỡng tin cậy tối thiểu cho trước hay không.
Bài toán th ứ hai là đơn giản, hầu hết nghiên cứu về luật kết hợp tập trung ở bài
toán th ứ nhất. Sau đây chúng ta tập trung giải quyết bài toán thứ nhất.
2.2.3. Cách tiếp cận khai phá luật kết hợp
Khai phá luật kết hợp là một lĩnh vực nghiên cứu được nhiều người quan
tâm và có nhiều kết quả đã được công bố. Ở đây chỉ giới thiệu một số cách tiếp
cận kinh điển và cơ bản, làm cơ sở để phát triển các thuật toán mới.
Bài toán thứ nhất có thể chia nhỏ hơn nữa thành hai bài toán: Tìm các tập
mục dữ liệu ứng viên và tìm các tập mục dữ liệu thường xuyên. Tập mục dữ liệu
ứng viên là những tập mục dữ liệu, mà ta phải tính độ hỗ trợ để xem nó có phải
là tập mục dữ liệu thường xuyên hay không. Tập mục dữ liệu thường xuyên là
những tập mục dữ liệu có độ hỗ trợ lớn hơn hay bằng ngưỡng tối thiểu cho
trước. Phát triển thuật toán khai phá luật kết hợp, là làm giảm độ phức tạp tính
toán của thuật toán để cải thiện tốc độ xử lý.
Ta có thể phân loại các thuật toán tìm tập thường xuyên theo hai tiêu chí:
Phương pháp duyệt qua không gian tìm kiếm
Phương pháp xác định độ hỗ trợ của tập mục dữ liệu.
Với phương pháp duyệt qua không gian tìm kiếm được phân làm hai cách:
Duyệt theo chiều rộng (Breadth First Search – BFS) và duyệt theo chiều sâu
(Depth First Search – DFS).
Duyệt theo chiều rộng là duyệt qua dữ liệu nguyên bản, để tính độ hỗ trợ
của tất cả các tập ứng viên có k-1, mục dữ liệu trước khi tính độ hỗ trợ của các
tập ứng viên có k mục dữ liệu. Một cơ sở dữ liệu có n mục dữ liệu, trong lần lặp
thứ k để tìm những tập k-mục dữ liệu ứng viên, phải kiểm tra tất cả
)!kn(!k
!nCkn −
= tập k-mục dữ liệu.
Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên
23
Duyệt theo chiều sâu, là duyệt qua cơ sở dữ liệu đã được chuyển thành
cấu trúc cây, quá trình duyệt được gọi đệ quy theo chiều sâu của cây.
Với cơ sở dữ liệu có n mục dữ liệu, I = {x1, x2, …, xn}, thì không gian tìm
kiếm là tập tất cả các tập con của I, đây là bài toán NP khó, nếu không có
phương pháp duyệt thích hợp thì bài toán không giải được khi n đủ lớn.
Phương pháp xác định độ hỗ trợ của tập mục dữ liệu X ⊆ I được phân làm
hai cách: Cách thứ nhất: Đếm số giao tác trong cơ sở dữ liệu chứa X. Cách thứ
hai: Tính phần giao của các tập định danh giao tác chứa X.
Phát biểu bài toán phát hiện luật kết hợp
Cho một tập các mục I, một cơ sở dữ liệu giao dịch D, ngưỡng hỗ trợ
minsup, ngưỡng tin cậy minconf. Tìm tất cả các luậ t kết hợp X ⇒Y trên CSDL
D sao cho: sup(X ⇒ Y) ≥ minsup và conf(X ⇒ Y) ≥ minconf. Bài toán khai thác
luật kết hợp có thể được chia ra làm 2 bài toán con được phát biểu trong thuật
toán sau:
Nội dung thuật toán
Vào: I, D, minsup, minconf
R: Các luận kết hợp thỏa mãn minsup và minconf
Phương thức:
(1) Tìm tất cả các tập mục phổ biến từ CSDL D tức là tìm tất cả các tập
mục có độ hỗ trợ lớn hơn hoặc bằng minsup.
(2) Sinh ra các luật từ các tập mục phổ biến (large itemsets) sao cho độ
tin cậy của luật lớn hơn hoặc bằng minconf.
Bước 1: Tìm các tập mục phổ biến như được mô tả trong hình 2.1.
Bước 2: Sinh các luật kết hợp từ tập mục phổ biến tìm được ở bước 1.
Tùy theo ngữ cảnh các thuộc tính dữ liệu, cũng như phương pháp sử dụng
trong các thuật toán; người ta có thể phân bài toán khai phá luật kết hợp ra nhiều
nhóm khác nhau. Chẳng hạn, nếu giá trị của các thuộc tính có kiểu boolean thì
ta gọi là khai phá luật kết hợp Boolean (Mining Boolean Association Rules) …
2.3 Luật kết hợp cơ sở
Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên
24
2.3.1 Phát hiện các tập mục phổ biến
Các thuật toán phát hiện tập mục phổ biến, phải thiết lập một số giai đoạn
trên CSDL. Trong giai đoạn đầu, ta thực hiện tính độ hỗ trợ support cho mỗi
mục riêng lẻ và xác định xem mục nào là phổ biến, nghĩa là có
support ≥ minsup. Trong mỗi giai đoạn tiếp theo, ta bắt đầu với các tập mục phổ
biến đã tìm được trong giai đoạn trước, để sinh ra các tập mục có khả năng là
tập phổ biến mới (còn gọi là tập mục ứng cử - candidate itemset) và tính độ hỗ
trợ cho các tập mục ứng cử này bằng một phép duyệt CSDL. Cuối mỗi giai
đoạn, người ta xác định xem trong các tập mục phổ biến cho giai đoạn tiếp theo.
Tiến trình này sẽ tiếp tục, cho đến khi không tìm được một tập các tập mục phổ
biến mới hơn nữa.
Ta giả sử các mục trong mỗi giao dịch đã được sắp xếp theo thứ tự từ
điển (diễn tả một thứ tự quy ước nào đó cho các mục của CSDL). Các mục trong
một tập mục cũng được lưu trữ theo thứ tự từ điển, nghĩa là, một k-itemset ci kí
hiệu là ci[1], ci[2],…, ci[k] thì ci[1] < ci[2] <…< ci[k]. Nếu ci = X.Y và Y là một
m-itemset thì Y cũng được gọi là một m -mở rộng (m-extention) của X. Trong
lưu trữ, mỗi tập mục có một trường support_count tương ứng, dùng để lưu độ
hỗ trợ cho tập mục này.
2.3.1.1 Thuật toán Apriori [18, 21, 22]
L = φ, L1 = {large 1+itemset}, k = 2
tập mục ứng cử Ck, từ tập Lk+1
support cho các phần tử của tập Ck
Lk từ Ck bằng phép kiểm tra minsup
L là tập
cần tìm
NO
Bổ sung Lk vào L, k++
Hình 2.1. Sơ đồ tổng quan của thuật toán khai phá tập mục phổ biến
Lk ≠ φ
Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên
25
Apriori là thuật toán khai phá luậ t kết hợp do RaKesh Agrawal, Tomasz
Imielinski, Anin Sawami đưa ra vào năm 1993, là nề tảng cho việc phát triển
những thuật toán sau này. Thuật toán sinh tập mục ứng cử từ những tập mục phổ
biến ở bước trước, sử dụng kĩ thuật “tỉa” để bỏ đi tập mục ứng cử không thỏa
mãn ngưỡng hỗ trợ cho trước.
Các ký hiệu sử dụng trong thuật toán:
Lk = {l1, l2,…, li, …} tập các k-itemset phổ biến.
Ck = {c1, c2,…, ci, …} tập các k -itemset ứng cử, mỗi c i có 2 trường
itemset và count dùng để chứa tập mục và số đếm hỗ trợ của tập mục đó trong
cơ sở dữ liệu.
Nội dung thuật toán
Dữ liệu vào: Tập các giao dịch D, ngưỡng hỗ trợ minsup
Dữ liệu ra: Tập Answer bao gồm các tập mục phổ biến trên D
Phương pháp:
L1 = {large 1-itemset};
for (k = 2; Lk-1 ≠ φ; k++) do begin
Ck = apriori_gen(Lk-1); // sinh tập mục ứng cử mới Ck;
forall giao dịch t ∈ D do begin
Ct = subset(Ck, t); // các tập mục ứng cử chứa trong t;
forall tập mục ứng cử ci ∈ Ct do
ci.count ++ ;
end;
Lk = {ci ∈ Ckci.count ≥ minsup}
end;
Answer = ∪kLk ;
Giải thích thuật toán
Trong thuật toán này, giai đoạn đầu đơn giản chỉ là việc tính độ hỗ trợ
của các mục. Để xác định L1, ta chỉ giữ lại các mục có độ hỗ trợ lớn hơn hoặc
bằng minsup.
Trong các giai đoạn thứ k sau đó (k > 1), mỗi giai đoạn gồm có 2 pha:
Pha thứ 1: Các (k-1)-itemset phổ biến trong tập L k-1 tìm được trong giai
đoạn thứ k-1 được dùng để sinh ra các tập mục ứng cử Ck bằng cách thực hiện
hàm apriori_gen().
Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên
26
Pha thứ 2: CSDL D sẽ được quét để tính độ hỗ trợ cho mỗi tập mục ứng
cử trong Ck. Các tập mục ứng cử trong Ck mà được chứa trong giao dịch t có thể
được xác định một cách hiệu quả bằng việc sử dụng cây băm.
Hàm apriori_gen() thực hiện hai bước:
Bước kết nối (Join step): Bước này kết nối các phấn tử trong Lk-1. Trong
này, giả sử rằng các mục của các tập mục đã được sắp xếp theo thứ tự từ điển.
Nếu có k-2 item đầu tiên (gọi là phần tiền tố) của hai (k-1)-itemset l1, l2 nào đó
mà giống nhau thì ta khởi tạo một k-itemset ứng cử cho Ck bằng cách lấy phần
tiền tố này hợp với 2 item thứ k-1 của l1 và l2 (có thể phải sắp lại thứ tự cho các
item này). Điều kiện l 1[k-1] < l2[k-1] nhằm tránh trường hợp 2 tập mục l1 và l2
giống nhau kết nối với nhau.
Bước cắt tỉa (Prune step): Trong bước này, ta cần loại bỏ tất cả các k-itemset
ci ∈ Ck mà tồn tại một (k-1)-itemset s, s ⊂ ci và s ∉ Lk-1. Giải thích điều này như sau:
một (k-1)-itemset s, s ⊂ ci và s ∉ Lk-1. Khi đó, sup(s) < minsup vì s không phải là tập
phổ biến, mặt khác do ci ⊃ s nên sup(ci) ≤ sup(s) < minsup. Vậy ci không thể là
tập phổ biến, nó cần được loại bỏ ra khỏi Ck.
Ví dụ: Cho tập các mục phổ biến L3 = {{a; b; c}; {a; b; d}; {a; c; d};
{a; c; e} ; {b; c; d}}.
Chúng ta kết nối tập mục phổ biến l 1 = {a; b; c} và tập mục phổ biến
l2 = {a; b; d}, ta được tập mục ứng cử c 1 ={a; b; c; d}. Cả 3 tập con ( {a; b; c};
{a; b; d} ; {b; c; d}) s ⊂ c1 đều thuộc L3 do đó c1 được giữ lại và C4 ← c1. Cũng
tương tự, ta kết nối tập mục phổ biến l 3 = {a; c; d} và tập mục phổ biến
l4 = {a; c; e}, ta sinh ra được tập mục ứng cử c 2 = {a; c; d; e}. Ta có tập mục
s = {a; d; e} ⊂ c2 mà s ∉ L3 nên tập mục ứng cử c2 bị loại.
Hàm subset và cấu trúc cây băm (hash-tree)
Cấu trúc cây băm: Để tăng hiệu quả cho việc tìm các tập mục thường
xuyên và tính độ hỗ trợ cho các tập mục ứng cử, thuật toán sử dụng cấu trúc cây
Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên
27
băm để lưu trữ các tập mục ứng cử Ck. Mỗi nút của cây băm hoặc chứa một
danh sách của các tập mục (nếu là nút lá) hoặc một băm (hash table) (nếu là nút
trong). Tại mỗi nút trong, mỗi phần tử (bucket) của bảng băm trỏ đến một nút
khác. Gốc của cây được định nghĩa có độ sâu bằng 1. Nút ở độ sâu d thì trỏ đến
nút ở độ sâu (d + 1). Các tập mục được lưu trữ trong các nút lá tạo thành một
danh sách liên kết và đã được sắp xếp. Khi số tập mục lưu trong nút lá vượt quá
ngưỡng thì nút lá chuyển thành nút trong. Khi thêm một tập mục ci vào cây, ta
bắt đầu duyệt từ nút gốc trên cây cho đến khi tìm được nút lá phù hợp, cách thực
hiện như sau: ở mỗi nút trong độ sâu d, chúng ta quyết định đi theo nhánh nào
bằng cách sử dụng hàm băm đối với mục thứ d (ci[d] lưu mục thứ d) của tập
mục ci.
Hàm subset(Ck, t): Hàm này dùng để tìm tất cả các tập mục ứng cử
trong Ck có chứa trong giao dịch t. Để tìm tập mục ứng cử ta bắt đầu từ nút gốc:
nếu nút gốc là nút lá thì ta xem các tập mục trong nút lá đó có chứa trong giao
dịch t hay không. Trường hợp nút trong, và là kết quả của việc áp dụng hàm
băm cho mục thứ i của giao dịch t , thì ta tiếp tục thực hiện hàm băm cho mục
thứ (i +1) của giao dịch t, cho đến khi tìm gặp nút lá. Thủ tục tìm này được thực
hiện đệ quy.
2.3.1.3 Ví dụ minh họa thuật toán Apriori
Cho cơ sở dữ liệu giao dịch D, I = {bánh mì, bơ, trứng, sữa, đông sương,
kem}. Áp d ụng thuật toán Apriori để tìm các tập phổ biến thỏa minsup = 60%.
Sau khi áp dụng thuật toán Apriori c ác tập mục phổ biến thu được chỉ
ra trong hình 2.2. L = L1 ∪ L2 ∪ L3 = {{bánh mì}; {bơ}; {sữa}; {bánh mì, bơ};
{bánh mì, sữa}; {bơ, sữa}; {bánh mì, bơ, sữa}}
Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên
28
Hình 2.2: Ví dụ thuật toán Apriori
2.3.1.4 Các thuật toán phát hiện tập mục phổ biến khác
Có rất nhiều thuật toán được đề xuất để phát hiện các tập mục phổ biến
đây là bước quan trọng và chiếm nhiều thời gian nhất trong quá trình khai phá
luật kết hợp trong CSDL. Sau đây là một số thuật toán tiêu biểu và đặc điểm của
nó.
Thuật toán Apriori-TID
Như đã đề cập ở phần trên, thuật toán Apriori quét to àn bộ CSDL trong
mỗi giai đoạn để tính độ hỗ trợ. Việc quét toàn bộ CSDL có thể là không cần
thiết đối với tất cả các giai đoạn. Với ý tưởng, Agrawal đã đề xuất một thuật
toán khác, gọi là thuật toán Apriori-TID.
TID Giao dịch
100 {kem, bánh mì, sữa, bơ}
200 {sữa, bánh mì, trứng, đường, bơ}
300 {trứng, bánh mì, bơ, đường}
400 {bơ, bánh mì, sữa}
Cơ sở dữ liệu D
1-itemset Độ hỗ trợ
{bánh mì} 100%
{bơ} 100%
{trứng} 50%
{sữa} 75%
{đường} 50%
{kem} 25%
C1
Quét D
2-itemset
{bánh mì, bơ}
{bánh mì, sữa}
{bơ, sữa}
C2
2-itemset
{bánh mì, bơ}
{bánh mì, sữa}
{bơ, sữa}
C2
1-itemset Độ hỗ trợ
{bánh mì} 100%
{bơ} 100%
{sữa} 75%
L1
Xóa bỏ các mục có
support < minsup
2-itemset
{bánh mì, bơ}
{bánh mì, sữa}
{bơ, sữa}
1-itemset Độ hỗ trợ
{bánh mì} 100%
{bơ} 100%
{sữa} 75%
Quét D L2
3-itemset
{bánh mì, bơ, sữa}
3-itemset
{bánh mì, bơ, sữa}
C3 C3
1-itemset Độ hỗ trợ
{bánh mì, bơ, sữa} 75%
Quét D L3
Kết nối L1 và L2
Tỉa
Tỉa
Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên
29
Tương tự thuật toán Apriori, thuật toán Apriori-TID cũng sử dụng hàm
apriori_gen() để xác định các tập mục ứng cử trước khi bắt đầu mỗi giai đoạn.
Điểm khác nhau chủ yếu của thuật toán này so với thuật toán Apriori là;
nó không sử dụng CSDL để tính độ hỗ trợ trong các giai đoạn k > 1. Thay vào
đó nó sử dụng mã khóa của các tập mục ứng cử đã sử dụng trong giai đoạn
trước, kC . Nhiều thí nghiệm trên nhiều CSDL chỉ ra rằng thuật toán Apriori cần
ít thời gian hơn giải thuật Apriori-TID trong các giai đoạn đầu ,nhưng mất nhiều
thời gian cho các giai đoạn sau, mô tả chi tiết trong [20, 21].
Thuật toán Apriori-Hybrid
Thuật toán này dựa vào ý tưởng “không cần thiết phải sử dụng cùng một
thuật toán cho tất cả các giai đoạn lên trên dữ liệu”. Như đã đề cập ở trên, thuật
toán Apriori thực thi hiệu quả ở các giai đoạn đầu, thuật toán Apriori-TID thực
thi hiệu quả ở các giai đoạn sau. Phương pháp của thuật toán Apriori-Hybrid là
sử dụng thuật toán Apriori ở các giai đoạn đầu và chuyển sang sử dụng thuật
toán Apriori-TID ở các giai đoạn sau, được trình bày chi tiết trong [21].
Thuật toán AIS (Agrawal Imielinski Swami)
Trong thuật toán AIS, tập các mục ứng cử được sinh ra và được tính khi
quét toàn bộ CSDL. Với mỗi giao dịch t, thuật toán chọn các tập mục phổ biến
nào đã được phát hiện ở giai đoạn trước có chứa trong giao dịch t. Các tập mục
ứng cử mới được sinh ra bằng việc mở rộng các tập phổ biến này với các mục
khác trong giao dịch t [18, 21].
Thuật toán DIC (Dynamic Itemset Counting)
Thuật toán DIC bắt đầu tính độ hỗ trợ cho các k-itemset sau khi quét
((k - 1) * M) giao dịch, M < D và dừng việc t ính sau khi các k-itemset này
được thấy trong tất cả các giao dịch. Thuật toán Apriori là trường hợp đặc biệt
của thuật toán DIC, ứng với M = D. Vì vậy, thuật toán DIC thực hiện tốt hơn
thuật toán Apriori nếu M được chọn thích hợp [18, 21].
Thuật toán OCD (Of-line Candidate Determination)
Kỹ thuật OCD được giới thiệu bởi Mannila vào năm 1994, dựa vào ý
tưởng “các mẫu có kích thước nhỏ thường là khá tốt cho việc tìm kiếm các tập
Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên
30
mục phổ biến”. Kỹ thuật này sử dụng các kết quả của phép phân tích tổ hợp
thông tin thu được ở các giai đoạn trước , để lo ại b ỏ đi các tập mụ c ứng cử
không cần thiết. Nếu một tập Y ⊆ I là một tập không phổ biến thì cần quét ít
nhất (1 - s) giao dịch trong CSDL, s là ngưỡng hỗ trợ. Vì vậy, đối với những giá
trị ngưỡng hỗ trợ s nhỏ thì hầu như toàn bộ các giao dịch phải được quét. Thuật
toán OCD sinh ra một tập tất cả các k-itemset phổ biến Lk [18, 20].
Thuật toán phân hoạch [21]
Thuật toán này chia CSDL thành các phân hoạch nhỏ, mỗi phân hoạch có thể
được lưu trữ trên bộ nhớ chính. Cho các phân hoạch của CSDL D là D1, D2, …, Dp.
Lần quét đầu tiên, thuật toán tìm các tập mục phổ biến trong mỗi phân hoạch Di
(1 ≤ i ≤ p) gọi là tập mục phổ biến cục bộ. Mỗi tập mục phổ biến cục bộ Li có
thể được tìm thấy bằng cách sử dụng thuật toán Apriori. Lần quét thứ nhì, thuật
toán này sử dụng tính chất, tập mục phổ thỏa trên CSDL toàn cục phải là tập
mục phổ biến cục bộ trong ít nhất một phân hoạch của CSDL nào đó. Sau đó, ta
hợp các tập mục phổ biến cục bộ được tìm thấy trong mỗi phân hoạch để tạo ra
các tập mục ứng cử và thực hiện tính độ hỗ trợ tổng thể trên CSDL D, để tìm tất
cả các tập mục phổ biến. Thuật toán này thực thi tốt trên máy tính song song.
Thuật toán Apriori thực hiện tốt hơn thuật toán phân hoạch chỉ khi nào ngưỡng
hỗ trợ có giá trị cao.
2.3.2 Sinh luật kết hợp
Để sinh các luật, với mỗi tập mục phổ biến , ta tìm tất cả các tập con
khác rỗng của . Với mỗi tập a ⊂ tìm được, ta sinh ra luật a ⇒ ( - a) nếu
tỷ số
)sup(
)sup(
a
≥ mincorf. Thủ tục sinh ra các tập mục con của một tập mục phổ
biến là thủ tục để quy, được mô tả như sau:
Với tập mục phổ biến {A, B, C, D}, đầu tiên ta chọn tập con là {A, B, C},
rồi sau đó chọn tập con là {A, B} … Khi đó, nếu ∃ a ⊂ và luật a ⇒ ( - a) có
độ tin cậy nhỏ hơn minconf thì ta không cần phải xem xét các luật có tiền đề là
a’, ∀ a’ ⊆ a. Chẳng hạn, nếu ABC ⇒ D Có độ tin cậy nhỏ hơn minconf thì ta
Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên
31
không cần phải kiểm tra luật AB ⇒ CD vì AB ⊂ ABC nên sup(AB) ≥ sup(ABC) và
do đó
)sup(
)sup(
)sup(
)sup(
AB
ABCD
ABC
ABCD
≤ < minconf.
2.3.2.1 Thuật toán sinh luật đơn giản
Vào: Tập các tập mục phổ biến Lk
Ra: Tập luật
Phương thức:
forall tập mục phổ biến lk ∈ Lk, k ≥ 2 do
call genrules(lk, lk);
procedure gsnrules(lk: k-itemset phổ biến; am: m-itemset phổ biến);
A = {(m - 1)-itemset am-1am-1 ⊂ am};
forall am-1 ∈ A do begin
conf = sup(lk)/sup(am-1);
if (conf ≥ minconf) then begin
xuất ra luật am-1 ⇒ (lk – am-1);
if ((m - 1) > 1) then
call genrules(lk, am - 1); 0
// sinh ra các luật có tiền đề là tập con của am-1
end
end
2.3.2.2 Thuật toán sinh luật nhanh
Như đã đề cập ở trên với mỗi tập mục phổ biến , nếu luật a ⇒ ( – a)
không thỏa minconf thì ∀a’ ⊆ a, luật a’ ⇒ ( – a’) cũng không thỏa. Ngược lại, nếu
luật ( – c) ⇒ c thỏa minconf thì tất cả các luật ( – c’) ⇒ c’ cũng thỏa minconf, với
∀c’ ⊆ c. Bởi vì ( – c) ⊆ ( – c’) (do c’⊆ c), suy ra sup( – c) ≥ sup( – c’) và
minconf ≤ ( )
( )
( )
( )'sup
sup
sup
sup
cc −
≤
−
, do đó lu ật ( – c’)⇒ c’ cũng thỏa minconf.
Như vậy, từ một tập mục phổ biến , trước hết, ta sinh tất cả các luật với
1-itemset trong mệnh đề kết quả. Sau đó, sử dụng các mệnh đề kết quả và hàm
apriori_gen() để sinh các mệnh đề kết quả có thể của luật bao gồm
2-item, 3-item... [22]
Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên
32
2.4. Khai phá luật kết hợp với một số khái niệm mở rộng
2.4.1. Giới thiệu
Một số khai niệm mở rộng của các luật kết hợp đó là: Luật kết hợp định
lượng, Luật kết hợp tổng quát, Luật kết hợp trọng số... Việc khai phá luật kết
hợp dựa trên các khái niệm mở rộng này cho phép người ta phát hiện được
nhiều luật kết hợp mà các thuật toán khai phá luật kết hợp cơ sở không tìm thấy
được. Ví dụ, với luật kết hợp định lượng cho phép người ta phát biểu một luật
có dạng như sau “Nếu các khách hàng mua ít nhất 3 mặt hàng A thì cũng mua
từ 5 đến 10 mặt hàng B“.
2.4.2. Khai phá luật kết hợp trọng số
4.2.2.1. Luật kết hợp trọng số nhị phân
Định nghĩa 2.5: Trọng số của một tập mục w(0 ≤ w ≤ 1) biểu thị cho
mức độ quan trọng của tập mục đó.
Chẳng hạn: Nếu tập mục X có trọng số w = 0.95 thì ta nói rằng nó quan
trọng hơn khi X có trọng số là w = 0.10 trên cùng cơ sở dữ liệu giao dịch D.
Định nghĩa 2.6: Luật kết hợp trọng số nhị phân (Binary weighted
Association Rule): Là luật có dạng X ⇒ Y với tập các mục I = {i1, i2, ..., in} trên
cơ sở dữ liệu giao dịch D, X ⊂ I, Y⊂ I và X ∩ Y = ∅.
Định nghĩa 2.7: Độ hỗ trợ trọng số (không chuẩn hóa) của luật kết hợp
trọng số nhị phân X ⇒ Y được định nghĩa.
( )YXwYXportw
YXi
j
j
∪
=⇒ ∑
∪∈
sup*)(sup
)(
(2.4)
Trong đó, {w1, w2, …, wn} là trọng số tương ứng của các mục {i1, i2, ..., in}.
Tương tự như trong luật kết hợp Boolean, việc tìm các luật kết hợp đáng
quan tâm dựa vào hai ngưỡng cho trước: độ hỗ trợ trọng số tối thiểu (wminsup)
và độ tin cậy trọng số tối thiểu (minconf) [8].
Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên
33
Định nghĩa 2.8: Một k-itemset X được gọi là tập mục trọng số không
phổ biến nếu độ hỗ trợ trọng số của X nhỏ hơn độ hỗ trợ trọng số tối thiểu hay
( ) supminsup* wXw
Xi
j
j
<
∑
∈
. Ngược lại X là tập mục phổ biến [8].
Định nghĩa 2.9: Một luật kết hợp trọng số nhị phân X ⇒ Y được gọi là
luật đáng quan tâm nếu độ tin cậy của luật X ⇒ Y lớn hơn hoặc bằng độ tin cậy
trọng số tối thiểu và tập mục ( X ∪ Y) là tập mục trọng số phổ biến.
Ví dụ: Cho dữ liệu giao dịch D như sau:
Khi đó, nếu wminsup = 0.4 thì tập mục {2, 5} sẽ là tập mục trọng số phổ
biến vì (0.3 + 0.9)* 5/7 = 0.86 > 0.4. Tương tự, các tập mục {4, 5}, {2, 4, 5},
cũng là các tập mục trọng số phổ biến.
Khái niệm biên k-support (k-support bound)
Hàm apriori_gen() được kế thừa trong khai phá luật kết hợp trọng số.
Tuy nhiên, ý nghĩa cả độ hỗ trợ trong trường hợp này bị thay đổi. Với độ hỗ trợ
trọng số được định nghĩa như trên thì tính chất 2.3 có thể không được bảo toàn,
nghĩa là nếu một tập mục X là một tập mục trọng số phổ biến thì các tập con của
X chưa hẳn đã là các tập mục trọng số phổ biến.
Giả sử X1, X2, …, Xn là n tập con của X, khi đó ta có:
wsuppprt(X) > min(wsupport(X1),…, wsupport(Xn)) (2.5)
Cho một CSDL giao dịch với các giao dịch T, số đếm hỗ trợ (gọi tắt là số
đếm) của tập mục X, ký hiệu SC(X) là số các giao dịch chứa X và thỏa mãn
điều kiện sau nếu X là một tập mục phổ biến:
Mã vạch Items Tổng lợi nhuận
Các trọng
số
1 Nho 100 0.1
2 Cam 300 0.3
3 Sữa 400 0.4
4 Đường 800 0.8
5 Thịt 900 0.9
TID Giao dịch
1 1 2 4 5
2 1 4 5
3 2 4 5
4 1 2 4 5
5 1 3 5
6 2 4 5
7 2 3 4 5
Bảng 2.1.a. Thông tin của một cửa hàng bán lẻ Bảng 2.1.b. Tập giao dịch D của
cửa hàng
Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên
34
∑
∈
=
Xi
j
j
w
TXSC sup*min)( (2.6)
Bổ đề 2.1. Gọi I là tập tất cả các mục. Giả sử Y là một q-itemset, q< k.
Trong tập các mục còn lại (I-Y), đặt các mục này với (k-q) các trọng số lớn nhất
là ir1, ir2,…, irk-p. Khi đó, trọng số tối đa của bất kỳ k-itemset chứa Y là:
∑∑
−
=∈
+=
qk
j
r
Yi
j j
j
wwkYW
1
),( (2.7)
Trong đó ∑
∈Yi
j
j
w là tổng các trọng số của q-itemset Y và ∑
−
=
qk
j
rjw
1
là tổng
của (k-q) các trọng số tối đa của các mục còn lại.
Từ bất đẳng thức (2.6), số đếm tối thiểu của k-itemset phổ biến chứa Y
cho bởi:
=
),(
sup*min),(
kYW
TwkYB (2.8)
Ta gọi B(Y, k) là hàm xác định biên k-support của Y, ta sử dụng kí hiệu
để lấy cận trên của
),(
sup*min
kYW
Tw vì hàm B(Y, k) trả về giá trị nguyên [8].
Thuật toán khai phá luật kết hợp trọng số (không chuẩn hóa)
Thuật toán khai phá luật kết hợp trọng số kế thừa thuật toán của hàm
apriori_gen(). Do tính chất của trọng số của các tập mục nên trong một số bước
có thể có sự khác biệt. Trước tiên, ta cũng sinh ra các tập mục trọng số phổ biến
với kích thước tăng dần nhưng do các tập con của các tập mục phổ biến có thể
không phải là các tập mục phổ biến nên ta không thể sinh ra các k-itemset ứng
cử một cách dễ dàng từ tập các (k-1)-itemset phổ biến như trong thuật toán
Apriori. Chính vì vậy ta phải tìm cách lưu giữ các k -itemset mà chúng có thể
sinh ra các j-itemset phổ biến (j≤ k) trong các giai đoạn sau. Để trích chọ n các
k-itemset từ CSDL, ta sử dụng các giá trị biên j-support. Trong quá trình thực
hiện, các biên j-support sẽ được tính toán cho tất cả các k-itemset ứng cử, j là
một số bất kỳ giữa k và kích thước lớn nhất có thể của tập mục phổ biến. Nếu số
Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên
35
đếm của k-itemset nào đó mà nhỏ hơn tất cả các biên j -support thì ta có thể nói
rằng nó không thể là tập con của bất kỳ tập mục trọng số phổ biến nào trong giai đoạn
tiếp theo. Vì thế, nó có thể được cắt tỉa đi, k-itemset nào có th ể sử dụng để tạo ra các tập
mục trọng số phổ biến trong giai đoạn kế tiếp sẽ được lưu giữ vào Ck.
Thuật toán khai phá luật kết hợp trọng số (nhị phân không chuẩn hóa)
(MINVAL(O))
Các ký hiệu trong thuật toán:
D: Cơ sở dữ liệu giao dịch;
w: Tập các trọng số của các mục
Lk: Tập các k-itemset phổ biến
Ck: Tập các k-itemset trọng số ứng cử
SC(X): Số lượng giao dịch chứa tập mục X
wminsup: Ngưỡng hỗ trợ trọng số; minconf – Ngưỡng tin cậy
size: Kích thư ớc tối đa của các tập mục trọng số phổ biến tiềm năng trong D.
Nội dung thuật toán MINVAL(O)
Vào: D, wminsup, minconf, wi (trọng số của các mục) đã được sắp xếp
theo thứ tự tăng dần, tổng số các giao dịch và tổng số các mục.
Ra: Một danh sách của các luật đáng quan tâm
Thuật toán chính (wminsup, minconf, D, w)
L = φ;
for(i=1; i<= size; i++) do
Ci = Li = φ;
for(mỗi giao dịch) do
(SC, C1, size) = Counting(D,w);
k=1;
while (|Ck|>= k) do begin
k++;
Ck = Join(Ck-1);
Ck=Prune(Ck);
(Ck, Lk)=Checking(Ck, D);
L = L ∪ Lk;
Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên
36
end;
Rule(SC, L);
end;
Giải thích thuật toán
(1) Ở giai đoạn 1, tất cả các tập mục ứng cử và kích thước tối đa của các
tập mục trọng số phổ biến tiềm năng và số đếm hỗ trợ của các 1-itemset được
sinh ra bởi thủ tục Counting(D, w) và được gán cho C1, size, SC(X). Hàm này
được thực hiện bằng cách quét cơ sở dữ liệu D, cập nhật số đếm hỗ trợ của các
mục và kiểm tra cận trên của size. Hơn nữa, biên k-support sẽ được tính toán
trong giai đoạn này và đẩy các tập mục ứng cử vào C1.
(2) Sinh các tập mục trọng số phổ biến và các tập mục trọng số ứng cử:
i- Sinh ra Ck từ Ck-1 bởi thủ tục Join(Ck-1). Thủ tục này thực hiện nối hai
(k-1)-itemset nào đó thuộc C k-1 với nhau để tạo thành một k-itemset rồi đẩy vào
Ck (tương tự bước nối trong hàm apriori_gen()).
ii- Một tập mục sẽ được cắt tỉa bởi hàm Prune(Ck) nếu nó thỏa mãn một
trong các trường hợp sau:
- Một tập con của tập mục ứng cử Ck không có mặt trong Ck-1.
- Ước lượng một cận trên số đếm hỗ trợ (SC) của tập mục X (X đã được
nối), đó là SC tối thiểu trong số k các (k-1)-subset khác nhau của X trong Ck-1.
Nếu cận trên ước lượng SC chỉ ra tập mục X không phải là một tập con
của bất kỳ một tập mục phổ biến nào trong giai đoạn kế tiếp (bằng việc tính toán
các biên k-support cho tất cả các itemset) thì tập mục X sẽ được cắt tỉa.
iii- Thủ tục tiếp theo sẽ quyết CSDL giao dịch, cập nhật số đếm của tất cả
các tập mục ứng cử trong Ck. Sau đó, thực hiện việc cắt tỉa các tập mục ứng cử
không thỏa mãn các biên SC của tất cả các tập mục trọng số phổ biến tiềm năng.
Các tập mục ứng cử còn lại sẽ được lưu giữ vào Ck. Lúc này Lk sẽ được sinh ta
từ Ck bằng cách kiểm tra độ hỗ trợ trọng số thực tế của các tập mục. Bước này
được thực hiện bởi các thủ tục Checking(Ck, D)
(3) Thủ tục Rule(SC, L) tìm tất cả các luật kết hợp từ các tập mục phổ
biến L đã được tìm thấy ở trên với độ tin cậy tối thiểu minconft.
Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên
37
2.4.2.2. Khai phá luật kết hợp trọng số chuẩn hóa
Định nghĩa 2.10: Một k-itemset X đư ợc gọi là một tập mục không phổ biến
(small itemset) n ếu độ hỗ trợ trọng số chuẩn hóa của nó nhỏ hơn wminsup. Nghĩa là:
supmin)(sup*1
)(
wXw
k Xi
j
j
<
∑
∈
port (2.9)
Định nghĩa 2.11: Độ hỗ trợ trọng số chuẩn hóa (Nomalized Weighted
Support) của một luật X ⇒ Y được cho bởi biểu thức sau:
)(sup*1
)(
YXw
k YXi
j
j
∪
∑
∪∈
port (2.10)
Trong đó, k là kích thước của tập mục (X ∪ Y).
Ngược lại, tập mục X sẽ được gọi là k-itemset trọng số phổ biến.
Định nghĩa 2.12: Một luật kết hợp trọng số chuẩn hóa nhị phân X ⇒ Y được
gọi là đáng quan tâm nếu độ tin cậy của luật X ⇒ Y lớn hơn hoặc bằng độ tin cậy tối
thiểu (minconf) và (X ∪ Y) là m ột tập mục trọng số phổ biến (chuẩn hóa).
Định nghĩa 2.13: Số đếm hỗ trợ tối thiểu của một k -itemset phổ biến
chứa Y được gọi là biên k-support của tập mục Y với trọng số chuẩn hóa và
được cho bởi:
T
kYW
w
kkYB *
),(
supmin
*),(
= (2.11)
Cách tiếp cận khác cho trường hợp trọng số chuẩn hóa
Ta thiết lập một thuật toán trong đó việc sinh ra các tập mục trọng số phổ
biến tương tự như trong hàm appriori_gen() cũng như việc cắt tỉa các tập mục
ứng cử trong mỗi giai đoạn. Tuy nhiên, tính chất “Tập con của một tập mục phổ
biến là mộ t tập mục phổ biến” sẽ không còn đúng trong trường hợp trọng số
chuẩn hóa.
Định nghĩa 2.14: Tập cha bật thấp ( low-order superset): Cho một tập
mục X = {x1, x2, xn}, đặt trọng số nhỏ nhất của các mục là w i. Một tập mục
Y = X ∪ Z, Z có các trọng số đều nhỏ hơn wi. Thì Y được gọi là một tập cha
bậc thấp của X.
Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên
38
Định nghĩa 2.15: Tập con bật cao ( high-order subset): Một tập mục
Y⊂ X trong đó, mỗi tập mục của Y đều có trọng số lớn hơn hoặc bằng trọng số
mỗi mục trong (X – Y), được gọi là một tập con bậc cao của X.
Bổ đề 2.2: Nếu một tập mục Y là phổ biến thì bất kỳ tập con bật cao nào
của Y cũng phải là tập mục phổ biến.
Chứng minh: Cho X là một tập con bật cao của Y. Trọng số trung bình
của X là lớn hơn hoặc bằng trọng số trung bình của Y. Độ hỗ trợ của X lớn hơn
hoặc bằng độ hỗ trợ của Y. Do đó, độ hỗ trợ trọng số của X sẽ lớn hơn hoặc
bằng độ hỗ trợ trọng số của Y. Vậy nếu Y là tập mục phổ biến thì X cũng là tập
mục phổ biến.
Bổ đề 2.3: Một (k+1)-itemset X phổ biến phải là một tập cha bật thấp của
một số k-itemset phổ biến Y.
Chứng minh: Nếu X là tập mục phổ biến, thì từ bổ đề 2.2, bất kỳ tập con
bật cao nào của X cũng phải là một tập mục phổ biến. Gọi x là một mục thuộc X
với trọng số thấp nhất. Khi đó Y = X – x là một tập con bật cao của X và là tập
phổ biến. Vậy, X là một tập cha bật thấp của Y.
Thuật toán khai phá luật kết hợp trọng số chuẩn hóa (MINVAL(W))
Ký hiệu trong thuật toán:
D: Cơ sở dữ liệu giao dịch;
w: Tập các trọng số của các mục
Lk: Tập các k-itemset phổ biến
Ck: Tập các k-itemset trọng số ứng cử
SC(X): Số lượng giao dịch chứa tập mục X
wminsup: Ngưỡng hỗ trợ trọng số chuẩn hóa
Ck: Tập các i-temset ứng cử.
Nội dung thuật toán MINVAL(W)
Vào: D, wminsup, minconf, wi (trọng số của các mục) được sắp xếp theo
thứ tự tăng dần, tổng số giao dịch và tổng số các mục.
Ra: Một danh sách của các luật trọng số chuẩn hóa đáng quan tâm.
Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên
39
Thuật toán chính (wminsup, minconf, D, w)
L = φ;
for (i=1; i<= size; i++)
Ci = Li = φ;
for (mỗi giao dịch) do
(SC, C1, size)=counting(D, w);
k=1;
while(Ck ≠φ) do begin
k++;
Ck = Join(Ck-1);
Ck=Prunce(Ck);
(Lk)=Checking(Ck, D);
L = L ∪ Lk;
end;
Rule(SC, L)
end;
Giải thích
(1) Ở giai đoạn 1, thuật toán MINVAL(W) giống như trong thuật toán
MINVAL(O) với thủ tục Counting(D, w).
(2) Các t ập mục trọng số phổ biến và tập mục ứng cử được sinh ra như sau:
- Các thủ tục Join, Prune và Checking sinh ra Lk và Ck. Công việc chính
của bước Join(Lk-1) là sinh ra Ck. Theo bổ đề 2.3, một itemset ứng cử phải là
một tập cha bật thấp của một số (k-1)-itemset phổ biến. Trong bước này, ta nối
các tập mục trọng số phổ biến trong Lk-1 với một trong các tập mục có trọng số
thấp hơn để có tạo ra một tập cha bật thấp.
- Khi thực hiện thủ tục Prune, một k-itemset X ửng cử sẽ được cắt tỉa nếu
tất cả các biên j-support của X (j ≤ k) đều lớn hơn số đếm hỗ trợ nhỏ nhất trong
số các (k-1)-subset của X, đó là một ước lượng và là một cận trên số đếm hỗ trợ
của k-itemset X. Sự khác nhau giữa phương pháp tỉa này và phương pháp tỉa
trong hàm apriori_gen() ở chỗ, phương pháp này không cần phải kiểm tra các
tập con của các tập mục phổ biến thay vào đó nó sử dụng các giá trị biên
support.
Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên
40
- Thủ tục Check ing sẽ thực h iện tương tự như MINVAL(O), chỉ có sự
khác biệt, các tâp mục ứng cử còn lại sẽ là tập các tập mục phổ biến Lk và giai
đoạn kế tiếp sẽ dựa vào Lk để sinh ra các tập ứng cử.
(3) Thủ tục Rule(SC, L) thực hiện sinh các luật từ các tập mục trọng số
phổ biến tương tự như trong thuật toán MINVAL(O).
2.4.2.3 Khai phá luật kết hợp trọng số với phương pháp lấy mẫu
Trong 2 thuật toán trên, thời gian xử lý sẽ rất lớn nếu số lượng giao dịch
cần xử lý quá lớn (do cần phải quét toàn bộ CSDL). Sử dụng phương pháp lấy
mẫu để khắc phục điều này.
Kỹ thuật lấy mẫu
Kỹ thuật lấy mẫu ở đây là kỹ thuật lấy mẫu ngẫu nhiên được sử dụng
trong các bài toán xác suất thống kê. Kỹ thuật ngẫu nhiên đơn giản SRS (Simple
Random Sampling) là kỹ thuật chọn ngẫu nhiên n đ ơn vị từ N đơn vị. Mỗi cách
lấy mẫu là một trong nNC cách, do đó xác suất của việc là n
NC
1 . Vấn đề chính là
của kỹ thuật SRS là phải tính toán kích thước mẫu sao cho độ chính xác của
mẫu là đảm bảo.
Để tính toán số lượng mẫu cần thiết, ta sẽ bắt đầu từ độ hỗ trợ của các
tập mục. Gọi y là số lần xuất hiện của tập mục X trong cơ sở dữ liệu D, N là
tổng số giao dịch. Xác suất chọn lựa giao dịch chứa X sẽ là:
Px = y /N (2.12)
Nói cách khác, xác suất chọn giao dịch chứa X sẽ là:
p = y /N (2.13)
Gọi n là số mẫu cần lấy. Khi kích thước phải đủ lớn, giả sử xác suất lựa
chọn giao dịch là p, nghĩa là, p là một hằng đối với mỗi lần chọn. Điều này nói
lên rằng xác xuất mà một mẫu chứa m lần xuất hiện của tập X sẽ là:
mnmn
mr ppCmyP
−−== )1()( (2.14)
Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên
41
Từ trên, với ước lượng pˆ =
n
m , giả sử rằng pˆ được phân phối chuẩn
với pˆ trung bình và có độ lệch là :
n
pp
N
nN )1(
1
−
−
− (2.15)
Với kỹ thuật lấy mẫu ngẫu nhiên đơn giản, ta chọn một số dư sai số
(margin of error) d theo xác xuất ước lượng pˆ và hệ số rủi ro (risk factor) α
thỏa mãn :
Pr(| pˆ - p|) ≥ d)= α (2.16)
Giá trị d biểu thị biên lỗi, còn α biểu thị xác xuất ước lượng vượt qua
ngoài biên d. Do sự phân phối chuẩn của pˆ , ta có:
n
pp
N
nNZd )1(
12
−
−
−
= α (2.17)
Ở đây, Zα/2 là một giá trị sao cho tích phân của mật độ chuẩn từ Z α/2 đến
∞ bằng α/2. Do đó:
2
2
2/
0
0
0 )1(
1 d
ppzn
N
n
nn −
+
= α (2.18)
Trong công thức tính toán n trên, có tham 3 số chưa biết là d, α và p. Giá
trị cực đại của n0 tìm được khi p =1/2. Do đó, ta có thể ấn định p =1/2 để tính
cho n, nghĩa là:
2
2/
2
2
2/
2
2
2/
2
2
2/
4
.
4
1
1
4 α
α
α
α
ZNd
ZN
Nd
zd
zn
+
=
+
= (2.19)
Thuật toán chọn mẫu
Ý tưởng : Khi th ực hiện xử lý, trước hết chọn mẫu ngẫu nhiên từ CSDL với kích
thước n. Tiếp theo, sử dụng thuật toán MINVAL(O) hoặc MINVAL(W).
Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên
42
Một số ký hiệu sử dụng trong thuật toán
Z : giá trị của Zα/2
α : Hệ số rủi ro
d : Biên lỗi
n : Kích thước mẫu
N : Tổng số giao dịch trong toàn bộ CSDL
S : Tập các giao dịch sau khi lấy mẫu (từ CSDL của mẫu)
Ti : Giao dịch thử i
Vào: N, wminsup, minconf, d và α
Ra: Một danh sách các luật đáng quan tâm với hệ số rủi ro α
Thuật toán SRS
1) Thuật toán lấy mẫu (wminsup, minconf, D, w, α, d, n, N)
2) Z = Calculate(α);
3) n = 22
2
4
.
ZNd
ZN
+
;
4) for(i = 1; I ≤ n; i ++) a[i] = GenRamdom(N);
5) Sort(a);
6) for each transaction Ti in D (i = 1..N)
7) if (i = a[i])
8) S = S ∪ Ti
9) Execute(wminsup, minconf, S, w)
Các thủ tục sử dụng trong thuật toán này:
Calculate(() : Tính toán giá trị Zα/2 từ phân phối chuẩn
GenRandom(N): Sinh số nguyên ngẫu nhiên trong khoảng [1, N]
Sort(a) : Sắp xếp mảng a theo thứ tự tăng dần
Execute(wminsup, minconf, S, w): Thực hiện một trong hai thuật toán
MINVAL(O) hoặc MINVAL(W) trên tập mẫu các giao dịch S.
2.4.3 Khai phá luật kết hợp tổng quát
Tập các mục I = {i1, i2, ..., in} trong các bài toán khai phá lu ật kết hợp cơ sở nêu
trên đư ợc coi là bình đẳng với nhau. Tuy nhiên, trong thực tế, có nhiều trường hợp cần
phải phân cấp cho các mục này. Ví dụ, I = {Áo vét, quần áo khoác, …}, người ta
Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên
43
thường nói Áo vét là một loại Quần áo khoác. Trong nh ững trường hợp như vậy, người
ta biểu diễn các mục của tập I thành m ột cây phân cấp.
Sự phân cấp có thể được sử dụng để cắt tỉa những luật không đáng quan
tâm hoặc không mang thêm một thông tin nào mới hơn so với các luật liên quan
đến mức trên của nó.
Gọi I = {i1, i2, .., in} là tập mục. G là một cây đồ thị có hướng trên các
mục của I. Một cạnh trên G đi từ p → q mô tả một quan hệ, p được gọi là cha
của q và q được gọi là con của p.
Ta sử dụng những chữ cái viết thường để ký hiệu cho các mục, các chữ
cái viết hoa để ký hiệu cho các tập mục.
x được gọi là một tổ tiên của x (x được gọi là con cháu của x ) nếu có
một cạnh đi từ x đến x. Lưu ý rằng, một nút của G không được coi là tổ tiên của
chính nó.
Gọi D là cơ sở dữ liệu giao dịch, trong đó mỗi giao dịch T là một tập các
mục, T ⊆ I. Ta nói rằng, giao dịch T hỗ trợ cho mục x ∈ I nếu x có mặt trong T
hoặc x là một tổ tiên của một số mục trong T. Một giao dịch T hỗ trợ một tập
X ⊆ I nếu T hỗ trợ cho mỗi mục trong X.
Định nghĩa 2.15: Một luật kết hợp tổng quát là luật có dạng X ⇒ Y,
trong đó X ⊂ I, Y ⊂ I, X ∩ Y = ∅ và không có mục nào trong Y là tổ tiên của
một mục nào đó trong X.
Luật X ⇒ Y tồn tại trên D với một độ tin cậy c và một độ hỗ trợ có ý
nghĩa như định nghĩa 2.1, 2.2. Việc đưa vào thêm điều kiện không có một mục
nào trong Y là tổ tiên của một mục nào đó trong X là để tránh trường hợp xuất
hiện luật có dạng x ⇒ x , luật này luôn luôn có độ tin cậy bằng 100%.
Sở dĩ gọi luật X ⇒ Y là luật tổng quát vì cả X và Y có thể chứa các mục
ở bất kỳ mức nào của cây phân cấp G. Bài toán khai phá luật kết hợp tổng quát
thực chất cũng chỉ khai phá các luật mà độ hỗ trợ và độ tin cậy của nó lớn hơn
hoặc bằng các ngưỡng minsup và minconf tương ứng.
Gọi Pr(X) là xác suất mà tất cả các mục trong X được chứa trong một
giao dịch. Khi đó: sup(X ⇒ Y) = Pr(X ∪ Y) (2.20)
Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên
44
conf(X ⇒ Y) = Pr(Y \ X) (2.21)
Nếu tập {x, y} có độ hỗ trợ tối thiểu thì các tập{x, y }, { x , y},{ x , y }
cũng sẽ có độ hỗ trợ tối thiểu. Tuy nhiên, nếu luật x ⇒ y có độ hỗ trợ tối thiểu
và có độ tin cậy tối thiểu thì chỉ có luật x ⇒ y mới đảm bảo có cả độ hỗ trợ tối
thiểu lẫn độ tin cậy, còn các luật x ⇒ y, x ⇒ y chỉ có độ hỗ trợ tố i thiểu
nhưng chưa hẳn đã có độ tin cậy tối thiểu.
Độ hỗ trợ của một mục trong cây phân cấp G là không bằng tổng các độ
hỗ trợ của các mục con của chúng vì một số mục con có mặt trong một giao dịch
đơn. Do đó, ta không trực tiếp suy ra các luật trên các mục ở mức cao của cây
phân cấp từ các luật tại mức thấp hơn.
Các luật đáng quan tâm (Interesting rules)
Luật X ⇒ Y là không đáng quan tâm nếu sup(X ⇒ Y) ≈ sup(X) ∗ sup(Y)
và sử dụng giá trị chi-square(χ2) để ki ểm tra luật về ý nghĩa thống kê. Tuy
nhiên, điều kiện này không cắt tỉa được nhiều luật nên người ta sử dụng thông
tin trong cây phân cấp để đưa ra một điều kiện khác cho phép cắt tỉa được nhiều
luật hơn.
Gọi Z
là một tổ tiên của Z (Z và Z
là các tập mục, Z, Ι⊆Z
) nếu có thể
tạo Z
từ Z bằng cách thay thế một hoặc một số mục trong Z bởi các tổ tiên của
chúng và Z và Z
có cùng số lượng mục.
Các luật YX ⇒
, X ⇒ Y
, YX
⇒ được gọi là tổ tiên của luật X ⇒ Y.
Cho trước một tập luật, ta gọi YX
⇒ là tổ tiên đóng của X ⇒ Y nếu
không tồn tại luật X’⇒ Y’ mà X’⇒ Y’ là tổ tiên của X ⇒ Y và YX
⇒ là tổ
tiên của X’ ⇒ Y’(Tương tự áp dụng định lý này cho các luật YX ⇒
,
YX
⇒ ).
Với một luật X ⇒ Y, đặt Z = X ∪Y. Độ hỗ trợ của Z sẽ bằng độ hỗ trợ
của luật X ⇒Y. Ký hiệu ( )[ ]ZEZ Pr là độ hỗ trợ kỳ vọng của Pr(Z) trên cơ sở
Pr( Z
), trong đó Z
là tổ tiên của Z.
Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên
45
Đặt Z = {z1, z2,…, zn} và Z
= { ,,..,, 21 jzzz
zj+1,..., zn}, trong đó 1 ≤ j ≤ n, iz
là
một tổ tiên của zi. Khi đó ta định nghĩa:
[ ] )ˆPr(*
)ˆPr(
)Pr(
*...*
)ˆPr(
)Pr(*
)ˆPr(
)Pr()Pr(
2
2
1
1
ˆ Zz
z
z
z
z
zZE
j
j
Z = (2.22)
Tương tự, ký hiệu YXE ⇒ [Pr(Y \ X)] là độ tin cậy kỳ vọng của luật
X⇒Y trên cơ sở YX
⇒ . Đặt Y={y1, y2,…, yn} và { }njj yyyyY ,...,,,..., 11 +=
,
1 ≤ j ≤ n, iy
là một tổ tiên của yi. Khi đó, ta định nghĩa:
[ ] )ˆ\ˆPr(*
)ˆPr(
)Pr(
*...*
)ˆPr(
)Pr(*
)ˆPr(
)Pr()\Pr(
2
2
1
1
ˆˆ XYy
y
y
y
y
yXYE
j
j
YX =⇒ (2.23)
Chú ý rằng ( ) ( )XYXYE YX
\Pr\Prˆˆ =⇒
Ta gọi luật X ⇒ Y là R-quan tâm (R-interesting) với một tổ tiên YX
⇒
nếu sup(X ⇒ Y) lớn hơn hoặc bằng R lần độ hỗ trợ kỳ vọng trên cơ sở YX
⇒
hoặc conf(X ⇒Y) lớn hơn hoặc bằng độ tin cậy trên cơ sở YX
⇒ .
Định nghĩa 2.16: Cho một tập các luật S và một giá trị quan tâm tối thiểu
R, một luật X ⇒ Y là luật đáng quan tâm trong S nếu nó không có một tổ tiên
nào hoặc nó là một R -quan tâm với ít nhất một tổ tiên đóng trong các tổ tiên
đáng quan tâm của nó.
Phát biểu bài toán
Cho một tập cơ sở dữ liệu giao dịch D và một quan tâm tối thiểu R. Bài
toán khai phá luật kết hợp với thuộc tính phân cấp là tìm tất cả các luật kết hợp
đáng quan tâm với độ hỗ trợ lớn hơn hoặc bằng độ hỗ trợ tối thiểu minsup và độ
tin cậy lớn hơn hoặc bằng độ tin cậy tối thiểu minconf. Đối với một số ứng
dụng, người ta có thể mong muốn tìm các luật quan tâm từng phần hơn các luật
quan tâm.
Ý tưởng thuật toán
Bài toán khai phá lu ật kết hợp tổng quát được chia thành 3 nhiệm vụ sau:
- Tìm các tập mục phổ biến
Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên
46
- Sử dụng các tập mục phổ biến để sinh ra các luật
- Cắt tỉa các luật không đáng quan tâm từ luật kết xuất được
Đầu tiên, ta xác định một giao dịch T trong D có hỗ trợ cho một tập mục
X hay không? Tức là ta kiểm tra xem mỗi mục x ∈ X hoặc một số con cháu của
x có mặt hay không có mặt trong giao dịch. Nếu ta thêm tất cả các tổ tiên của
mỗi mục trong giao dịch t vào T (tạo thành một giao dịch mở rộng T’). khi đó, T
hỗ trợ cho X nếu và chỉ nếu T’ là một tập cha của X.Vì vậy, việc tìm kiếm các
luật kết hợp tổng quát trên tập các giao dịch T ∈ D sẽ chuyển sang thực hiện các
thuật toán trên tập các giao dịch mở rộng T’. Thuật toán này là một tổng quát
của thuật Apriori.
Nội dung của thuật toán
Vào: Tập dữ liệu giao dịch D, ngưỡng hỗ trợ tối thiểu minsup
Ra: Tập các tập mục phổ biến
Phương thức:
L1 = {1-itemset phổ biến}; // tập các 1-itemset phổ biến
k = 2;
while (Lk-1 ≠ φ) do
begin
Ck = các k-itemset ứng cử được sinh ra từ Lk-1;
for (tất cả các giao dịch t ∈ D) do
begin
Thêm tất cả các tổ tiên của mỗi item trong t vào t tạo thành t’;
Tăng số đếm của các tập ứng cử trong Ck mà có chứa t;
end
Lk = tất cả các tập mục ứng cử thỏa mãn độ hỗ trợ tối thiểu;
k = k + 1
end;
Answer = ∪kLk;
Cách thực hiện thuật toán này tương tự như thuật toán Apriori đã được
trình bày ở phần trên, điểm khác nhau chủ yếu so với thuật toán Apriori là thuật
toán này cần tạo ra t’ từ t và tổ tiên của các mục có trong t.
Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên
47
Luật đáng quan tâm
Cho m-itemset X = {x1, x2,…, xm} và X
= { x 1, x
2,..., x
m} là tổng quát
của X. Tập mục X
là tổng quát của X nếu attributes( X
) = attributes(X) và
∀x ∈ attributes(X), (x, I1) ∈ X và (x, I2) ∈ X
suy ra I1 ⊆ I2; I1, I2 là các khoảng
giá trị khác rỗng. Độ hỗ trợ kỳ vọng Esup của sup(X) trên cơ sở sup( X
) được
tính như sau:
{ }
{ }∏=
=
m
i i
i
x
xXsuoXE
1
sup )sup(
)sup(
*)()(
(2.24)
Tương t ự, cho Y = {y1, y2,..., yn} và { }nyyyY
,...,, 21= là tổng quát của Y. Độ
tin c ậy kỳ vọng Econf của luật X ⇒ Y dựa vào luật YX
⇒ được tính như sau:
{ }{ }∏=
⇒=⇒
n
j j
j
y
y
YXYX
1 )sup(
)sup(
*)()(
confEconf (2.25)
Một tập mục X là một R-quan tâm đ ối với X
nếu sup(X) ≥ R * Esup(X). Tương
tự, luật X ⇒Y là R-quan tâm đ ối với luật YX
⇒ nếu sup(X∪Y) ≥ R * Esup(X∪Y) và
conf(X ⇒ Y) ≥ R * Esup(X ⇒ Y).
Như vậy, trong bài toán khai phá luật kết hợp định lượng, các luật kết hợp
được sinh ra dựa vào độ hỗ trợ kỳ vọng và độ tin cậy kỳ vọng với độ quan tâm
R được chỉ ra bởi người sử dụng.
Thuật toán phát hiện tập mục phổ biến
Việc ánh xạ tập thuộc tính định lượng trong CSDL gốc sang thuộc tính
Bboolean nhằm mục đích có thể sử dụng các thuật toán khai phá luật kết hợp
Bboolean để phát hiện các luật kết hợp định lượng. Sau đây là một nhiệm vụ
quan trọng mà thuật toán cần giải quyết:
Thủ tục sinh ra tập ứng cử:
Dựa vào tập Lk-1, thủ tục sinh ra các k-itemset ứng cử gồm có 3 pha:
Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên
48
(1) Pha kết nối: Lk-1 sẽ được kết nối với chính nó để tạo ra các k-itemset,
điều kiện kết nối là (k-2) item đầu tiên là giống nhau và 2 item sau là khác nhau.
(2) Pha cắt tỉa dựa vào (k -1)-subset: Với bất kỳ một tập mục nào được
sinh ra từ pha kết nối mà tồn tại một (k-1)-subset không thu ộc Lk-1 thì s ẽ bị loại bỏ.
(3) Pha cắt tỉa dựa vào độ quan tâm: Cho trước một mức quan tâm (cho
bởi người dùng), để xác định được các tập mục có độ hỗ trợ và độ tin cậy lớn
hơn giá trị kỳ vọng ta sử dụng mức quan tâm để cắt tỉa các tập mục ứng không
cần thiết.
Tính độ hỗ trợ cho các tập ứng cử
Với mộ t b ản ghi t, mộ t tập các mục ứng cử C, tìm tất cả các tập mục
trong C được hỗ trợ bởi t.
Trước tiên, người ta phân các tập mục ứng cử vào các nhóm sao cho các
tập mục ứng cử trong mỗi nhóm có cùng thuộc tính phân loại. Mỗi nhóm lập
thành một “tập cha ứng cử” (super-candidate), trong đó, mỗi “tập cha ứng c ử”
gồm có 2 phần.
- Phần thứ nhất là các thuộc tính phân loại chung.
- Phần thứ hai là một cấu trúc dữ liệu biểu diễn tập các giá rị của thuộc
tính số.
Khi đó nhi ệm vụ đếm độ hỗ trợ cho tập ứng cử được thực hiện qua 2 bước:
(1) Tìm “tập cha ứng cử” được hỗ trợ bởi các thuộc tính phân loại trong
bản ghi. Ta sử dụng cấu trúc dữ liệu cây băm để giảm bớt số lượng các “tập cha
ứng cử” cần phải kiểm tra đối với một bản ghi.
(2) Thuộc tính phân loại của “tập cha ứng cử” được hỗ trợ bởi một bản
ghi cho trước, nên cần phải tìm các tập mục ứng cử nào trong “tập cha ứng cử”
là được hỗ trợ. Lưu ý các tập mục ứng cử trong một “ tập cha ứng cử” có cùng
các giá trị đối với thuộc tính phân loại, nhưng có các giá trị khác nhau đối với
thuộc tính số.
Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên
49
2.5. Kết luận chương 2
Trong chương 2 trình bày tổng quan về luật kết hợp, các định nghĩa, tính
chất liên quan đến luật kết hợp: độ hỗ trợ, độ tin cậy, tập mục phổ biến, phát
biểu bài toán khai phá luật kết hợp.
Khai phá luật kết hợp trong CSDL có thể chia thành hai bài toán con:
(1) Tìm tất cả các tập mục phổ biến từ CSDL. (2) Sinh ra các luật từ các tập mục
phổ biến. Trong chương này trình bày một số thuật toán cơ bản phát hiện tập
mục phổ biến, phát hiện luật kết hợp từ các tập mục phổ biến nhằm làm tiền đề
cho các nghiên cứu sau này như cải tiến thuật toán, thuật toán song song . Ngoài
ra trong chương này còn trình bày một số hướng tiếp cận trong khai phá luật kết
hợp như khai phá luật kết hợp trọng số; khai phá luật kết hợp tổng quát; khai
phá luật kết hợp định lượng.
Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên
50
Chương 3
MỘT SỐ PHƯƠNG PHÁP KHAI PHÁ LUẬT KẾT HỢP
SONG SONG VÀ PH ÂN T ÍCH Đ ÁNH GI Á CÁC THUẬT TOÁN
3.1. Nguyên lý thiết kế thuật toán song song
Những thuật toán, trong đó có một số thao tác có thể thực hiện đồng thời
được gọi là thuật toán song song. Tổng quát hơn, thuật toán song song là một
các tập tiến trình hoặc các tác vụ có thể thực hiện đồng thời và có thể trao đổi dữ
liệu với nhau để kết hợp cùng giải một bài toán đặt ra [1].
Có năm nguyên lý chính trong việc thiết kế thuật toán song song:
1. Các nguyên lý lập lịch: Giảm thiểu các bộ xử lý sử dụng trong thuật
toán sao cho thời gian tính toán không tăng (xét theo khía cạnh độ phức tạp).
2. Nguyên lý hình ống: Nguyên lý này được áp dụng khi bài toán xuất hiện
một dãy các thao tác {T1, T2,…, Tn}, trong đó Ti+1 thực hiện sau khi Ti kết thúc.
3. Nguyên lý chia để trị: Chia bài toán thành những phần nhỏ hơn,
tương đối độc lập với nhau và giải quyết chúng một cách song song.
4. Nguyên lý đồ thị phụ thuộc dữ liệu: Phân tích mối quan hệ dữ liệu
trong tính toán để xây dựng đồ thị phụ thuộc dữ liệu và dựa vào đó để xây dựng
thuật toán song song.
5. Nguyên lý điều khiển tranh đua: Nếu hai tiến trình cùng muốn truy
cập vào cùng một dữ liệu thì chúng phải tương tranh với nhau, nghĩa là chúng
có thể cản trở lẫn nhau.
Ngoài ra, khi thi ết kế thuật toán song song cần quan tâm đến các vấn đề sau:
- Hiệu quả thực hiện của thuật toán song song có thể rất khác nhau, mà
yếu tố quan trọng nhất ảnh hưởng tới độ phức tạp tính toán là cấu hình tôpô liên
kết mạng của các đơn vị xử lý.
- Thuật toán song song phải được thiết kế dựa trên những kiến thức về kiến trúc
máy tính, ngôn ng ữ lập trình song song và các phương pháp tính toán.
Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên
51
3.2. Hư ớng tiếp cận chính trong thiết kế thuật toán khai phá luật kết hợp song song
Hai hư ớng tiếp cận chính trong thi ết kế thuật toán khai phá luật kết hợp song song
đó là: (1) Mô h ình song song d ữ liệu và (2) Mô hình song song thao tác.
3.2.1. Mô hình song song dữ liệu
Hình 3.1. Mô hình song song dữ liệu
Mô hình song song dữ liệu thực thi thao tác gi ống nhau hay thực thi chỉ
lệnh trên một tập con dữ liệu cùng một thời điểm. Tất cả các bộ xử lý thực hiện
chương trình giống nhau. Tuy nhiên, trong chương trình này, ta có thể s ử dụng
cấu trúc điều khiển if – then – else để chỉ định lệnh nào được thực thi với bộ xử
lý nào, tức là một số phần ch ương trình chỉ được thực hiện trên một hoặc một
vài bộ xử lý.
Trong mô hình song song dữ liệu, dữ liệu cần phải phân chia thành các
tập con dữ liệu để tăng tốc đạt được bằng cách giảm khối lượng dữ liệu cần
được xử lý trên mỗi bộ xử lý.
Thuật toán được thiết kế dựa vào mô hình song song d ữ liệu dễ dàng thực thi, ít
phụ thuộc vào kiến trúc máy tính song song và năng suất cao. Tuy nhiên, nó cũng gặp
khó khăn trong vi ệc cân bằng tải công việc do sự chênh lệch dữ liệu.
3.2.2. Mô hình song song thao tác
Trong mô hình song song thao tác, mỗi bộ xử lý thực thi tập chỉ thị khác
nhau. Các chương trình phối hợp với nhau để hoàn thành cùng một mục tiêu. Ý
tưởng của mô hình song song giao tác là giảm độ phức tạp giao tác bằng cách
chia thao tác thành các thao tác nhỏ hơn để thực thi.
Tập dữ liệu hoạt động trong mỗi chương trình không nhất thiết giống nhau.
Thao tác
1
Thao tác 1 Tập con DL 1.1
Thao tác n Tập con DL 1.n
Bộ xử lý n
Bộ xử lý 1
Thao tác 1 Tập con DL 1.1
Thao tác n Tập con DL 1.n
Bộ xử lý 1
Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên
52
Hình 3.2. Mô hình song song thao tác
Các thuật toán song song được thiết kế dựa vào mô hình song song thao
tác có độ phức tạp tính toán nhỏ hơn so với các thuật toán tuần tự do thao tác
được chia thành những thao tác nhỏ hơn để dễ xử lý. Tuy nhiên, việc thực thi
các thuật toán này lại phụ thuộc vào kiến trúc máy tính song song và mang tính
chuyên dụng.
3.3. Một số thuật toán khai phá luật kết hợp song song
3.3.1 Thuật toán Count Distribution (CD)
Thuật toán sử dụng kiến trúc không chia sẻ, mỗi bộ xử lý có một bộ xử lý
chính và bộ nhớ phụ riêng. Các bộ xử lý này được kết nối với nhau bởi một
mạng truyền thông và có thể được truyền thông tin cho nhau bằng việc truyền
thông điệp. Dựa trên mô hình song song dữ liệu, dữ liệu được phân hoạch cho
các bộ xử lý, mỗi bộ xử lý thực thi công việc giống như thuật toán Apriori tuần
tự nhưng thông tin bởi các bộ xử lý trên các phân hoạch dữ liệu của nó. Số đếm
hỗ trợ tổng thể được thiết lập thông qua môi trường truyền thông điệp MPI.
Các kí hiệu sử dụng trong thuật toán
I: Tập các mục phân biệt trong CSDL giao dịch D
D1, D2,…, Dp: Các phân hoạch CSDL, p là số các bộ xử lý
All reduce
P1 P2 P3
Phân hoạch 1 Phân hoạch 2 Phân hoạch 3
Hình 3.3. Sơ đồ thuật toán Count Distribution
Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên
53
minsup: Độ hỗ trợ tối thiểu
L: Tập các tập mục phổ biến
Nội dung thuật toán:
Dữ liệu vào: I, minsup, D1, D2,..., Dp
Ra: L
Phương pháp:
C1 = I;
for (k=1; Ck ≠ φ; k++) do begin
// bước 1: Tính các số đếm hỗ trợ cục bộ
count(Ck, Di); // bộ xử lý thứ i
// bước 2: Trao đổi các số đếm hỗ trợ với các bộ xử lý khác để
// thu được các số đếm hỗ trợ trong D
forall tập mục X ∈ Ck do begin
X.count = ∑
=
p
j
j countX
1
. ;
end;
// bước 3: Xác định các tập mục phổ biến và sinh các tập mục
// ứng viên Ck+1
Lk = {c c∈ Ck |c,count ≥ minsup *| D ∪ D2 ∪…∪Dp};
Ck+1 = apriori_gen(Lk);
end;
return L = L ∪ L2 ∪…∪ Lk;
Giải thích thuật toán
Trong thu ật toán CD,CSDL D được phân hoạch thành {D1, D2,…, Dp} và phân
bố lần lượt cho các bộ xử lý Pi (1 ≤ i ≤ p). Thu ật toán gồm 3 bước cơ bản sau:
Bước 1: Mỗi bộ xử lý Pi quét phân hoạch CSDL cụ bộ D i để tính các số
đếm hỗ trợ cục bộ cho các tập mục ứng cử Ck.
Bước 2: Mỗi bộ xử lý trao đổi các số đếm hỗ trợ cục bộ của các tập mục
ứng cử trong CSDL D bằng cách sử dụng lệnh MPI_Allreduce trong MPI.
Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên
54
Bước 3: Các tập mục phổ biến tổng thể Lk được xác định dựa vào ngưỡng
hỗ trợ minsup và các tập mục ứng cử Ck+1 được sinh ra từ Lk bằng cách áp dụng
thuật toán apriori_gen() trên mỗi bộ xử lý một cách độc lập. Thuật toán CD lặp
lại bước 1 → 3 cho đến khi không còn tập mục ứng cử nào được sinh ra.
Ví dụ: Cho CSDL giao dịch D, minsup = 33%. Phân hoạch D cho 3 bộ xử
lý P0, P1 và P2, mỗi bộ xử lý có hai giao dịch (bảng a), k chỉ số vòng lặp.
Hình 3.4. Phát hiện các tập mục phổ biến bởi thuật toán song song CD
3.3.2. Thuật toán Data Distribution (DD)
Trong thuật toán DD, CSDL D được phân hoạch thành {D 1, D2,…, Dp}
nên mỗi bộ xử lý làm việc với một tập dữ liệu không đầy đủ, do đó việc trao đổi
dữ liệu giữa các bộ xử lý là cần thiết. Ngoài ra, các tập mục ứng cử cũng được
phân hoạch và phân bố cho tất cả các bộ xử lý, mỗi bộ xử lý làm việc với tập
mục ứng cử Ci khác nhau.
(a) Phân hoạch CSDL
TID Items Số bộ xử lý
1 fdbe P0 2 feb
3 adb P1 4 aefc
5 ade P2 6 acfe
(b) Bước 1, 2 với k = 1
Item
Số đếm cục bộ Số đếm
tổng
thể P0 P1 P2
a 0 2 2 4
b 2 1 0 3
c 0 1 1 2
d 1 1 1 3
e 2 1 2 5
f 2 1 1 4
(c) Bước 3 với k = 1 và bước 1,2 với k=2
2-itemset
Số đếm cục bộ Số đếm
tổng
thể P0 P1 P2
ab 0 1 0 1
ac 0 1 1 2
ad 0 1 1 2
ae 0 1 2 3
af 0 1 1 2
bc 0 0 0 0
bd 1 1 0 2
Các file đính kèm theo tài liệu này:
- Luận văn-Khai phá dữ liệu và thuật toán khai phá luật kết hợp song song.pdf