Số hóa bởi Trung tâm Học liệu http://www.lrc-tnu.edu.vn/2.3.2 Một số thuật toán khai phá tập mục lợi ích cao dựa trên cây tiền tố .... Một câu hỏi nghiên cứu đặt ra là: “Có thể tìm được
Trang 1Số húa bởi Trung tõm Học liệu http://www.lrc-tnu.edu.vn/
đại học thái nguyên
Tr-ờng đại học CÔNG NGHệ THÔNG TIN Và TRUYềN
Trang 2Số húa bởi Trung tõm Học liệu http://www.lrc-tnu.edu.vn/
đại học thái nguyên
Tr-ờng đại học CÔNG NGHệ THÔNG TIN Và TRUYềN
LUẬN VĂN THẠC SĨ KHOA HỌC MÁY TÍNH
Chuyờn ngành: KHOA HỌC MÁY TÍNH
Mó số: 60 48 01
Người hướng dẫn khoa học: TS Lấ VĂN PHÙNG
Thỏi Nguyờn, 2014
Trang 3Số hóa bởi Trung tâm Học liệu http://www.lrc-tnu.edu.vn/
LỜI CAM ĐOAN
Tôi xin cam đoan Luận văn "Khai phá tập mục lợi ích cao dựa trên cấu
trúc cây tiền tố" đã được thực hiện theo đúng mục tiêu đề ra dưới sự hướng dẫn của
TS Lê Văn Phùng Kết quả đạt được trong luận văn là sản phẩm của cá nhân tôi Trong toàn bộ luận văn, những điều được trình bày là của cá nhân và là được tổng hợp từ nhiều nguồn tài liệu Tất cả các tài liệu tham khảo đều có xuất xứ rõ ràng và được trích dẫn hợp pháp
Tôi xin chịu hoàn toàn trách nhiệm và chịu mọi hình thức kỷ luật theo quy định cho lời cam đoan của mình
Thái Nguyên, ngày 29 tháng 9 năm 2014
Người cam đoan
Trang 4Số hóa bởi Trung tâm Học liệu http://www.lrc-tnu.edu.vn/
LỜI CẢM ƠN
Lời đầu tiên tôi xin gửi lời cảm ơn chân thành và biết ơn sâu sắc tới TS Lê Văn Phùng – Trường Đại học công nghệ Thông tin và Truyền thông, Thầy đã chỉ bảo và hướng dẫn tận tình cho tôi trong suốt quá trình làm việc và thực hiện luận văn này
Tôi xin chân thành cảm ơn sự dạy bảo, giúp đỡ, tạo điều kiện và khuyến khích tôi trong quá trình học tập và nghiên cứu của các thầy cô giáo của Viện Công nghệ thông tin, Trường Đại học Công nghệ thông tin và Truyền thông - Đại học Thái Nguyên
Và cuối cùng, tôi xin gửi lời cảm ơn tới gia đình, người thân và bạn bè, những người luôn ở bên tôi những lúc khó khăn nhất, luôn động viên tôi, khuyến khích tôi trong cuộc sống và trong công việc
Tôi xin chân thành cảm ơn!
Thái Nguyên, ngày 29 tháng 9 năm 2014
Tác giả
Nguyễn Thị Luyến
Trang 5
Số hóa bởi Trung tâm Học liệu http://www.lrc-tnu.edu.vn/
MỤC LỤC
LỜI CAM ĐOAN i
LỜI CẢM ƠN iv
DANH MỤC CÁC HÌNH VẼ vii
DANH MỤC CÁC BẢNG viii
DANH MỤC CÁC KÝ HIỆU ix
DANH MỤC CHỮ VIẾT TẮT x
MỞ ĐẦU 1
CHƯƠNG 1:TỔNG QUAN VỀ KHAI PHÁ DỮ LIỆU 3
1.1 Quá trình khám phá tri thức 3
1.1.1 Khái niệm về quá trình khám phá tri thức và khai phá dữ liệu 3
1.1.2 Kiến trúc về một số hệ thống khai phá dữ liệu 5
1.1.3 Một số ứng dụng của khai phá dữ liệu 6
1.2 Một số phương pháp khai phá dữ liệu thông dụng 7
1.2.1 Phương pháp luật kết hợp 7
1.2.2 Phương pháp cây quyết định 8
1.3 Kết luận chương 1 12
CHƯƠNG 2: KHAI PHÁ TẬP MỤC THƯỜNG XUYÊN VÀ TẬP MỤC LỢI ÍCH CAO 13
2.1 Khai phá tập mục thường xuyên 13
2.1.1 Cơ sở dữ liệu giao tác 13
2.1.2 Tập mục thường xuyên và luật kết hợp 15
2.1.3 Bài toán khai phá luật kết hợp và một số thuật toán về khai phá tập mục thường xuyên 17
2.2 Bài toán Khai phá tập mục lợi ích cao 29
2.2.1 Khái niệm về tập mục lợi ích cao 29
2.2.2 Một số bài toán khai phá tập mục lợi ích cao 29
2.3 Khai phá tập mục lợi ích cao dựa trên cây tiền tố 34
2.3.1 Định nghĩa cây tiền tố 34
Trang 6Số hóa bởi Trung tâm Học liệu http://www.lrc-tnu.edu.vn/
2.3.2 Một số thuật toán khai phá tập mục lợi ích cao dựa trên cây tiền tố 35
2.3.3 Các cấu trúc cây tiền tố cho khai phá lợi ích cao 56
2.3.4 Thuật toán UP-Growth 59
2.4 Kết luận chương 2 62
CHƯƠNG 3: THỰC NGHIỆM KHAI PHÁ TẬP MỤC LỢI ÍCH CAO DỰA TRÊN CẤU TRÚC CÂY TIỀN TỐ 63
3.1 Bài toán phát hiện nhóm các mặt hàng có lợi nhuận cao 63
3.2 Mô tả dữ liệu 63
3.3 Xây dựng chương trình 70
3.4 Thực nghiệm khai phá tìm tập mục lợi ích cao 71
3.5 Kết luận chương 3 72
KẾT LUẬN 73
1 Những kết quả chính của luận văn 73
2 Hướng nghiên cứu tiếp theo 73
TÀI LIỆU THAM KHẢO 74
A Tiếng việt 74
B Tiếng Anh 74
Trang 7Số hóa bởi Trung tâm Học liệu http://www.lrc-tnu.edu.vn/
DANH MỤC CÁC HÌNH VẼ
Hình 1.1 Các bước trong Data Mining và KDD 5
Hình 1.2 Kiến trúc của một hệ thống khai phá dữ liệu 5
Hình 1.3 Luồng thông tin được sử dụng theo cách kết hợp 8
Hình 1.4 Cây quyết định về khái niệm mua máy tính 9
Hình 1.5 Cây quyết định phân lớp (bad/good) mức lương 11
Hình 1.6 Các bước thực hiện thuật toán K-Mean 12
Hình 2.1 Cây FP-tree của CSDL bảng 2.5 27
Hình 2.2 Cây COFI-tree của mục D 27
Hình 2.3 Minh họa các bước khai phá cây D-COFI-tree 28
Hình 2.4 Cây TWUI-tree sau khi lưu giao tác T1 39
Hình 2.5 Cây TWUI-tree sau khi lưu giao tác T1 và T2 39
Hình 2.6 Cây TWUI-tree của CSDL bảng 2.9 và bảng 2.10 40
Hình 2.7 Cây C-COUI-tree sau khi lưu mẫu CBE 42
Hình 2.8 Cây C-COUI-tree sau khi lưu mẫu CBE và CE 43
Hình 2.9 Cây C-COUI-tree sau khi xây dựng xong 43
Hình 2.10 Cây D-COUI-tree 43
Hình 2.11 Cây B-COUI-tree 44
Hình 2.12 Các bước khai phá cây D-COUI-Tree 45
Hình 2.13 Không gian tìm kiếm tập mục lợi ích cao theo thuật toán Hai pha 56
Hình 2.14 Cây TWUI-tree có các mục dữ liệu sắp tăng dần theo trật tự từ điển của cơ sở dữ liệu bảng 2.9 và bảng 2.10 57
Hình 2.15 Cây TWUI-tree có các mục dữ liệu sắp giảm dần theo số lần xuất hiện của chúng trong cơ sở dữ liệu bảng 2.9 và bảng 2.10 57
Hình 2.16 Cây TWUI-tree có các mục dữ liệu sắp giảm dần theo TWU của chúng trong cơ sở dữ liệu bảng 2.9 và bảng 2.10 58
Hình 2.17 Cây TWUI-treecủa CSDL bảng 2.8 với minutil = 40 62
Hình 2.18 Cây UP-tree của CSDL bảng 2.8 với minutil = 40 62
Hình 3.1 Tệp CSDL.txt biểu diễn dữ liệu đầu vào 70
Hình 3.2 Giao diện chính của chương trình 71
Hình 3.3 Tập các mục lợi ích cao 72
Trang 8Số hóa bởi Trung tâm Học liệu http://www.lrc-tnu.edu.vn/
DANH MỤC CÁC BẢNG
Bảng 1.1: Tập dữ liệu huấn luyện quyết định phân lớp mức lương 10
Bảng 2.1: Biểu diễn ngang của cơ sở dữ liệu giao tác 14
Bảng 2.2: Biểu diễn dọc của cơ sở dữ liệu giao tác 14
Bảng 2.3: Ma trận giao tác của cơ sở dữ liệu cho ở bảng 2.1 15
Bảng 2.4: Cơ sở dữ liệu giao tác minh họa thực hiện thuật toán Apriori 21
Bảng 2.5: CSDL giao tác minh họa thực hiện thuật toán COFI-tree 25
Bảng 2.6: Các mục dữ liệu và độ hỗ trợ 25
Bảng 2.7: Các mục dữ liệu thường xuyên đã sắp thứ tự 25
Bảng 2.8: Các mục DL trong giao tác sắp xếp giảm dần theo độ hỗ trợ 26
Bảng 2.9 CSDL giao tác 32
Bảng 2.10 Bảng lợi ích 32
Bảng 2.11: Lợi ích các giao tác của cơ sở dữ liệu bảng 2.9 và bảng 2.10 37
Bảng 2.12: Lợi ích TWU của các mục dữ liệu 37
Bảng 2.13: Các mục dữ liệu có lợ 38
Bảng 2.14 Các mục dữ liệu trong giao tác sắp giảm dần theo lợi ích TWU 38
Bảng 2.15 Kết quả tính lợi ích của các tập mục ứng viên 46
Bảng 2.16: Cơ sở dữ liệu ví dụ cho thuật toán UP-Growth 60
Bảng 2.17: Bảng lợi ích của CSDL bảng 2.15 61
Bảng 2.18: Các giao tác được sắp lại các mục dữ liệu theo TWU giảm dần 61
Bảng 3.1 Dữ liệu đã trích chọn để khai phá 65
Bảng 3.2 Mã hóa các mặt hàng 68
Bảng 3.3 Bảng lợi ích các mặt hàng 69
Trang 9Số hóa bởi Trung tâm Học liệu http://www.lrc-tnu.edu.vn/
DANH MỤC CÁC KÝ HIỆU
X : Số phần tử của tập hợp X
A, B, C,…: Tên các mục dữ liệu trong cơ sở dữ liệu giao tác ví dụ
Conf(X->Y): Độ tin cậy của một luật X->Y
db DB : db là cơ sở dữ liệu giao tác con của DB
DB = {T1, T2,…, Tm}: Cơ sở dữ liệu có m giao tác
I = {i1, i2,…, in}: Tập n mục dữ liệu
Ip: Mục dữ liệu thứ p
m: Số giao tác một cơ sở dữ liệu giao tác
Minconf: Độ tin cậy tối thiểu
minShare: Ngƣỡng cổ phần tối thiểu
minsup: Ngƣỡng độ hỗ trợ tối thiểu
minutil: Ngƣỡng lợi ích tối thiểu
n: Số mục dữ liệu một cơ sở dữ liệu giao tác
Nếu X Y thì X gọi là tập con của tập Y, Y gọi là tập cha của tập X
P(Y/X): Xác suất có điều kiện (độ tin cậy của luật Y->X)
P(Y/X): Xác suất có điều kiện (độ tin cậy của luật kết hợp X->Y)
Sup(X): Tỷ lệ % của giao tác chứa tập X
Tq: Giao tác thứ q
U(X): Lợi ích của tập mục trong CSDL DB
X = ABC thay cho X = {A, B, C} trong các cơ sở dữ liệu giao tác ví dụ
X, Y,…: Tập con của tập mục dữ liệu I, X, Y I
Trang 10
Số hóa bởi Trung tâm Học liệu http://www.lrc-tnu.edu.vn/
DANH MỤC CHỮ VIẾT TẮT
TWU Transaction Weighted Utility Tập mục ràng buộc lợi ích theo giao tác TWUI-tree Transaction Weighted Utility
tree
Là một cấu trúc cây tiền tố
KDD Knowledge Discovery from Data Phát hiện tri thức từ dữ liệu
Trang 111
Số hóa bởi Trung tâm Học liệu http://www.lrc-tnu.edu.vn/
MỞ ĐẦU
Ngày nay, sự phát triển không ngừng ứng dụng công nghệ thông tin (CNTT)
và truyền thông vào nhiều lĩnh vực đời sống, văn hóa, xã hội, quản lý kinh tế, khoa học kỹ thuật, đã tạo ra nhiều cơ sở dữ liệu (CSDL) mới có quy mô lớn Để khai thác hiệu quả nguồn thông tin dữ liệu lớn đó nhằm hỗ trợ tiến trình ra quyết định, người ta đã nghiên cứu một khuynh hướng kỹ thuật mới là Kỹ thuật Khai phá dữ liệu bên cạnh các phương pháp khai thác thông tin truyền thống
Khai phá dữ liệu và khám phá tri thức (Data Mining and knowledge discovery)
là một lĩnh vực quan trọng của ngành Công nghệ thông tin Đây là lĩnh vực đã thu hút đông đảo các nhà khoa học trên thế giới và trong nước tham gia nghiên cứu Khai phá tập mục thường xuyên được biết đến như một bài toán con của khai phá luật kết hợp được giới thiệu bởi Agrawal vào năm 1993 khi phân tích CSDL bán hàng của siêu thị, phân tích sở thích mua của khách hàng bằng cách tìm ra những mặt hàng khác nhau được khách hàng mua trong cùng một lần mua Những thông tin như vậy giúp người quản lý kinh doanh tiếp thị chọn lọc và thu xếp không gian bày hàng hợp lý hơn, giúp cho việc kinh doanh hiệu quả hơn
Mô hình khai phá tập mục thường xuyên cơ bản có nhiều ứng dụng trong thực tế bên cạnh đó còn có những hạn chế, không đáp ứng được nhu cầu của người sử dụng
Để đáp ứng yêu cầu của thực tiễn, khai phá tập mục thường xuyên đã có nhiều cách thức mở rộng và ứng dụng, từ thay đổi phương pháp luận đến thay đổi đa dạng các kiểu dữ liệu, mở rộng các nhiệm vụ khai phá và đa dạng các ứng dụng mới Trong những năm qua, đã có nhiều hướng mở rộng bài toán được quan tâm nghiên cứu Một trong những hướng đó là bài toán khai phá tập mục lợi ích cao, đánh giá lợi ích mà tập mục dữ liệu mang lại trong CSDL
Khai phá tập mục lợi ích cao thực sự là một lĩnh vực đang thu hút nhiều nhà nghiên cứu và doanh nghiệp quan tâm
Khai phá tập mục lợi ích cao là sự mở rộng, tổng quát hóa của khai phá tập mục cổ phần cao Mô hình khai phá tập mục lợi ích cao được Yao và cộng sự đề xuất (Hong Yao và Hamilton, 2006; H Yao, Hamilton và Butz, 2004) [6], [12] Trong mô hình khai phá tập mục lợi ích cao, giá trị của mục dữ liệu trong giao tác là một số (như số lượng đá bán của mặt hàng), gọi là giá trị khách quan; ngoài ra còn có bảng lợi ích cho biết lợi ích mang lại khi bán một đơn vị hàng đó (gọi là giá
Trang 12Số hóa bởi Trung tâm Học liệu http://www.lrc-tnu.edu.vn/
trị chủ quan, do người quản lý kinh doanh xác định) Lợi ích của một tập mục là số
đo lợi nhuận mà tập mục đó đóng góp trong CSDL, nó có thể là tổng lợi nhuận, là tổng chi phí của tập mục Khai phá tập mục lợi ích cao là khám phá tất cả các tập mục lợi ích không nhỏ hơn ngưỡng lợi ích tối thiểu quy định bởi người sử dụng Như vậy, trong quá trình sử dụng và khai thác thông tin người ta nhận thấy rằng có rất nhiều tri thức còn tiềm ẩn trong dữ liệu Vấn đề đặt ra là làm thế nào để khai thác được thông tin và khai thác một cách có hiệu quả
Một câu hỏi nghiên cứu đặt ra là: “Có thể tìm được dạng biểu diễn nhỏ gọn và không mất thông tin của các tập mục lợi ích cao trong khai phá tập mục lợi ích cao không ?”
Với mục đích tìm hiểu bài toán tập mục lợi ích cao và các thuật toán khai phá
dựa trên cấu trúc cây tiền tố, em đã chọn đề tài “Khai phá tập mục lợi ích cao dựa trên cấu trúc cây tiền tố” làm luận văn cao học của mình Trong đó tìm hiểu vận
dụng kiến thức sưu tập được vào giải quyết bài toán về khai phá tập mục lợi ích cao dựa trên cấu trúc cây đặc biệt là cây “tiền tố”
Nội dung luận văn gồm 3 chương:
Chương I: Tổng quan về khai phá dữ liệu
Chương II: Khai phá tập mục thường xuyên và tập mục lợi ích cao
Chương III: Thực nghiệm khai phá tập mục lợi ích cao dựa trên cấu trúc cây
tiền tố
Trang 13Số hóa bởi Trung tâm Học liệu http://www.lrc-tnu.edu.vn/
CHƯƠNG 1 TỔNG QUAN VỀ KHAI PHÁ DỮ LIỆU 1.1 Quá trình khám phá tri thức
1.1.1 Khái niệm về quá trình khám phá tri thức và khai phá dữ liệu
Theo bách khoa toàn thư, khai phá dữ liệu (Data Mining- DM) là khâu chủ yếu
trong quá trình phát hiện tri thức từ dữ liệu để trợ giúp cho việc làm quyết định trong quản lý DM sử dụng nhiều phương pháp của phân tích thống kê, của lý thuyết nhận dạng, của các hệ học, các mạng nơ-ron nhân tạo,… nhằm phát hiện các mẫu hình tri thức trực tiếp từ các kho dữ liệu DM và phát hiện tri thức là những hướng ngiên cứu mới trong tổ chức và khai thác các hệ thống thông tin và trợ giúp quyết định
Thuật ngữ DM do Fayyad Smyth và Piatestky-Shapiro đề xuất năm 1989 Có rất nhiều định nghĩa khác nhau về DM đã được đưa ra Theo nghĩa đơn giản nhất,
DM là việc trích lọc tri thức từ một lượng lớn dữ liệu Nó còn có một tên gọi khác
“trích chọn tri thức”, “phân tích dữ liệu/mẫu”, “khảo cổ dữ liệu”, “nạo vét dữ liệu”
Giáo sư Tom Mitchell đưa ra định nghĩa về DM như sau: “DM là việc sử dụng
dữ liệu lịch sử để khám phá những quy tắc và cải thiện những quyết định trong tương lai” Với một cách tiếp cận thực tế hơn, tiến sĩ Fayyad đã phát biểu:: “DM thường được xem là việc khám phá tri thức trong các CSDL, là một quá trình trích xuất những thông tin tiềm ẩn, trước đây chưa biết và có khả năng là hữu ích, dưới dạng các quy luật, ràn buộc, quy tắc trong CSDL” Các nhà thống kê thì xem “DM như là một quá trình phân tích được thiết kế thăm dò một lượng cực lớn các dữ liệu nhằm phát hiện ra các mẫu thích hợp và/ hoặc các mối liên hệ mang tính hệ thống giữa các biến và sau đó sẽ hợp thức hóa các kết quả tìm được bằng cách áp dụng các mẫu đã phát hiện được cho tập con mới của dữ liệu”[3]
Nói chung, DM là cốt lõi của quá trình phát hiện tri thức Nó gồm có các giải thuật DM chuyên dụng, một số quy định về hiệu quả tính toán chấp nhận được DM nhằm tìm ra những mâu thuẫn mới, mẫu có tính chất không tầm thường, những thông tin tiềm ẩn mang tính dự đoán chưa được biết đến và có khả năng mang lại
Trang 14Số hóa bởi Trung tâm Học liệu http://www.lrc-tnu.edu.vn/
ích lợi Nói ngắn gọn hơn, DM là việc tìm kiếm các kiến thức, các mẫu hấp dẫn trong kho dữ liệu
DM là hoạt động trọng tâm của quá trình khai phá tri thức Quá trình phát hiện tri thức gồm các bước [1], [4]:
Bước 1 - Trích chọn dữ liệu (data selection): Là bước trích chọn những tập
dữ liệu cần được khai phá từ các tập dữ liệu lớn (databases, data ware houses)
Bước 2 - Tiền xử lý dữ liệu (data preprocessing): Là bước làm sạch dữ liệu
(xử lý dữ liệu không đầy đủ, dữ liệu nhiễu, dữ liệu không nhất quán,…), rút gọn dữ liệu (sử dụng các phương pháp thu gọn dữ liệu, histograms, lấy mẫu…), rời rạc hóa
dữ liệu (dựa vào histograms, entropy, phân khoảng, ) Sau bước này, dữ liệu sẽ nhất quán, đầy đủ, được rút gọn và được rời rạc hóa
Bước 3 - Biến đổi dữ liệu (data transformation): Là bước chuẩn hóa và làm
mịn dữ liệu để đưa dữ liệu về dạng thuận lợi nhất nhằm phục vụ cho các kỹ thuật khai thác ở bước sau
Bước 4 - Khai phá dữ liệu (data mining): Đây là bước quan trọng và tốn
nhiều thời gian nhất của quá trình khám phá tri thức, áp dụng các kỹ thuật khai phá (phần lớn là các kỹ thuật của machine learning) để khai phá, trích chọn được các mẫu (pattern) thông tin, các mối liên hệ đặc biệt trong dữ liệu
Bước 5 - Đánh giá và biểu diễn tri thức (knowledge representation & evaluation): Dùng các kỹ thuật hiển thị dữ liệu để trình bày các mẫu thông tin (tri thức)
và mối liên hệ đặc biệt trong dữ liệu đã được khai thác ở bước trên biểu diễn theo dạng gần gũi với người sử dụng như đồ thị, cây, bảng biểu, luật,… Đồng thời bước này cũng đánh giá những tri thức khám phá được theo những tiêu chí nhất định
Trong giai đoạn khai phá dữ liệu, có thể cần sự tương tác của người dùng để điều chỉnh và rút ra các tri thức cần thiết nhất Các tri thức nhận được cũng có thể được lưu và sử dụng lại
Trang 15Số hóa bởi Trung tâm Học liệu http://www.lrc-tnu.edu.vn/
Hình 1.1 Các bước trong Data Mining và KDD
DM có thể được tiến hành trên một lượng lớn dữ liệu có trong CSDL, các kho
dữ liệu hoặc trong các loại lưu trữ thông tin khác
Các mẫu đáng quan tâm có thể được đưa đến người dùng hoặc được lưu trữ trong một cơ sở tri thức
1.1.2 Kiến trúc về một số hệ thống khai phá dữ liệu
Hình 1.2: Kiến trúc của một hệ thống khai phá dữ liệu
Giao diện đồ họa cho người dùng
(Graphical user
interface)
Đánh giá mẫu (Pattern evaluation)
Máy khai phá dữ liệu (Data mining engine)
Máy chủ CSDL hay kho dữ liệu
(Database or Ware house
Trang 16Số hóa bởi Trung tâm Học liệu http://www.lrc-tnu.edu.vn/
Kiến trúc của một hệ thống DM điển hình có thể có các thành phần như hình 1.2 [3], [9]
- CSDL, kho dữ liệu hoặc các lưu trữ thông tin khác (Databases, Data ware
house,…): Đây là một hay một tập CSDL, các kho dữ liệu, các trang tính hay các
dạng lưu trữ thông tin khác 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 trên những dữ liệu này
- Máy chủ CSDL hay máy chủ kho dữ liệu (Database or Warehouse Server):
Máy chủ này có trách nhiệm lấy những dữ liệu tích hợp dựa trên các yêu cầu khai phá của người dùng
- Cơ sơ tri thức (Knowledge-base): Đây là miền tri thức dùng để hướng dẫn
việc tìm kiếm hay đánh giá độ quan trọng của các hình mẫu kết quả
- Máy DM (Data mining engine): Một hệ thống DM cần phải có một tập các modun chức năng để thực hiện công việc như: đặc trưng hóa, kết hợp, phân lớp, phân cụm, phân tích sự tiến hóa
- Module đánh giá mẫu (Pattern evaluation): Bộ phận tương tác với các
module DM để 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ể module đánh giá mẫu được tích hợp vào module khai phá, tùy theo cách cài đặt của phương pháp khai phá được dùng
- Giao diện đồ họa 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 DM Ngoài ra, bộ phận này cho phép người dùng xem các lược đồ CSDL, lược đồ kho dữ liệu (hay các cấu trúc 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.1.3 Một số ứng dụng của khai phá dữ liệu
DM được vận dụng trong nhiều lĩnh vực khác nhau nhằm khai thác nguồn dữ liệu phong phú được lưu trữ trong các hệ thống thông tin Tuỳ theo bản chất của từng lĩnh vực, việc vận dụng DM có những cách tiếp cận khác nhau
DM được vận dụng có hiệu quả để giải quyết các bài toán phức tạp trong những ngành đòi hỏi kỹ thuật cao như: Tìm kiếm mỏ dầu từ ảnh viễn thám, xác định
Trang 17Số hóa bởi Trung tâm Học liệu http://www.lrc-tnu.edu.vn/
vùng gãy trong ảnh địa chất để dự đoán thiên tai, cảnh báo hỏng hóc trong các hệ thống sản xuất
Phân nhóm và dự đoán là những kỹ thuật rất cần thiết cho việc quy hoạch và phát triển hệ thống quản lý và sản xuất trong thực tế như: dự đoán tái sử dụng điện năng cho các công ty cung cấp điện, lưu lượng viễn thông cho các công ty điện thoại, mức độ tiêu thụ sản phẩm cho các nhà sản xuất, giá trị của sản phẩm trên thị trường cho các công ty tài chính hay phân nhóm khách hàng tiềm năng
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 trứ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
Trang 18Số hóa bởi Trung tâm Học liệu http://www.lrc-tnu.edu.vn/
hàng luôn mua kem khi họ mua dâu tây, nên bạn có thể đề xuất rằng lần tới khi họ mua dâu tây, họ cũng có thể muốn mua kem
Việc xây dựng các công cụ khai phá dữ liệu dựa trên sự kết hợp hay mối quan
hệ có thể thực hiện đơn giản bằng các công cụ khác nhau Ví dụ, trong InfoSphere Warehouse một trình hướng dẫn đưa ra các cấu hình của một luồng thông tin được
sử dụng kết hợp bằng cách xem xét thông tin nguồn đầu vào của cơ sở dữ liệu, thông tin về cơ sở ra quyết định và thông tin đầu ra của bạn Hình 1 cho thấy một ví
dụ của cơ sở dữ liệu ví dụ mẫu
Hình 1.3 Luồng thông tin được sử dụng theo cách kết hợp
1.2.2 Phương pháp cây quyết định
Trong lý thuyết quyết định, cây quyết định là đồ thị của các quyết định và hậu
quả có thể của nó (bao gồm cả rủi ro và hao phí tài nguyên) Nó mô tả tri thức dạng đơn giản nhằm phân các đối tượng dữ liệu thành một số lớp nhất định và được
Trang 19Số hóa bởi Trung tâm Học liệu http://www.lrc-tnu.edu.vn/
dùng để hỗ trợ quá trình ra quyết định Quá trình xây dựng cây quyết định có thể xem như là một chiến thuật chia để trị cho sự phân lớp đối tượng [3]
Cây quyết định là công cụ dùng để phân lớp dữ liệu Với khai phá dữ liệu, cây quyết định tượng trưng cho một phương thức quyết định cho việc xác định lớp của các dữ kiện (các thuộc tính được xét trên mỗi đối tượng) đã cho Mỗi nút của cây chỉ ra một tên lớp hoặc là một phép thử cụ thể Phép thử này chia không gian các dữ kiện tại nút đó thành các kết quả có thể đạt được của phép thử Mỗi tập con được chia ra là không gian con của các dữ kiện, sẽ tương ứng với một vấn đề con của sự phân lớp, điều này sẽ được giải quyết bởi một cây con tương ứng
Cây quyết định được biểu diễn dưới dạng một sơ đồ có cấu trúc cây Mỗi nút của nó (trừ nút lá) ghi một phép thử trên 1 thuộc tính, mỗi nhánh biểu thị một kết quả của phép thử, và mỗi nút lá ghi một nhãn lớp Nút trên cùng gọi là nút gốc Các nút của cây được gán nhãn là tên các thuộc tính, các cạnh được gán các giá trị có thể của các thuộc tính, các lá mô tả các lớp khác nhau Các đối 60 Khai phá dữ liệu tượng được phân lớp theo các đường đi trên cây, qua các cạnh tương ứng với các giá trị của thuộc tính của đối tượng tới lá
Một cây điển hình được chỉ ra trên hình 1.4 dành cho khách hàng mua sắm máy tính với các thuộc tính tuổi, sinh viên, tiềm lực tài chính Các nút (hình chữ nhật) trong hình vẽ, trừ nút lá, biểu thị một phép thử trên 1 thuộc tính Mỗi nút lá (hình ovan) biểu thị 1 lớp (hoặc là mua máy tính = yes, hoặc là mua máy tính =no)
youth Middle_aged Senior
no yes Fair excellent
Hình 1.4 Cây quyết định về khái niệm mua máy tính
Một số thuật toán cây quyết định chỉ làm việc với cây nhị phân, trong khi đó, một số thuật toán khác có thể làm việc với các cây không phải nhị phân
Trang 20Số hóa bởi Trung tâm Học liệu http://www.lrc-tnu.edu.vn/
Trong lĩnh vực học máy, cây quyết định là một kiểu mô hình dự báo, nghĩa là một ánh xạ từ các quan sát về một sự vật/hiện tượng tới các kết luận về giá trị mục tiêu của sự vật/ hiện tượng Mỗi nút trong tương ứng với một biến; đường nối giữa
nó với nút con của nó thể hiện giá trị cụ thể cho biến đó Mỗi nút lá đại diện cho giá trị dự toán của biến mục tiêu, cho trước các giá trị dự toán biến được biểu diễn bởi đường đi từ nút gốc tới nút lá đó Kỹ thuật học máy dung trong cây quyết định được gọi là học bằng cây quyết định, hay chỉ gọi với cái tên ngắn gọn là cây quyết định Cây quyết định có thể được mô tả như là sự kết hợp của các kỹ thuật toán học và tính toán nhằm hỗ trợ việc mô tả, phân loại và tổng quát hóa một tập dữ liệu cho trước
Cây quyết định có 2 tên khác:
- Cây hồi quy: Ước lượng các hàm giá trị số thực thay vì được sử dụng cho
các nhiệm vụ phân loại
- Cây phân loại: Có chứa các biến phân loại như: giới tính (nam hay nữ), kết
quả của một trận đấu (thắng hay thua)
Ví dụ:
Cây quyết định phân lớp mức lương có các dữ liệu sau:
ID (Định danh), age (tuổi), salary (lương)
Phân lớp mức lương thành 2 lớp: tốt (good), xấu(bad)
Trang 21Số hóa bởi Trung tâm Học liệu http://www.lrc-tnu.edu.vn/
<=34 >34
<=40 >40 <=50 >50
bad good bad good
Hình 1.5 Cây quyết định phân lớp (bad/good) mức lương
Các cây quyết định được sử dụng để phân loại theo các phương cách sau:
Cho một bộ dữ liệu X, cần xác định nó thuộc lớp nào Các giá trị thuộc tính của X được thử dựa vào cây quyết định Một con đường lần theo vết từ gốc đến nút
lá nào đó Tên lớp của lá đó là tên lớp gán cho bộ dữ liệu X
Cây quyết định đã trở thành công cụ phân loại phổ biến vì việc xây dựng công
cụ phân lớp theo cây quyết định không đòi hỏi kiến thức nghiệp vụ hoặc tập tham
số nào và do vậy nó được ưu tiên để tiến hành khai phá tri thức Các cây quyết định
có thể xử lý dữ liệu có số chiều rất cao Việc biểu diễn tri thức ở dạng cây là dễ dàng cảm nhận và rất thích hợp với con người
K-Means là thuật toán rất quan trọng và được sử dụng phổ biến trong kỹ thuật phân cụm Tư tưởng chính của thuật toán K-Means là tìm cách phân nhóm các đối tượng (objects) đã cho vào K cụm (K là số các cụm được xác đinh trước, K nguyên dương) sao cho tổng bình phương khoảng cách giữa các đối tượng đến tâm nhóm
(centroid ) là nhỏ nhất
Thuật toán K-Means được mô tả như sau
Trang 22Số hóa bởi Trung tâm Học liệu http://www.lrc-tnu.edu.vn/
Hình 1.6 Các bước thực hiện thuật toán K-Mean Thuật toán K-Means thực hiện qua các bước chính sau:
1 Chọn ngẫu nhiên K tâm (centroid) cho K cụm (cluster) Mỗi cụm được đại diện bằng các tâm của cụm
2 Tính khoảng cách giữa các đối tượng (objects) đến K tâm (thường dùng khoảng cách Euclidean)
3 Nhóm các đối tượng vào nhóm gần nhất
4 Xác định lại tâm mới cho các nhóm
5 Thực hiện lại bước 2 cho đến khi không có sự thay đổi nhóm nào của các đối tượng
1.3 Kết luận chương 1
Chương 1 trình bày chi tiết các khái niệm cơ bản, kiến trúc, quá trình khai phá
dữ liệu và một số phương pháp khai phá dữ liệu thông dụng Phương pháp luật kết hợp, phương pháp cây quyết định, phương pháp K- Mean (Phân cụm), đều là những thuật toán đơn giản, quen thuộc và rất quan trọng trong quá trình khai phá tập mục lợi ích cao
Trong chương 2 sẽ trình bày các khái niệm cơ bản về tập mục thường xuyên và tập mục lợi ích cao, cấu trúc cây tiền tố và các thuật toán khai phá tập mục lợi ích cao sử dụng cấu trúc cây tiền tố
Trang 23Số hóa bởi Trung tâm Học liệu http://www.lrc-tnu.edu.vn/
CHƯƠNG 2 KHAI PHÁ TẬP MỤC THƯỜNG XUYÊN VÀ TẬP MỤC LỢI ÍCH CAO 2.1 Khai phá tập mục thường xuyên
2.1.1 Cơ sở dữ liệu giao tác
Định nghĩa 1
Cho tập các mục (item) I i1,i2, ,i n Một giao tác (transaction) T là một tập
con của I, T I Cơ sở dữ liệu giao tác là một tập các giao tác DB T1,T2, ,T m
Mỗi giao tác được gán một định danh TID Một tập mục con X I, gồm k mục phân biệt được gọi là một k-tập mục Giao tác T gọi là chứa tập mục X nếu X T
Biểu diễn cơ sở dữ liệu giao tác: Cơ sở dữ liệu giao tác thường được biểu diễn ở
dạng biểu diễn ngang, biểu diễn dọc và biểu diễn bởi ma trận giao tác
Trang 24Số hóa bởi Trung tâm Học liệu http://www.lrc-tnu.edu.vn/
Biểu diễn ngang: Cơ sở dữ liệu là một danh sách các giao tác Mỗi giao tác có
một định danh TID và một danh sách các mục dữ liệu trong giao tác đó
Biểu diễn dọc: Cơ sở dữ liệu là một danh sách các mục dữ liệu, mỗi mục dữ
liệu có một danh sách tất cả các định danh của các giao tác chứa mục dữ liệu này
Bảng 2.2: Biểu diễn dọc của cơ sở dữ liệu giao tác
Mục dữ liệu Định danh giao tác
Trang 25Số hóa bởi Trung tâm Học liệu http://www.lrc-tnu.edu.vn/
Ma trận giao tác: Cơ sở dữ liệu giao tác DB T T1 2, ,T m trên tập các mục (item) I i i1, , ,2 i nđƣợc biểu diễn bởi ma trận nhị phân M (m pq m n) ,ở đó:
1 0
i T khi pq
khi i T
m
Ví dụ 2: Cơ sở dữ liệu bảng 2.1 biểu diễn ở dạng ma trận giao tác là:
Bảng 2.3: Ma trận giao tác của cơ sở dữ liệu cho ở bảng 2.1
Cho tập mục X I. Ta gọi độ hỗ trợ (Support) của X trong cơ sở dữ liệu giao
tác DB, ký hiệu sup( ),X là tỷ lệ phần trăm các giao tác chứa X trên tổng số các
giao tác trong DB, tức là:
DB
X T DB T
sup(
Ta có: 0 sup(X) 1với mọi tập mục X I
Định nghĩa 3
Trang 26Số hóa bởi Trung tâm Học liệu http://www.lrc-tnu.edu.vn/
Cho tập mục X I và ngưỡng hỗ trợ tối thiểu (minimum support) minsup
0,1 (được xác định trước bởi người sừ dụng) X được gọi là tập mục thường xuyên
(frequent itemset hoặc large itemset) với độ hỗ trợ tối thiểu minsup nếu sup( )X minsup, ngược lại X gọi là tập mục không thường xuyên
Độ hỗ trợ (Support) của một luật kết hợp X→Y, ký hiệu là sup(X→Y), là độ hỗ
trợ của tập mục X Y,sup(X Y) sup(X Y)
Như vậy độ hỗ trợ của luật kết hợp X Y chính là xác suất P X( Y) của sự xuất hiện đồng thời của X và Y trong một giao tác
)sup(
)(
X
Y X Y
} {
T X DB T
T Y T X DB T
=
}{
}{
T X DB T
T Y X DB T
=
)sup(
)sup(
X
Y X
và ta có 0 conf X( Y) 1
Các luật thỏa mãn cả hai ngưỡng độ hỗ trợ tối thiểu (minsup) và độ tin cậy tối thiểu (minconf), tức thỏa mãn sup(X Y) minsup và conf X( Y) minconf,
được gọi là luật kết hợp mạnh
Tính chất cơ bản của tập mục thường xuyên:
Cho cơ sở dữ liệu giao tác DB và ngưỡng độ hỗ trợ tối thiểu minsup Các tập
mục thường xuyên có các tính chất sau:
(1) Nếu X , Y là các tập mục và X Y thì sup( )X sup( ).Y
Trang 27Số hóa bởi Trung tâm Học liệu http://www.lrc-tnu.edu.vn/
(2) Nếu một tập mục là không thường xuyên thì mọi tập cha của nó của nó cũng không thường xuyên
(3) Nếu một tập mục là thường xuyên thì mọi tập con khác rỗng của nó cũng là tập mục thường xuyên
Tính chất (3) được gọi là tính chất Apriori, tính chất này là cơ sở để rút gọn không gian tìm kiếm các tập mục thường xuyên
2.1.3 Bài toán khai phá luật kết hợp và một số thuật toán về khai phá tập mục thường xuyên
2.1.3.1 Bài toán khai phá luật kết hợp
Cho cơ sở dữ liệu giao tác DB, ngưỡng độ hỗ trợ tối thiểu minsup và ngưỡng
độ tin cậy tối thiểu minconf
Yêu cầu: Tìm tất cả các luật kết hợp X Y trên cơ sở dữ liệu DBsao cho
)
sup(X Y minsup và conf X( Y) minconf
Bài toán khai phá luật kết hợp này được gọi là bài toán cơ bản hay bài toán nhị phân, vì ở đây, giá trị của mục dữ liệu trong cơ sở dữ liệu là 0 hoặc 1 (xuất hiện hay không xuất hiện)
Bài toán khai phá luật kết hợp được chia thành hai bài toán con Bài toán thứ nhất là tìm tất cả các tập mục thỏa mãn độ hỗ trợ tối thiểu cho trước, tức là tìm tất
cả các tập mục thường xuyên Bài toán thứ hai là sinh ra các luật kết hợp từ các tập mục thường xuyên đã tìm được thỏa mãn độ 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ử đã tìm được X là tập mục thường xuyên, ta sinh ra các luật kết hợp bằng cách tìm Y X, kiểm tra độ tin cậy của luật X Y\ Ycó thỏa mãn độ tin cậy tối thiểu không Bài toán thứ hai này đơn giản, mọi khó khăn nằm ở bài toán thứ nhất, hầu hết các nghiên cứu về luật kết hợp đều tập trung giải quyết bài toán thứ nhất là tìm các tập mục thường xuyên
Trang 28Số hóa bởi Trung tâm Học liệu http://www.lrc-tnu.edu.vn/
2.1.3.2 Một số thuật toán về khai phá tập mục thường xuyên
* Thuật toán AIS
Thuật toán hoàn toàn sử dụng chiến lược “vét cạn”, xem xét toàn bộ các tập mục thường xuyên bằng cách sinh tổ hợp tập các mục và chạy kiểm tra
* Thuật toán SETM
Được đề xuất do mong muốn dùng SQL để tìm các tập mục thường xuyên Cũng giống như thuật toán AIS, SETM cũng sinh ra các tập ứng viên dựa trên các giao dịch đọc được từ CSDL Vì thế, nó sinh ra và đếm mỗi tập mục ứng cử viên
mà thuật toán AIS sinh ra Tuy nhiên để phép nối (JOIN) chuẩn của SQL, SETM chia sự phát sinh ứng cử viên từ việc đếm
* Thuật toán CHARM
Thực hiện trên cả không gian các tập phổ biến và không gian các tập định danh CHARM không tìm tất cả các tập con có thể của tập mục mà thuật toán kết hợp tìm tập đóng hiệu quả hơn (bottom – up) Nếu CSDL của tập mục là lớn và tập mục thường xuyên là dày thì CHARM duyệt cả không gian tập mục và tập định danh đồng thời sẽ bỏ qua nhiều mức để tìm tập phổ biến đóng thay cho việc tính toán nhiều tập con không đóng
* Thuật toán FP-Growth
Phát triển từ thuật toán Apriori, J.Han, J Pei, Y.Yin và R.Mao đã đề xuất thuật toán FP-growth [7] nhằm khắc phục những hạn chế của thuật toán Apriori Thuật toán này được xây dựng với ba kỹ thuật chính là: Nén dữ liệu thích hợp vào một cấu trúc cây gọi là FP-tree Chỉ có 1–tập mục ở trong cây và các nút của cây được sắp xếp để các nút xuất hiện thường xuyên hơn có thể dễ dàn chia sẻ với các nút xuất hiện ít hơn; Thực hiện phương pháp khai phá phát triển (growth) từng đoạn dựa trên cây FP-tree gọi là phương pháp FP-growth; Kỹ thuật tìm kiếm được dùng ở đây là dựa vào sự phân chia, “chia để trị”, phân rã nhiệm vụ khai phá thành nhiệm vụ nhỏ hơn
* Thuật toán Apriori
Apriori là thuật toán khai phá tập mục thường xuyên do R Agrawal và R Srikant đề xuất vào năm 1993 [11] Ý tưởng của thuật toán Apriori còn là nền tảng cho việc phát triển nhiều thuật toán khai phá tập mục thường xuyên khác về sau
Trang 29Số hóa bởi Trung tâm Học liệu http://www.lrc-tnu.edu.vn/
Ý tưởng chính của thuật toán này là: sinh ra các tập mục ứng viên từ các tập mục thường xuyên ở bước trước, sử dụng kỹ thuật tỉa để bỏ bớt đi những tập mục ứng viên không thỏa mãn ngưỡng hỗ trợ tối thiểu (minsup) Cơ sở của thuật toán này là tính chất Apriori “Bất kỳ tập con nào của tập mục thường xuyên cũng phải là tập mục thường xuyên” Thuật toán giúp tỉa bớt những tập ứng viên có tập con không thường xuyên trước khi tính độ hỗ trợ Nhược điểm của thuật toán là chi phí sinh ra số lượng khổng lồ tập ứng viên và phải duyệt CSDL nhiều lần
Giả sử các mục dữ liệu trong mỗi giao tác được lưu theo trật tự từ điển Thuật toán sử dụng các ký hiệu sau đây :
Lk Tập các k-tập mục thường xuyên (với độ hỗ trợ tối thiểu minsup)
Mỗi phần tử của tập này có 2 trường :
i) Tập mục (itemsets) ii) Độ hỗ trợ (count)
Ck Tập các k-tập mục ứng viên (các tập mục thường xuyên tiềm năng)
Mỗi phần tử của tập này có 2 trường:
i) Tập mục (itemsets) ii) Độ hỗ trợ (count) Thuật toán duyệt cơ sở dữ liệu nhiều lần Mỗi lần duyệt, thuật toán thực hiện
hai bước: bước kết nối và bước tỉa Trong lần lặp thứ k, thuật toán nối hai (k-1)-tập
mục để sinh ra k-tập mục, sử dụng tính chất Apriori để tỉa các tập ứng viên Bước nối và bước tỉa như sau:
Bước kết nối (tìm C k )
Tập các k-tập mục ứng viên Ck được sinh ra bởi việc kết nối Lk-1 với chính nó Hai tập mục l1 và l2 của Lk-1 được nối nếu chúng có (k-2) mục dữ liệu đầu bằng nhau, mục dữ liệu thứ (k-1) của l1 nhỏ hơn của 12:
(l1[l] = l2[1]) (l1[2] = l2[2]) (l1[k-2] = l2[k-2]) (l1 [k-1] < l2[k-l]) Dạng của tập mục nhận được bởi nối l1 và l2 là: l1[1] l1[2] l1[k-2] l1[k-1] l2[k-1]
Bước tỉa
Tập Ck chứa tập Lk , tức là tất cả các k-tập mục thường xuyên đều thuộc tập Ck Tập Ck có thể là rất lớn dẫn đến khối lượng tính toán lớn Thuật toán áp dụng tính
Trang 30Số hóa bởi Trung tâm Học liệu http://www.lrc-tnu.edu.vn/
chất Apriori để rút gọn tập Ck Nếu có một (k-1)-tập mục con nào đó của k-tập mục ứng viên mà không có mặt trong Lk-1 thì ứng viên đó không thể là thường xuyên, có thể loại bỏ khỏi Ck Việc kiểm tra các (k-1)-tập mục con có thể thực hiện nhanh bởi duy trì một cây băm của tất cả các tập mục thường xuyên đã tìm thấy
Thuật toán Apriori ( tìm các tập mục thường xuyên)
Input: Cơ sở dữ liệu DB, ngưỡng độ hỗ trợ minsup
Output: Tập các tập mục thường xuyên L trong DB
Method:
(1) Tìm các 1-tập mục thường xuyên, nhận được L1;
(2) For (k=2; Lk-1≠Ø; k++) do begin
(3) Ck = apriori_gen(Lk-1, minsup); // Sinh tập ứng viên mới từ Lk-1
(5) C = subset(Ck,T); // Các tập mục ứng viên chứa trong T
Sinh các tập mục ứng viên của thuật toán Apriori: hàm Apriori_gen()
Function Apriori gen()
Trang 31Số hóa bởi Trung tâm Học liệu http://www.lrc-tnu.edu.vn/
Ví dụ minh hoạ thuật toán Apriori:
Ta minh họa thực hiện thuật toán Apriori trên cơ sở dữ liệu trong bảng 2.4 với
minsup=50%, tức xuất hiện ít nhất 2 lần
Bảng 2.4: Cơ sở dữ liệu giao tác minh họa thực hiện thuật toán Apriori
Trang 32Số hóa bởi Trung tâm Học liệu http://www.lrc-tnu.edu.vn/
{A, E}
{B, C}
{B, E}
{C, E}
Trang 33Số hóa bởi Trung tâm Học liệu http://www.lrc-tnu.edu.vn/
Nối L3 với L3 được L4 = Ø, thuật toán dừng
Nối L3 với L3 được L4 = Ø, thuật toán dừng
Các tập mục thường xuyên tìm được theo thuật toán Apriori là:
L=L1 L2 L3 = A, B, C, E, AC, BC, BE, CE, BCE
Nhận xét: thuật toán duyệt cơ sở dữ liệu nhiều lần, số lần duyệt bằng độ dài
của tập mục thường xuyên dài nhất tìm được
* Thuật toán COFI-tree
Thuật toán Apriori gặp phải hai chi phí lớn:
- Chi phí sinh ra số lượng khổng lồ các tập ứng viên Ví dụ, nếu có 104 mục thường xuyên thì thuật toán Apriori sẽ cần sinh ra hơn 107 các ứng viên 2-tập mục
và thực hiện kiểm tra độ hỗ trợ của chúng
Trang 34Số hóa bởi Trung tâm Học liệu http://www.lrc-tnu.edu.vn/
- Lặp nhiều lần duyệt cơ sở dữ liệu, số lần duyệt cơ sở dữ liệu của thuật toán Apriori bằng độ dài của tập mục thường xuyên dài nhất tìm được Thuật toán Apriori chỉ thích hợp cho các cơ sở dữ liệu thưa (sparse), với các cơ sở dữ liệu dày (dense) thì thuật toán thực hiện kém hiệu quả
Để khắc phục nhược điểm trên của thuật toán Apriori Năm 2003, nhóm tác giả Mohammad El-Hajj và Osmar R.Zaiane ở đại học Alberta Edmonton, canada đề xuất thuật toán không đệ quy khai phá cây FP-tree dựa trên cấu trúc cây COFI-tree
(Co-Occurrence Frequent Items tree) [8]
Thuật toán COFI-tree gồm 2 giai đoạn chính Giai đoạn thứ nhất, xây dựng cây FP-tree Giai đoạn thứ hai, khai phá cây FP-tree chia thành nhiều bước tương ứng với các mục dữ liệu trong bảng đầu mục của cây FP-tree, mỗi bước sử dụng một cấu trúc dữ liệu phụ trợ là cây COFI-tree của mục dữ liệu đó
Mỗi nút của cây FP-tree gồm 3 trường: tên mục dữ liệu, độ hỗ trợ và một con trỏ (con trỏ này trỏ đến nút tiếp theo cùng trên trên cây hoặc là null nếu không có) Cây FP-tree có một bảng đầu mục (header table) Mỗi mục của bảng có 3 trường: tên mục dữ liệu, độ hỗ trợ và con trỏ, con trỏ này trỏ đến nút đầu tiên biểu diễn mục
dữ liệu này trong cây
Cây COFI-tree có bảng đầu mục giống như cây FP-tree nhưng các mục dữ liệu
có thứ tự ngược lại Mỗi mục trong bảng đầu mục chứa 3 trường: tên mục dữ liệu,
độ hỗ trợ địa phương (số lần xuất hiện của mục dữ liệu trong cây COFI-tree) và con trỏ (trỏ đến nút đầu tiên biểu diễn mục dữ liệu này trong cây) Một danh sách liên kết được duy trì giữa các nút cùng tên để thuận lợi cho quá trình khai phá Mỗi nút của cây COFI-tree có 4 trường: tên mục dữ liệu, hai biến s và p (biến s biểu diễn độ
hỗ trợ của nút, biến p cho biết số lần nút đó đã tham gia tạo mẫu), con trỏ (trỏ đến nút tiếp theo cùng tên trên cây)
Ta minh họa thuật toán COFI-tree qua xét cơ sở dữ liệu bảng 2.5 với ngưỡng
độ hỗ trợ minsup=3
Trang 35Số hóa bởi Trung tâm Học liệu http://www.lrc-tnu.edu.vn/
Bảng 2.5: CSDL giao tác minh họa thực hiện thuật toán COFI-tree
Giai đoạn 1: Xây dựng cây FP-tree
Duyệt cơ sở dữ liệu lần thứ nhất tính đƣợc độ hỗ trợ của mỗi mục dữ liệu, loại
bỏ các mục dữ liệu không thỏa mãn ngƣỡng minsup = 3, sắp các mục còn lại theo
Trang 36Số hóa bởi Trung tâm Học liệu http://www.lrc-tnu.edu.vn/
Duyệt cơ sở dữ liệu lần 2, mỗi giao tác chọn ra các mục dữ liệu thường xuyên, sắp chúng theo thứ tự giảm dần của độ hỗ trợ và chèn lên cây Hình 1.9 biểu diễn cây FP-tree
Giai đoạn 2: Khai phá cây FP-tree
Xét lần lượt các mục dữ liệu từ dưới lên trong bảng đầu mục của cây FP-tree, với mỗi mục dữ liệu, xây dựng cây COFI-tree của nó, khai phá cây này tìm các mẫu thường xuyên, sau khi khai phá xong, loại bỏ cây đó và xây dựng cây COFI-tree cho mục dữ liệu tiếp theo Minh họa thuật toán qua xét mục dữ liệu đầu tiên D như sau:
- Xây dựng cây COFI-tree của mục D (gọi cây này là D-COFI-tree)
Có 3 nút trên cây có nhãn D, từ các nút này đi lên gốc tìm được 3 đường đi: (D:2, B:2, C:8), (D:1, B:2, A:3) và (D:2, C:8), các đường đi này xác định các mẫu
dữ liệu với độ hỗ trợ bằng độ hỗ trợ của nút đầu D, tức là: DBC:2, DBA:1 và DC:2 Xây dựng cây D-COFI-tree từ các mẫu này Hình 1.10 biểu diễn cây D-COFI-tree
Bảng 2.8: Các mục DL trong giao tác sắp xếp giảm dần theo độ hỗ trợ
Trang 37Số hóa bởi Trung tâm Học liệu http://www.lrc-tnu.edu.vn/
Hình 2.1: Cây FP-tree của CSDL bảng 2.5
Hình 2.2: Cây COFI-tree của mục D
- Khai phá cây D-COFI-tree:
Xét lần lượt các mục dữ liệu trong bảng đầu mục, bắt đầu từ mục có độ hỗ trợ lớn nhất là C, cuối cùng đến mục có độ hỗ trợ nhỏ nhất A Mục C có 2 nhánh trên cây là (C:2, B:3, D:5) và (C:2, D:5)
Nhánh thứ nhất tạo ra mẫu CBD với độ hỗ trợ là s – p = 2 – 0 = 2 (s và p là hai biến tại nút nhãn C) Thuật toán tăng giá trị biến p của tất cả các nút trên đường đi này lên 2 Mẫu CBD: 2 và tất cả các mẫu con có chứa D của nó được cất vào danh sách ứng viên của mục D là CBD:2, CD:2, BD:2 (bước 1)
Nhánh thứ hai nhận được mẫu CD:2 và kết nạp nó vào danh sách ứng viên Trong danh sách ứng viên đã có mẫu CD:2 nên chỉ điều chỉnh độ hỗ trợ của mẫu này thành CD:4 và danh sách ứng viên trở thành CBD:2, CD:4, BD:2 Tăng biến p của các nút trên đường đi này lên 2 đơn vị (bước 2)
Trang 38Số hóa bởi Trung tâm Học liệu http://www.lrc-tnu.edu.vn/
Tương tự, xét tiếp mục B, có một nhánh là BD nên sinh ra mẫu BD:1, kết nạp vào danh sách các ứng viên được CBD:2, CD:4, BD:3 (bước 3)
Mục A còn lại trong bảng đầu mục bỏ qua vì có độ hỗ trợ nhỏ hơn minsup
(bước 3)
Hình 2.3: Minh họa các bước khai phá cây D-COFI-tree
Thuật toán duyệt qua các mẫu trong danh sách ứng viên, loại các mẫu không thỏa mãn ngưỡng hỗ trợ và nhận được các mẫu thường xuyên là CD:4, BD:3 Cây
Trang 39Số hóa bởi Trung tâm Học liệu http://www.lrc-tnu.edu.vn/
D-COFI-tree được loại bỏ và tiếp tục xây dựng cây cho mục dữ liệu tiếp theo Chi tiết về cây COFI-tree có thể tham khảo trong [8]
2.2 Bài toán Khai phá tập mục lợi ích cao
2.2.1 Khái niệm về tập mục lợi ích cao
Mô hình khai phá tập mục lợi ích cao được Yao và cộng sự đề xuất (Hong Yao
và Hamilton, 2006; H Yao, Hamilton và Butz, 2004) [6] [12] Trong mô hình khai phá tập mục lợi ích cao, giá trị của mục dữ liệu trong giao tác là một số (như số lượng đã bán của mặt hàng, gọi là giá trị khách quan), ngoài ra còn có bảng lợi ích cho biết lợi ích mang lại khi bán một đơn vị hàng đó (gọi là giá trị chủ quan, do người quản lý kinh doanh xác định) Lợi ích của một tập mục là số đo lợi nhuận của tập mục đó trong CSDL, nó có thể là tổng lợi nhuận, là tổng chi phí của tập mục
Khai phá tập mục lợi ích cao là khai phá tất cả các tập mục X có lợi ích u X( ) , không nhỏ hơn ngưỡng lợi ích tối thiểu quy định bởi người sử dụng Trong đó là ngưỡng quy định bởi người sử dụng
Có thể coi bài toán cơ bản khai phá tập mục thường xuyên là trường hợp đặc biệt của bài toán khai phá tập mục lợi ích cao, trong đó tất cả các mục đều có giá trị khách quan bằng 0 hoặc 1 và giá trị chủ quan bằng 1
Các thuật toán khám phá tập mục thường xuyên được xây dựng theo phương pháp tìm kiếm từng bước Cơ sở của các thuật toán này là tính chất Apriori hay còn gọi là tính chất phản đơn điệu (anti monotone) của tập mục thường xuyên Tính chất
đó là “tập con khác rỗng của một tập mục thường xuyên phải là tập thường xuyên” Điều này có nghĩa các (k+1)-tập mục thường xuyên chỉ có thể sinh ra từ các k-tập mục thường xuyên Tính chất Apriori cho phép loại bỏ được các tổ hợp mục không thường xuyên ra khỏi không gian tìm kiếm tại mỗi bước Đáng tiếc là các tập mục lợi ích cao không thỏa mãn tính chất Apriori Do đó, việc rút gọn không gian tìm kiếm, phát hiện tập mục lợi ích cao không thể thực hiện được như trong khai phá tập mục thường xuyên
2.2.2 Một số bài toán khai phá tập mục lợi ích cao
Phần này nêu một số định nghĩa và thuật ngữ mô tả bài toán khai phá tập mục lợi ích cao theo [7], [8],
Trang 40Số hóa bởi Trung tâm Học liệu http://www.lrc-tnu.edu.vn/
Cho tập các mục (item) I i i1, , 2 i n . Một giao tác (transaction) T là một tập con của I T, I Cơ sở dữ liệu là một tập các giao tác DB T T1, 2, ,T m . Mỗi giao tác được gán một định danh TID. Một tập mục con X I, gồm k mục phân biệt được gọi là một k-tập mục Giao tác T gọi là chứa tập mục X nếu X T
Định nghĩa 7
Ta gọi giá trị của mục i p trong giao tác T q ( giá trị tại cột i p hàng T q của cơ sở
dữ liệu) là giá trị khách quan (objective value) của mục i p tại giao tác T q, ký hiệu là
o i T
Thông thường giá trị khách quan của mục dữ liệu là số tự nhiên (như số lượng
đã bán của một mặt hàng trong giao tác)
Định nghĩa 8
Ta gọi giá trị do nhà kinh doanh gán cho mục i p trong cơ sở dữ liệu, dựa trên đánh giá lợi nhuận mà mỗi đơn vị mục dữ liệu có thể đem lại, là giá trị chủ quan
(subjective value) của mục i p và ký hiệu là s i( ).p
Giá trị chủ quan của các mục thường được cho trong một bảng kèm theo cơ sở
dữ liệu và gọi là bảng lợi ích (utility table) Chẳng hạn, cơ sở dữ liệu các giao tác và
bảng lợi ích ở bảng 2.1 và bảng 2.2, giá trị khách quan của mục giao tác và bảng lợi ích ở bảng 2.1 và bảng 2.2, giá trị khách quan của mục B tại giao tác T2 là o(B, T 2)
= 12, giá trị chủ quan của B là s(B) = 5
Lợi ích của mục dữ liệu trong giao tác được đánh giá thông qua hàm 2 biến sau:
Định nghĩa 9
Ký hiệu x là giá trị khách quan, y là giá trị chủ quan của mụ Một hàm 2 biến f(x,y):R R R, đơn điệu tăng theo x và theo y, được gọi là hàm lợi ích
Thông thường hàm lợi ích được xác định như sau: f x y( , ) x y
Định nghĩa 10
của hàm f(x,y) tại o(i p,T q) và s(i p), tức là u i T( ,p q) f o i T( ( ,p q), ( )).s i p
Định nghĩa 11