Khai phá tập mục lợi ích cao và ứng dụng tại công ty cổ phần siêu thị VHSCKhai phá tập mục lợi ích cao và ứng dụng tại công ty cổ phần siêu thị VHSCKhai phá tập mục lợi ích cao và ứng dụng tại công ty cổ phần siêu thị VHSCKhai phá tập mục lợi ích cao và ứng dụng tại công ty cổ phần siêu thị VHSCKhai phá tập mục lợi ích cao và ứng dụng tại công ty cổ phần siêu thị VHSCKhai phá tập mục lợi ích cao và ứng dụng tại công ty cổ phần siêu thị VHSCKhai phá tập mục lợi ích cao và ứng dụng tại công ty cổ phần siêu thị VHSCKhai phá tập mục lợi ích cao và ứng dụng tại công ty cổ phần siêu thị VHSCKhai phá tập mục lợi ích cao và ứng dụng tại công ty cổ phần siêu thị VHSCKhai phá tập mục lợi ích cao và ứng dụng tại công ty cổ phần siêu thị VHSCKhai phá tập mục lợi ích cao và ứng dụng tại công ty cổ phần siêu thị VHSC
Trang 3LỜI CAM ĐOAN
Tôi xin cam đoan nội dung và kết quả trong luận văn "Khai phá tập mục lợi ích cao và ứng dụng tại công ty Cổ phần siêu thị VHSC" này là công trình của riêng tôi dưới sự hướng dẫn của GS.TS Vũ Đức Thi là trung thực và không trùng lặp với các đề tài khác Trong toàn bộ luận văn, những điều được trình bày là của cá nhân hoặc là được tổng hợp từ nhiều nguồn tài liệu Tôi cũng xin cam đoan 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
Hà nội, tháng 10 năm 2017
Tác giả
Nguyễn Trọng Thắng
Trang 4LỜ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 GS.TS
Vũ Đức Thi - Viện trưởng Viện Công nghệ Thông tin - Trường Đại học Quốc gia Hà nội, người thầy đã chỉ bảo và hướng dẫn tận tình cho tôi trong suốt quá trình hướng dẫn nghiên cứu khoa học và thực hiện luận văn này
Tôi xin chân thành cảm ơn các thầy, cô giáo Khoa công nghệ thông tin 1- Học viện Bưu chính Viễn thông đã tham gia giảng dạy, tạo mọi điều kiện cho tôi được học tập, nâng cao trình độ kiến thức để phục vụ cho công tác của tôi hiện tại và sau này
Tôi xin cảm ơn Ban lãnh đạo, các cán bộ chuyên môn phòng ban chức năng tại Công ty cổ phần siêu thị VHSC, đã tạo điều kiện cho tôi tiếp xúc trực tiếp tìm hiểu các thông tin liên quan đến chuyên môn trong ngành và giúp tôi tiếp cận với kho dữ liệu bán hàng tại Công ty
Cuối cùng, tôi xin gửi lời cảm ơn tới gia đình, bạn bè, đồng nghiệp đã luôn động viên, hỗ trợ tôi trong quá trình học tập và nghiên cứu đề tài
Mặc dù đã rất cố gắng, song luận văn này không thể tránh khỏi những thiếu sót, kính mong được sự chỉ dẫn, góp ý của các Quý thầy cô và các bạn
Tôi xin trân trọng cảm ơn !
Hà nội, tháng 10 năm 2017
Tác giả
Nguyễn Trọng Thắng
Trang 5MỤC LỤC
LỜI CAM ĐOAN i
LỜI CẢM ƠN ii
MỤC LỤC iii
DANH MỤC CÁC THUẬT NGỮ, CHỮ VIẾT TẮT v
DANH SÁCH BẢNG vii
DANH SÁCH HÌNH VẼ viii
MỞ ĐẦU 1
Chương 1 - CƠ SỞ LÝ THUYẾT 4
1.1 Mở đầu 4
1.1.1 Quy trình khai phá dữ liệu và phát hiện tri thức 4
1.1.2 Các phương pháp chính trong khai phá dữ liệu 5
1.1.3 Các cơ sở dữ liệu có thể khai phá 6
1.1.4 Kiến trúc của một hệ thống khai phá dữ liệu 7
1.1.5 Khai phá dữ liệu và một số lĩnh vực liên quan 8
1.1.6 Một số ứng dụng của khai phá dữ liệu 9
1.1.7 Các vấn đề về cơ sở dữ liệu 9
1.2 Giới thiệu bài toán khai phá tập mục lợi ích cao 11
1.2.1 Khai phá tập mục thường xuyên 11
1.2.2 Giới thiệu bài toán khai thác tập lợi ích cao 12
1.2.3 Cách tiếp cận trong khai thác tập lợi ích cao 13
1.3 Các định nghĩa và quy ước trong khai thác tập mục lợi ích cao 13
1.4 Kết luận chương 1 16
Chương 2 - THUẬT TOÁN KHAI PHÁ TẬP MỤC LỢI ÍCH CAO 17
2.1 Thuật toán FHM 17
2.1.1 Đặt vấn đề 17
2.1.2 Nội dung thuật toán FHM 18
2.2 Thuật toán FHN 22
Trang 62.2.1 Đặt vấn đề 22
2.2.2 Nội dung thuật toán FHN 26
2.3 Thuật toán PHM 31
2.3.1 Đặt vấn đề 31
2.3.2 Nội dung thuật toán PHM 37
2.4 Thuật toán FOSHU 41
2.4.1 Đặt vấn đề 41
2.4.2 Nội dung thuật toán FOSHU 45
2.5 Kết luận chương 2 52
Chương 3 - CÀI ĐẶT ỨNG DỤNG THỬ NGHIỆM 53
3.1 Phát biểu bài toán 53
3.2 Thông tin cơ sở dữ liệu mẫu 53
3.3 Lựa chọn công cụ phát triển 54
3.4 Quy trình xây dựng ứng dụng khai phá tập mục lợi ích cao 56
3.5 Áp dụng khai phá tập mục lợi ích cao 57
3.5.1 Lựa chọn dữ liệu giao dịch 57
3.5.2 Thu thập và tiền xử lý dữ liệu 57
3.5.3 Thực hiện chương trình khai phá lợi ích cao 59
3.5.4 Kết quả thu được khi sử dụng thuật toán 60
3.5.5 Đánh giá kết quả chương trình 64
3.6 Kết luận chương 3 65
KẾT LUẬN 66
TÀI LIỆU THAM KHẢO 67
Trang 7DANH MỤC CÁC THUẬT NGỮ, CHỮ VIẾT TẮT
ALC Abandoning List
Construction early
Ngừng xây dựng danh sách lợi ích của một tập nếu một điều kiện cụ thể được đáp ứng
EAPP
Estimated Average Periodicity Pruning
Phương pháp ước lượng chu kì trung bình
EUCP
Estimated Utility Cooccurrence Pruning
Phương pháp ước lượng giá trị lợi ích đồng thời
Tên thuật toán khai thác tập mục lợi ích cao sử dụng phương pháp cắt tỉa đồng thời
FHN
Efficient Mining of Utility Itemsets with Negative Unit Profits
High-Khai phá hiệu quả tập mục lợi ích cao với lợi nhuận đơn vị dương và
âm FIM Frequent Itemset Mining Khai phá tập mục xuyên
FOSHU
Faster On-Shelf High Utility Itemset Mining – with or without Negative Unit Profit
Khai phá hiệu quả tập mục lợi ích cao có yêu tố thời gian bán với lợi nhuận đơn vị dương và âm
HOUs High on-shelf utility itemset Tập mục lợi ích cao có yếu tố thời
gian HUIs High utility itemsets Tập mục lợi ích cao
HUIM High utility itemset mining Khai thác tập mục lợi ích cao
Trang 8MIUTI Minimum item utility Độ lợi ích tối thiểu
MINULTI Min utility Giá trị ngưỡng tối thiểu
PFP Periodic frequent patterns Mẫu thường xuyên định kỳ
PHM Mining Periodic High-Utility
Itemsets
Khai thác tập mục lợi ích cao theo chu kỳ
PHUIs Periodic high-utility itemsets Tập mục lợi ích cao theo chu kỳ
TID Transaction Item Database Giao tác
TU Transaction Utility Độ lợi ích của giao tác
TWDCP
Transaction-weighted Downward Closure Property Trọng số giao dịch đóng giảm
TWU
Transaction – Weighted Utilization Trọng số độ lợi ích của giao tác
UL Utility-list Danh sách giá trị lợi ích
UP – Growth Utility Pattern Growth Thuật toán UP – Growth
UP – Tree Utility Pattern Tree Cây Up – tree
WIT – Tree
Weighted Itemset – Tidset Tree
Cây WIT – Tree
TWD Transaction-Weighted Giao dịch có trọng số giảm
Trang 9DANH SÁCH BẢNG
Bảng 1.1: Cơ sở dữ liệu (trái) và giá trị lợi ích bên ngoài (phải) 13
Bảng 1.2: Lợi ích giao tác (trái), các giá trị TWU (giữa) và EUCS (phải) 14
Bảng 2.1: Cơ sở dữ liệu (trái) và giá trị lợi ích bên ngoài (phải) 23
Bảng 2.2: Lợi ích giao tác (trái), giá trị TWU mục đơn (giữa), EUCS (phải) 25
Bảng 2.3: Tập các PHUI 35
Bảng 2.4: Cơ sở dữ liệu giao tác 41
Bảng 2.5: Giá trị lợi nhuận ngoài (lợi nhuận theo đơn vị) 42
Bảng 3.1: Bảng mẫu hóa đơn bán lẻ 54
Bảng 3.2: Cơ sở dữ liệu giao dịch mẫu 54
Bảng 3.3: Dữ liệu sau khi lọc thông tin 58
Bảng 3.4: Dữ liệu đầu vào (mẫu) cho các thuật toán FHN, FHM,PHM 58
Bảng 3.5: Dữ liệu đầu vào thuật toán FOSHU 59
Bảng 3.6: Dữ liệu đầu ra thuật toán FHM 61
Bảng 3.7: Dữ liệu đầu ra thuật toán FHN 61
Bảng 3.8: Bảng dữ liệu đầu ra thuật toán PHM 62
Bảng 3.9: Dữ liệu đầu ra thuật toán FOSHU 63
Trang 10DANH SÁCH HÌNH VẼ
Hình 1.1: Quy trình phát hiện tri thức 4
Hình 1.2: Kiến trúc của một hệ khai phá dữ liệu điển hình 7
Hình 1.3: Khai phá dữ liệu và các lĩnh vực có liên quan 9
Hình 2.1: Thuận toán FHM 18
Hình 2.2: Thuật toán Seach 20
Hình 2.3: Thuật toán Construct 21
Hình 2.4: Thuật toán FHN 26
Hình 2.5:Thuật toán Seach 27
Hình 2.6: Thuật toán Construct 30
Hình 2.7: Thuật toán PHM 37
Hình 2.8: Thuật toán Seach 39
Hình 2.9: Thuật toán Construct 40
Hình 2.10: Thuật toán FOSHU 47
Hình 2.11: Thuật toán Seach 48
Hình 2.12: Thuật toán Construct 50
Hình 3.1: Giao diện chính chương trình 55
Hình 3.2: Giao diện chọn tệp dữ liệu đầu vào với các thuật toán 55
Hình 3.3: Quy trình ứng dụng khai phá tập mục lợi ích cao 56
Hình 3.4: Chương trình với thuật toán FHM 59
Hình 3.5: Chương trình với thuật toán FHN 60
Hình 3.6: Chương trình với thuật toán PHM 60
Hình 3.7: Chương trình với thuật toán FOSHU 60
Trang 11MỞ ĐẦU
1.Lý do chọn đề tài
Phân tích qua trình bán hàng, mua sắm của khách hàng là một trong yêu cầu quan trọng trong lĩnh vực hoạt động bán lẻ Trong đó, thông tin giao dịch thể hiện qua từng hóa đơn và dữ liệu trên các hóa đơn là rất quan trọng để các nhà quản lý rút ra được thông tin có giá trị về qua trình hàng bán ra, nhu cầu mua sắm của khách hàng để xây dựng chiến lược khác nhau trong quá trình hoạt động sản xuất kinh doanh Vấn đề làm thế nào để có thể rút ra được những thông tin có giá trị từ dữ liệu hóa đơn bán hàng với số lượng hóa đơn lên tới hàng triệu hóa đơn là quá trình dễ sai sót và tốn quá nhiều thời gian nếu như thực hiện thủ công Vì vậy, tác giả tập trung tìm hiểu, phân tích các quá trình giao dịch bán hàng dựa trên các tập dữ liệu giao dịch tìm ra các nhóm mặt hàng được bán, theo chu kỳ, định kỳ, và tìm ra được các nhóm mặt hàng đưa ra lợi nhuận
Từ ý nghĩa khoa học và thực tiễn nêu trên tác giả chọn đề tài: “Khai phá tập mục lợi ích cao và ứng dụng tại công ty Cổ phần siêu thị VHSC”
2.Tổng quan về vấn đề nghiên cứu
Sự phát triển nhanh chóng của các ứng dụng công nghệ thông tin và Internet vào nhiều lĩnh vực đời sống xã hội như quản lý kinh tế, quản lý nhân sự, khoa học kỹ thuật…đã mở ra nhiều cơ hội cho các tổ chức, doanh nghiệp trong việc thu thập và
xử lý thông tin Để khai thác có hiệu quả nguồn thông tin từ các cơ sở dữ liệu khổng
lồ, yêu cầu cấp thiết đặt ra là cần phải có những kỹ thuật, công cụ để chuyển đổi kho
dữ liệu khổng lồ thành những tri thức có ích Từ đó các kỹ thuật khai phá dữ liệu trở thành một lĩnh vực được đặc biệt quan tâm trong ngành Công nghệ thông tin
Trong lĩnh vực kinh doanh siêu thị việc phát hiện phân tích lợi nhuận dựa trên giao dịch hóa đơn khách hàng là vô cùng cấp thiết Trên cơ sở đó, luận văn xác định một số nội dung trọng tâm cần giải quyết như sau:
Trang 12- Cần tìm ra những thuật toán hiệu quả cho việc phát hiện các nhóm hàng bán
ra đem lại lợi nhuận cao dựa trên hóa đơn giao dịch
- Cần tìm ra những thuật toán hiệu quả cho việc phát hiện nhu cầu mua hàng của khách hàng thường xuyên đem lại lợi nhuận cao dựa trên hóa đơn giao dịch
- Nghiên cứu, khả năng ứng dụng tại công ty Cổ phần siêu thị VHSC
3.Mục tiêu nghiên cứu
Mục tiêu tổng quát:
Nghiên cứu tập mục lợi ích cao
Khảo sát các nhu cầu thực tế tại Cổ phần siêu thị VHSC như: các mặt hàng bán được với lợi nhuận thu được dựa trên giao dịch, chu kỳ bán hàng hóa đem lại lợi nhuận thông qua các giao dịch… qua đó đưa ra phương pháp khai phá tập mục lợi ích cao phù hợp
Mục tiêu cụ thể:
Tìm hiểu thuật toán khai phá tập mục lợi ích cao có thể áp dụng vào nhu cầu thực tế tại Công ty Cổ phần siêu thị VHSC
Cài đặt chương trình thử nghiệm khai phá tập mục lợi ích cao
4.Đối tượng và phạm vi nghiên cứu
Đối tượng nghiên cứu:
Một số vấn đề cơ bản khai phá tập mục lợi ích cao
Một số thuật toán khai phá các tập mục lợi ích cao như: thuật toán FHM, thuật toán FHN, thuật toán PHM, thuật toán FOSHU và khả năng áp dụng tại công
ty cổ phần Siêu thị VHSC
Phạm vi nghiên cứu
Vì có nhiều khó khăn và hạn chế khách quan, nên giai đoạn này tác giả tìm hiểu các thuật toán khai phá tập mục lợi ích cao trên dữ liệu tĩnh Việc xử lý
dữ liệu theo hướng tập trung (chưa nghiên cứu hướng phân tán)
Nghiên cứu khả năng ứng dụng các thuật toán khai phá tập mục lợi ích cao tại công ty cổ phần Siêu thị VHSC như: Thuật toán FHM, thuật toán FHN, thuật toán PHM, thuật toán FOSHU
Trang 13 Không đi sâu nghiên cứu chi tiết và đánh giá hiệu suất các thuật toán
5.Phương pháp nghiên cứu
Nghiên cứu lý thuyết:
Luận văn sử dụng phương pháp thu thập, phân tích, tổng hợp thông tin các kiến thức nền tảng, các công bố khoa học và các ứng dụng của vấn đề khai phá tập mục lợi ích cao từ các nguồn tài liệu trên Internet và các nguồn tài liệu khác như các bài báo khoa học trên các kỷ yếu hội thảo, tạp chí chuyên ngành…
Nghiên cứu thực nghiệm:
Cài đặt thực nghiệm thuật toán
Đánh giá khả năng áp dụng khai phá các thuật toán khai phá tập mục lợi ích cao tại Công ty cổ phần Siêu thị VHSC
6 Kết cấu của luận văn
dung như sau:
Chương 1- Cơ sở lý thuyết: Trình bày tổng quan về khai phá dữ liệu, khái quát
về khai phá tập mục thường xuyên, khai phá dữ liệu lợi ích cao, định nghĩa đối với bài toán khai phá tập mục lợi ích cao
Chương 2 - Thuật toán khai phá tập mục lợi ích cao: Trình bày các thuật toán khai phá tập mục lợi ích cao như thuật toán FHM, thuật toán FHN, thuật toán PHM
và thuật toán FOSHU
Chương 3 - Cài đặt ứng dụng thử nghiệm: Xây dựng ứng dụng trên cơ sở các thuật toán đã trình bày, kiểm tra với mẫu số liệu cụ thể, đánh giá khả năng ứng dụng
và áp dụng tại Công ty cổ phần siêu thị VHSC
Trang 14Chương 1 - CƠ SỞ LÝ THUYẾT
1.1 Mở đầu
Trong kỷ nguyên bùng nổ công nghệ thông tin, các công nghệ lưu trữ dữ liệu ngày càng phát triển tạo điều kiện cho việc thu thập, lưu trữ dữ liệu tốt hơn Đặc biệt trong lĩnh vực kinh doanh, các doanh nghiệp đã nhận thức được tầm quan trọng của việc nắm bắt và xử lý thông tin, nhằm giúp các chủ doanh nghiệp trong việc vạch ra các chiến lược kinh doanh, kịp thời mang lại lợi nhuận to lớn Từ đó, khiến các tổ chức doanh nghiệp xây dựng một lượng dữ liệu khổng lồ cho riêng mình Các kho dữ liệu ngày càng lớn thì trong đó càng tiềm ẩn nhiều thông tin có ích
Khai phá dữ liệu (Data mining) là quá trình trích xuất các thông tin có giá trị tiềm ẩn bên trong khối lượng lớn dữ liệu được lưu trữ trong các cơ sở dữ liệu, kho dữ liệu Hiện nay, ngoài thuật ngữ khai phá dữ liệu người ta còn dùng một số thuật ngữ khác có ý nghĩa tương tự như: Khai phá tri thức từ CSDL (Knowledge mining from databases), trích lọc dữ liệu (Knowledge extraction), phân tích dữ liệu/mẫu (data/pattern analysis)…
1.1.1 Quy trình khai phá dữ liệu và phát hiện tri thức
Hình 1.1: Quy trình phát hiện tri thức
Từ dữ liệu thô quá trình khám phá tri thức có thể phân thành các bước sau:
Bước thứ nhất: Lựa chọn dữ liệu Là bước tuyển chọn những tập dữ liệu cần
Trang 15được khai phá từ các tập dữ liệu lớn (databases, data warehouses, data repositories) ban đầu theo một số tiêu chí nhất định
Bước thứ hai: Thu thập và tiền xử lý dữ liệu Là bước làm sạch dữ liệu (xử lý
dữ liệu thiếu, dữ liệu nhiễu, dữ liệu không nhất quán, ), tổng hợp dữ liệu, rời rạc hóa dữ liệu, Biến đổi dữ liệu Đây được xem là bước quan trọng và tiêu tốn thời gian nhất của toàn bộ quá trình KDD Sau bước tiền xử lý này, dữ liệu sẽ nhất quán, đầy
đủ, được rút gọn và rời rạc hóa
Bước thứ ba: Khai phá dữ liệu Là bước áp dụng những kỹ thuật phân tích
(phần nhiều là các kỹ thuật học máy) nhằm khai thác dữ liệu, trích lọc những mẫu tin (information patterns), những mối quan hệ đặc biệt trong dữ liệu
Bước thứ tư: Đánh giá và biểu diễn tri thức Những mẫu thông tin và mối quan
hệ trong dữ liệu đã được phát hiện ở bước khai phá dữ liệu được đánh giá theo những tiêu chí nhất định và được biểu diễn ở dạng gần gũi với người sử dụng như đồ thị, cây, bảng biểu, luật,
Bước thứ năm: Tri thức Là hiểu tri thức đã tìm được, đặc biệt là làm sáng tỏ
các mô tả và dự đoán
Các bước trên có thể lặp đi lặp lại một số lần, kết quả thu được có thể được lấy trung bình trên tất cả các lần thực hiện
1.1.2 Các phương pháp chính trong khai phá dữ liệu
Các phương pháp chính trong KPDL có thể được phân chia theo chức năng hay lớp các bài toán khác nhau như sau:
- Phân lớp và dự đoán (classicfication and prediction): Xếp một đối tượng
vào một trong những lớp đã biết trước Hướng tiếp cận này thường sử dụng các kỹ thuật như học máy (Machine learning), cây quyết định (Decision tree), mạng nơ ron nhân tạo (Neural network) Với phương pháp này còn được gọi là học có giám sát
- Luật kết hợp (Association rules): 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 Luật kết hợp được ứng dụng nhiều trong lĩnh vực kinh doanh, y học, tin sinh học, tài chính, thị trường chứng khoán
Trang 16- Khai phá chuỗi theo thời gian: 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
- Phân cụm và phân đoạn: Sắp xếp các đối tượng theo từng cụm dữ liệu
tự nhiên (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 (Unsupervised learning)
- Khái niệm và tổng hợp hóa: 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 tóm 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.1.3 Các cơ sở dữ liệu có thể khai phá
KPDL được ứng dụng rộng rãi nên có rất nhiều dạng dữ liệu khác nhau có thể khai phá Sau đây là một số dữ liệu điển hình:
- Cơ sở dữ liệu quan hệ: Là cơ sở dữ liệu tác nghiệp được tổ chức theo mô
hình 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
- 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 tác, 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
- CSDL đa chiều: Là các kho dữ liệu được tập hợp, chọn lọc từ nhiều nguồn
khác nhau CSDL đa chiều có mang tính lịch sử (mang tính thời gian) và chủ yếu phục vụ cho quá trình phân tích cũng như khai phá tri thức nhằm hỗ trợ quá trình
ra quyết định
- CSDL hướng đối tượng: Dữ liệu cũng được lưu trữ trong các bảng dữ liệu
nhưng các bảng có bổ sung thêm các tính năng hướng đối tượng như lưu trữ thêm các hành vi, nhằm thể hiện hành vi của đối tượng
- CSDL không gian: Bao gồm hai phần: Phần thứ nhất là dữ liệu quan hệ
Trang 17hay 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
- CSDL 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
- CSDL đa phương tiện: CSDL được tích hợp gồm nhiều dạng khác nhau
như: âm thanh, hình ảnh, văn bản
1.1.4 Kiến trúc của một hệ thống khai phá dữ liệu
Hình 1.2: Kiến trúc của một hệ khai phá dữ liệu điển hình
Kiến trúc của một hệ thống KPDL điển hình có thể có thành phần được mô tả trong hình Hình 1.2
CSDL, kho dữ liệu hoặc các lưu trữ thông tin khác: một hay một tập các 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 Kỹ thuật làm sạch
dữ liệu và tích hợp dữ liệu có thể được thể hiện trên những dữ liệu này
Máy chủ CSDL hay máy chủ kho dữ liệu: Máy chủ này có trách nhiệm lấy
Trang 18những dữ liệu thí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: Đây là miền tri thức đượ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 KPDL: Một hệ thống KPDL 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 hoá, kết hợp, phân lớp, phân cụm, phân tích sự tiến hoá
Modun đánh giá mẫu: Bộ phận này tương tác với các modun KPDL để 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ể modun đánh giá mẫu được tích hợp vào modun khai phá, tuỳ theo sự cài đặt của phương pháp khai phá được dùng
Giao diện đồ họa người dùng: Bộ phận này cho phép người dùng giao tiếp với
hệ thống KPDL 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 (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 khuôn dạng khác nhau
1.1.5 Khai phá dữ liệu và một số lĩnh vực liên quan
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, 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 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ác phương
Trang 19pháp khai phá dữ liệu không có gì là mới và hoàn toàn dựa trên các phương pháp cơ bản đã biết Nhưng có một số điểm khác biệt và ưu thế hơn so với các phương pháp
cơ bản như sau:
+ Học máy
+ Phương pháp hệ chuyên gia
+ Phát kiến khoa học
+ Phương pháp thống kê
Hình 1.3: Khai phá dữ liệu và các lĩnh vực có liên quan
Đặ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, với mục đích cuối cùng là trích rút ra
tri thức có ích trong CSDL khổng lồ
1.1.6 Một số ứng dụng của khai phá dữ liệu
+ Phân tích dữ liệu gen và sinh học y học
+ Phân tích dữ liệu tài chính
+ Phân tích các mẫu gian lận và xác định các mẫu khác thường
1.1.7 Các vấn đề về cơ sở dữ liệu
Dữ liệu lớn: Cho đến nay, các cơ sở dữ liệu với hàng trăm trường và bảng,
hàng triệu bản ghi và với kích thước đến gigabytes đã là chuyện bình thường Hiện nay đã bắt đầu xuất hiện các cơ sở dữ liệu có kích thước tới terabytes Các phương
Y tế
Thuật toán Giáo dục
Trang 20pháp giải quyết hiện nay là đưa ra một ngưỡng cho cơ sở dữ liệu, lấy mẫu, các phương pháp xấp xỉ, xử lý song song (Agrawal et al, Holsheimer et al)
Kích thước lớn: không chỉ có số lượng bản ghi lớn mà số các trường trong cơ
sở dữ liệu cũng nhiều Vì vậy mà kích thước của bài toán trở nên lớn hơn Một tập dữ liệu có kích thước lớn sinh ra vấn đề làm tăng không gian tìm kiếm mô hình suy diễn Hơn nữa, nó cũng làm tăng khả năng một giải thuật khai phá dữ liệu có thể tìm thấy các mẫu giả
Dữ liệu động: Đặc điểm cơ bản của hầu hết các cơ sở dữ liệu là nội dung của
chúng thay đổi liên tục Dữ liệu có thể thay đổi theo thời gian và việc khai phá dữ liệu cũng bị ảnh hưởng bởi thời điểm quan sát dữ liệu Vậy thay đổi dữ liệu nhanh chóng có thể làm cho các mẫu khai thác được trước đó mất giá trị Hơn nữa, các biến trong cơ sở dữ liệu của ứng dụng đã cho cũng có thể bị thay đổi, bị xóa hoặc là tăng lên theo thời gian
Các trường không phù hợp: Một đặc điểm quan trọng khác là tính không thích
hợp của dữ liệu, nghĩa là mục dữ liệu trở thành không thích hợp với trọng tâm hiện tại của việc khai thác Một khía cạnh khác đôi khi cũng liên quan đến độ phù hợp là tính ứng dụng của một thuộc tính đối với một tập con của cơ sở dữ liệu
Các giá trị bị thiếu: Sự có mặt hay vắng mặt của giá trị các thuộc tính dữ liệu
phù hợp có thể ảnh hưởng đến việc khai phá dữ liệu Trong hệ thống tương tác, sự thiếu vắng dữ liệu quan trọng có thể dẫn đến việc yêu cầu cho giá trị của nó hoặc kiểm tra để xác định giá trị của nó Hoặc cũng có thể sự vắng mặt của dữ liệu được coi như một điều kiện, thuộc tính bị mất có thể được coi như một giá trị trung gian và
là giá trị không biết
Các trường bị thiếu: Một quan sát không đầy đủ cơ sở dữ liệu có thể làm cho
các dữ liệu có giá trị bị xem như có lỗi Việc quan sát cơ sở dữ liệu phải phát hiện được toàn bộ các thuộc tính có thể dùng để giải thuật khai phá dữ liệu có thể áp dụng nhằm giải quyết bài toán
Độ nhiễu và không chắc chắn: Đối với các thuộc tính đã thích hợp, độ nghiêm
trọng của lỗi phụ thuộc vào kiểu dữ liệu của các giá trị cho phép Các giá trị của các
Trang 21thuộc tính khác nhau có thể là các số thực, số nguyên, chuỗi và có thể thuộc vào tập các giá trị định danh Các giá trị định danh này có thể sắp xếp theo thứ tự từng phần hoặc toàn phần, thậm chí có thể có cấu trúc ngữ nghĩa
Mối quan hệ phức tạp giữa các trường: các thuộc tính hoặc các giá trị có cấu
trúc phân cấp, các mối quan hệ giữa các thuộc tính và các phương tiện phức tạp để diễn tả tri thức về nội dung của cơ sở dữ liệu yêu cầu các giải thuật phải có khả năng
sử dụng một cách hiệu quả các thông tin này
1.2 Giới thiệu bài toán khai phá tập mục lợi ích cao
1.2.1 Khai phá tập mục thường xuyên
Bài toán truyền thống (hay còn gọi bài toán nhị phân) khai phá luật kết hợp do
R Agrawal, T Imielinski và A N Swami đề xuất và nghiên cứu lần đầu tiên vào năm 1993 Mục đích của nó là phát hiện các tập mục thường xuyên, từ đó tạo các luật kết hợp
Một hướng mở rộng của bài toán có nhiều ứng dụng là quan tâm đến cấu trúc
dữ liệu và mức độ khác nhau của các mục dữ liệu, các thuộc tính trong cơ sở dữ liệu Một số mô hình mở rộng của bài toán đã được nghiên cứu là:
- Quan tâm đến mức độ khác nhau của các mục dữ liệu bằng cách gán cho mỗi mục một giá trị gọi là trọng số Độ hỗ trợ và và tin cậy của luật kết hợp khi đó trở thành độ hỗ trợ và độ tin cậy có trọng số Luật kết hợp có độ hỗ trợ và độ tin cậy trọng
số hóa được gọi là luật kết hợp có trọng số
- Quan tâm tới các kiểu thuộc tính khác nhau trong cơ sở dữ liệu như nhị phân,
đa phân, định lượng Luật kết hợp lúc đó được gọi là luật kết hợp định lượng Để tìm các luật kết hợp định lượng người ta đưa bài toán về dạng nhị phân bằng cách phân khoảng các giá trị thuộc tính, sau đó có thể sử dụng các thuật toán khai phá dữ liệu nhị phân đã biết
- Chú ý đến cả cấu trúc dữ liệu lẫn mức độ quan trọng khác nhau của các thuộc tính trong cơ sở dữ liệu Theo hướng này, nhiều nhà nghiên cứu đã đề xuất các mô hình mở rộng: khai phá tập mục cổ phần cao đánh giá sự đóng góp của tập mục trong tổng số các mục của cơ sở dữ liệu; khai phá tập mục lợi ích cao, đánh giá lợi ích mà
Trang 22tập mục mang lại trong cơ sở dữ liệu
Trong khai phá luật kết hợp cơ bản, 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, tính chất đóng xuống của tập mục thường xuyên Đó 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
Gần đây, nhằm khắc phục hạn chế của bài toán cơ bản khai phá luật kết hợp, người ta đã mở rộng nó theo nhiều hướng khác nhau Theo tác giả Vũ đức Thi [1], đã trình bày bài toán khai phá tập mục lợi ích cao Khai phá tập mục lợi ích cao là khám
phá tất cả tập mục X đem lại lợi ích xác định bởi người sử dụng
1.2.2 Giới thiệu bài toán khai thác tập lợi ích cao
Trong mô hình khai thác lợi ích cao, giá trị của mục dữ liệu trong giao tác là một số (chẳng hạn như số lượng đã bán của mặt hàng), 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 đó, 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 thác lợi ích cao là khai thác tất cả các tập mục X có lợi ích, không nhỏ hơn giá trị ngưỡng tối thiểu quy định bởi người sử dụng 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 tậ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 thác tập mục thường xuyên.Vì thế thách thức trong việc khai thác lợi ích là giới hạn kích thước của tập ứng viên và đơn giản việc tính toán để tính lợi ích
Trang 231.2.3 Cách tiếp cận trong khai thác tập lợi ích cao
-Dựa vào biên trên của độ có ích: công thức chặn trên của độ có ích, đồng thời
phát triển thuật toán UMining_H để tìm tập lợi ích cao
-Dựa vào định nghĩa về TWU: TWU thỏa tính chất Apriori để từ đó hình thành
nên thuật toán Two-Phase dựa trên thuật toán Apriori
-Dựa trên TWU và FP-tree, phát triển thuật toán HUIs dựa vào FP-tree -Dựa trên TWU và phương pháp cắt tỉa bằng cách ước lượng giá trị lợi ích
đồng thời mang tên EUCP
1.3 Các định nghĩa và quy ước trong khai thác tập mục lợi ích cao
Định nghĩa 1.1: Cơ sở dữ liệu giao tác: Cho tập các mục I= {i1,i2,…in} Một
giao tác T c là tập con của I,T c ∈ I Cơ sở dữ liệu giao tác là một tập các giao tác D =
{T1, T2, , T n }.Mỗi một giao tác T c , T c ∈ I và c được gán một định danh gọi là TID Mỗi mục i ∈ I liên quan đến một số dương 𝑝(𝑖) được gọi là lợi ích bên ngoài (ví dụ đơn vị lợi nhuận hay còn gọi là giá trị chủ quan ) Đối với mỗi giao tác T c mà
i ∈ T c là một số dương q(i, T c ) được gọi là lợi ích trong của i (ví dụ như số lượng
hàng hóa bán hay còn gọi là giá trị khách quan)
Ví dụ 1.1: Xem xét cơ sở dữ liệu của Bảng 1.1 (bên trái) Cơ sở dữ liệu này có
5 giao tác T1, T2, T 3 , T4 T5 Giao tác 𝑇2 cho thấy các mục 𝑎, 𝑐, 𝑒 và 𝑔 xuất hiện trong giao tác này cùng với lợi ích trong tương ứng (số lượng hàng hóa bán ) là: 2, 6, 2 và
5 Bảng 1.1 cho thấy các lợi ích bên ngoài (đơn vị lợi nhuận) của các mục tương ứng
5 2 1 2 3 1 1
Trang 24Định nghĩa 1.2: Lợi ích của một mục/tập mục trong giao tác: Lợi ích của một
mục i trong một giao tác Tc được ký hiệu là u(i,T c ) và được định nghĩa là: 𝑝(𝑖) × 𝑞(𝑖, 𝑇𝑐) Lợi ích của tập mục 𝑋 (một nhóm tập mục 𝑋 ⊆ 𝐼) trong một giao tác 𝑇𝑐được ký hiệu là: 𝑢(𝑋, 𝑇𝑐) là tổng lợi ích của tất cả các mục i c thuộc X tại giao tác T c, tức là 𝑢(𝑋, 𝑇𝑐) =∑𝑖∈𝑋𝑢(𝑖, 𝑇𝑐) Ví dụ 1.2 Lợi ích của mục 𝑎 trong 𝑇2 là 𝑢(𝑎, 𝑇2) = 5
x 2 = 10 Lợi ích của tập mục {𝑎, 𝑐} trong 𝑇2 là 𝑢({𝑎, 𝑐}, 𝑇2) = 𝑢(𝑎, 𝑇2) + 𝑢(𝑐, 𝑇2) = 5 x 2 + 1 x 6 = 16
Định nghĩa 1.3: Lợi ích của một tập mục trong cơ sở dữ liệu giao tác: Lợi ích
của một tập mục 𝑋 được ký hiệu là 𝑢(𝑋) và được xác định là 𝑢(𝑋) =
∑𝑇𝑐∈𝑔(𝑋)𝑢(𝑋, 𝑇𝑐) khi 𝑔(𝑋) là tập hợp các giao tác chứa 𝑋 Ví dụ 1.3 Lợi ích của tập mục {𝑎, 𝑐} là 𝑢({𝑎, 𝑐}) = 𝑢(𝑎) + 𝑢(𝑐) = 𝑢(𝑎, 𝑇1) + 𝑢(𝑎, 𝑇2) + 𝑢(𝑎, 𝑇3) + 𝑢(𝑐, 𝑇1) + 𝑢(𝑐, 𝑇2) + 𝑢(𝑐, 𝑇3) = 5 + 10 + 5 + 1 + 6 + 1 =28
Định nghĩa 1.4: Khai phá tập mục lợi ích cao: Vấn đề của khai phá tập mục
lợi ích cao là phát hiện ra tất cả các tập mục có lợi ích cao Một tập 𝑋 được coi là tập mục lợi ích cao nếu độ lợi ích của nó 𝑢(𝑋) không nhỏ hơn ngưỡng lợi ích tối đa 𝑚𝑖𝑛𝑢𝑡𝑖𝑙 do người dùng đặt ra Nếu không nó là tập lợi ích thấp
Ví dụ 1.4: Nếu 𝑚𝑖𝑛𝑢𝑡𝑖𝑙 = 30, các tập mục lợi ích cao trong dữ liệu ở ví dụ này
Trang 25Định nghĩa 1.5: Lợi ích giao tác: lợi ích giao tác (TU) của một giao tác 𝑇𝑐 là tổng lợi ích của các mục từ 𝑇𝑐thuộc 𝑇𝑐 Tức là:
𝑇𝑈(𝑇𝑐) = ∑ 𝑢(𝑥, 𝑇𝑐)
𝑥∈𝑇 𝑐
Ví dụ 1.5 Bảng 1.2 (trái) cho thấy TU của các giao tác 𝑇1, 𝑇2, 𝑇3, 𝑇4, 𝑇5
Định nghĩa 1.6: Lợi ích trọng số của giao tác: trọng số độ lợi ích của giao tác
(TWU) của một tập mục X được xác định là tổng lợi ích giao tác của các giao tác chứa X, tức là:
𝑇𝑊𝑈 (𝑋) = ∑ 𝑇𝑈 (𝑇𝑐)
𝑇𝑐∈𝑔(𝑋)
Ví dụ 1.6 Bảng 1.2 (giữa) cho thấy TWU của các mục đơn 𝑎, 𝑏, 𝑐, 𝑑, 𝑒, 𝑓, 𝑔
Xét mục 𝑎 𝑇𝑊𝑈(𝐴) = 𝑇𝑈(𝑇1) + 𝑇𝑈(𝑇2) + 𝑇𝑈(𝑇3) = 8 + 27 + 30 = 65
Thuật toán TWU có ba tính chất quan trọng để cắt tỉa không gian tìm kiếm
Tính chất 1.1: Trọng số độ lợi ích của giao tác đối với tập mục 𝑋 lớn hơn hoặc bằng với lợi ích của nó, ví dụ: 𝑇𝑊𝑈 (𝑋) ≥ 𝑢(𝑋)
Tính chất 1.2: Thuật toán TWU chống đơn điệu Coi như 𝑋 và 𝑌 là hai tập mục Nếu 𝑋 ⊂ 𝑌 thì 𝑇𝑊𝑈(𝑋) ≥ 𝑇𝑊𝑈(𝑌)
Tính chất 1.3: Coi 𝑋 là một tập mục Nếu 𝑇𝑊𝑈(𝑋) < 𝑚𝑖𝑛𝑢𝑡𝑖𝑙 thì tập 𝑋 là tập mục lợi ích thấp như tất cả các tập con khác rỗng của nó Chứng minh Được áp
dụng trực tiếp từ tính chất 1.1 và tính chất 1.2
Định nghĩa 1.7: Danh sách lợi ích: Xét ≻ là tổng thứ tự toàn phần các hạng
mục trong 𝐼 Danh sách lợi ích (utility-list) của một mục 𝑋 trong cơ sở dữ liệu 𝐷 là
một tập hợp các bộ, theo đó có 1 bộ (𝑡𝑖𝑑, 𝑖𝑢𝑡𝑖𝑙, 𝑟𝑢𝑡𝑖𝑙) đối với mỗi giao tác 𝑇𝑡𝑖𝑑chứa
𝑋 Mục 𝑖𝑢𝑡𝑖𝑙 của 1 bộ là lợi ích của 𝑋 trong 𝑇𝑡𝑖𝑑 là: u(X,T tid) Mục 𝑟𝑢𝑡𝑖𝑙 của một bộ được xác định là:
∑𝑖∈𝑇𝑡𝑖𝑑∧𝑖∈𝑋𝑈(𝑖, 𝑇𝑡𝑖𝑑) Ký hiệu UL(X)
Ví dụ 1.7 Danh sách lợi ích của {𝑎} là {(𝑇1, 5, 3)(𝑇2, 10, 17), (𝑇3, 5, 25)} Danh sách lợi ích của {𝑒} là {(𝑇2, 6, 5)(𝑇3, 3, 5), (𝑇4, 3, 0)} Danh sách lợi ích của {𝑎, 𝑒} là {(𝑇2, 16, 5), (𝑇3, 8, 5)}
Trang 26Tính chất 1.4: Tổng iutils Gọi 𝑋 là một tập mục Nếu tổng các giá trị của
𝑖𝑢𝑡𝑖𝑙 trong danh sách lợi ích của 𝑋 lớn hơn hoặc bằng 𝑚𝑖𝑛𝑢𝑡𝑖𝑙, khi đó 𝑋 là một tập lợi ích cao Ngược lại, nó sẽ là lợi ích thấp
Tính chất 1.5: Sử dụng danh sách lợi ích để tính toán lợi ích của một tập
mục.Lợi ích của một tập mục là tổng các giá trị 𝑖𝑢𝑡𝑖𝑙 trong danh sách lợi ích
Tính chất 1.6: Tổng iutils và rutils Gọi 𝑋 là một tập mục Gọi những phần
mở rộng của 𝑋 là những tập mục có được bằng cách thêm một mục 𝑦 vào 𝑋 sao cho
𝑦 ≻ 𝑖 đối với tất cả các mục 𝑖 trong 𝑋 Nếu tổng giá trị của 𝑖𝑢𝑡𝑖𝑙 và 𝑟𝑢𝑡𝑖𝑙 trong danh sách lợi ích của 𝑥 nhỏ hơn 𝑚𝑖𝑛𝑢𝑡𝑖𝑙, tất cả các phần mở rộng của 𝑋 và phần mở rộng chuyển tiếp (bắc cầu) là các tập mục lợi ích thấp
Tính chất 1.7: Sử dụng danh sách lợi ích để tỉa không gian tìm kiếm Xét 𝑋
là một tập mục Coi phần mở rộng của 𝑋 là các tập mục thu về bằng cách thêm một mục 𝑦 vào 𝑋 sao cho 𝑦 ≻ 𝑖, ∀𝑖 ∈ 𝑋 Nếu tổng các giá trị của 𝑖𝑢𝑡𝑖𝑙 và 𝑟𝑢𝑡𝑖𝑙 trong 𝑢𝑙(𝑋) nhỏ hơn 𝑚𝑖𝑛𝑢𝑡𝑖𝑙 thì 𝑋 và phần mở rộng của nó là lợi ích thấp
Tính chất 1.8: Cho một tập X Lợi ích u(X) bằng với tổng các giá trị iutil trong
ul (X) [12]
Tính chất 1.9: Cho một tập X Tổng các giá trị iutil và rutil trong ul(X) là một
giới hạn trên của u(X) Hơn nữa, có thể chứng minh rằng giới hạn trên này chặt chẽ
hơn TWU(X)
1.4 Kết luận chương 1
Chương 1 đã trình bày tổng quan về KPDL và KDD, trình bày khái quát về bài toán khai phá tập mục thường xuyên, khai phá dữ liệu lợi ích cao, một số định nghĩa, tính chất đối với bài toán khai phá tập mục lợi ích cao sử dụng cho các chương tiếp theo
Trang 27Chương 2 - THUẬT TOÁN KHAI PHÁ
có tầm quan trọng như nhau (trọng số, lợi nhuận đơn vị hoặc giá trị) Những giả định này thường không có trong thực tế Ví dụ, hãy xét một cơ sở dữ liệu các giao tác của khách hàng có chứa thông tin về số lượng các mặt hàng trong mỗi giao tác và lợi nhuận đơn vị của mỗi mặt hàng Các thuật toán khai thác FIM sẽ loại bỏ thông tin này và do đó có thể phát hiện ra nhiều tập thường xuyên tạo ra lợi nhuận thấp nhưng không phát hiện ra những tập ít thường xuyên nhưng có lợi nhuận cao
Để giải quyết tình trạng này, vấn đề của FIM đã được xác định lại là việc khai phá các tập mục lợi ích cao (HUIM) nhằm xem xét trường hợp các mục có thể xuất hiện nhiều lần trong mỗi giao tác và mỗi mục có một trọng số (ví dụ: đơn vị lợi nhuận) Mục tiêu của HUIM là phát hiện các tập mục có lợi ích cao (ví dụ: tạo ra lợi nhuận cao) HUIM có nhiều ứng dụng như phân tích luồng nhấp chuột trang web, tiếp thị chéo trong các cửa hàng bán lẻ và các ứng dụng y sinh học [7, 24, 29] HUIM cũng dựa trên ý tưởng từ một số công việc khai phá dữ liệu quan trọng như khai phá
mô hình có trình tự lợi ích cao [36] và khai phá dòng lợi ích cao [28]
Vấn đề của HUIM được đánh giá là khó khăn hơn vấn đề của FIM Trong FIM, mọi tập con khác rỗng của tập thường xuyên cũng là tập thường xuyên và mọi tập chứa tập không thường xuyên đều là tập không thường xuyên Tính chất này vô cùng hiệu quả để cắt tỉa không gian tìm kiếm Còn đối với HUIM, lợi ích của một tập mục
Trang 28không đơn điệu cũng không chống đơn điệu, đó là một tập lợi ích cao bao gồm một tập con với lợi ích thấp hơn, bằng hoặc lớn hơn [6] Chính vì vậy, các kỹ thuật để tỉa không gian tìm kiếm được phát triển trong FIM không áp dụng đối với HUIM
Nhiều nghiên cứu đã được tiến hành với mục đích phát triển thuật toán HUIM [7, 24, 27, 29] Một cách tiếp cận phổ biến tới HUIM là phát hiện các tập mục lợi ích cao trong hai giai đoạn bằng cách sử dụng mô hình đóng của trọng số giao tác [27, 7, 29] Giai đoạn 1, các thuật toán được tạo ra một tập hợp các tập lợi ích cao thông qua việc ước tính vượt mức lợi ích của chúng Sau đó, ở giai đoạn 2, các thuật toán tiến hành quét cơ sở dữ liệu để tính chính xác độ lợi ích của các ứng viên và sàng lọc các tập lợi ích thấp
Để giảm số lượng các kết nối được thực hiện, một chiến lược cắt tỉa mới có tên là EUCP (Tỉa đồng thời lợi ích ước tính) cho phép tỉa các tập mục mà không cần thực hiện phép nối Chiến lược này rất dễ triển khai và rất hiệu quả và được sử dụng
trong thuật toán FHM (Fast High-utility Miner)
2.1.2 Nội dung thuật toán FHM
Hình 2.1: Thuận toán FHM
Thủ tục chính (Hình 2.1) lấy giá trị lợi ích là ngưỡng 𝑚𝑖𝑛𝑢𝑡𝑖𝑙 làm đầu vào của
cở sở dữ liệu Đầu tiên nó quét cơ sở dữ liệu để tính TWU của mỗi mục Sau đó nó xác định tập hợp 𝐼∗ của tất cả các mục có một TWU không nhỏ hơn 𝑚𝑖𝑛𝑢𝑡𝑖𝑙 (các mục khác bị bỏ qua vì chúng không thể là một phần của một tập mục lợi ích cao theo tính chất 1.1) Giá trị TWU của các mục sau đó được sử dụng để thiết lập một thứ tự toàn phần ≻ trên các mục, đó là thứ tự tăng dần của các giá trị TWU (được gợi ý
Trang 29[26]) Việc phát hiện HUIs bằng cách thực hiện quét cơ sở dữ liệu đơn để thiết lập những danh sách lợi ích của các mẫu có chứa các mục đơn Sau đó, ta thu được các mẫu dài hơn bằng cách thực hiện các hoạt động nối các danh sách lợi ích của mẫu ngắn Hoạt động kết nối các mục đơn được thực hiện như sau:
Xét hai mục 𝑥, 𝑦 sao cho 𝑥 ≻ 𝑦 và các danh sách lợi ích của nó là 𝑢𝑙({𝑥})và 𝑢𝑙({𝑦}).Danh sách lợi ích của {𝑥, 𝑦} được tính bằng cách tạo một bộ (𝑒𝑥 𝑡𝑖𝑑, 𝑒𝑥 𝑖𝑢𝑡𝑖𝑙 + 𝑒𝑦 𝑖𝑢𝑡𝑖𝑙, 𝑒𝑦 𝑟𝑢𝑡𝑖𝑙) cho mỗi cặp bộ 𝑒𝑥 ∈ 𝑢𝑙({𝑥}) và 𝑒𝑦 ∈𝑢𝑙({𝑦}) sao cho 𝑒𝑥 𝑡𝑖𝑑 = 𝑒𝑦 𝑡𝑖𝑑 Hoạt động kết nối hai tập mục 𝑃 ∪ {𝑥} và 𝑃 ∪ {𝑦} sao cho 𝑥 ≻ 𝑦 được thực hiện như sau Coi 𝑢𝑙(𝑃), 𝑢𝑙({𝑥}) và 𝑢𝑙({𝑦}) là những danh sách lợi ích của 𝑃, {𝑥}và {𝑦} Danh sách lợi ích của 𝑃 ∪ {𝑥, 𝑦} có được thông qua việc tạo một bộ (𝑒𝑥 𝑡𝑖𝑑, 𝑒𝑥 𝑖𝑢𝑡𝑖𝑙 + 𝑒𝑦 𝑖𝑢𝑡𝑖𝑙 − 𝑒𝑝 𝑖𝑢𝑡𝑖𝑙, 𝑒𝑦 𝑟𝑢𝑡𝑖𝑙) đối với mỗi bộ 𝑒𝑥 ∈𝑢𝑙({𝑥}), 𝑒𝑦 ∈ 𝑢𝑙({𝑦}), 𝑒𝑝 ∈ 𝑢𝑙(𝑃) sao cho 𝑒𝑥 𝑡𝑖𝑑 = 𝑒𝑦 𝑡𝑖𝑑 = 𝑒𝑝 𝑡𝑖𝑑
Sau đó thực hiện quét cơ sở dữ liệu lần thứ 2 Trong quá trình quét cơ sở dữ liệu này, các mục trong giao tác được sắp xếp lại theo thứ tự toàn phần ≻, danh sách
lợi ích của mỗi mục i ∈ I* được xây dựng và cấu trúc đó được đặt tên là EUCS (Cấu
trúc ước lượng giá trị lợi ích đồng thời) Cấu trúc mới này được định nghĩa là một bộ
ba có dạng (𝑎, 𝑏, 𝑐) ∈ 𝐼∗× 𝐼∗× 𝑅 Một bộ ba (𝑎, 𝑏, 𝑐) chỉ ra TWU({𝑎, 𝑏}) = 𝑐 EUCS
có thể được thực hiện như một ma trận tam giác được thể hiện trên Bảng 1.2 (bên
phải) hoặc như một bản đồ băm với các bộ có dạng (𝑎, 𝑏, 𝑐) sao cho 𝑐 ≠ 0 Xây dựng EUCS vô cùng nhanh (nó được thực hiện với một cơ sở dữ liệu quét duy nhất) và chiếm một lượng nhỏ bộ nhớ, được giới hạn bởi |𝐼∗| × |𝐼∗|, dù trong thực tế kích thước nhỏ hơn rất nhiều bởi vì số lượng các cặp mục đồng thời xảy ra trong các giao tác Sau khi xây dựng EUCS, thuật toán tìm kiếm theo chiều sâu của các tập mục bắt
đầu gọi thủ tục đệ quy Search với tập mục rỗng ∅, tập hợp các mục đơn 𝐼∗, 𝑚𝑖𝑛𝑢𝑡𝑖𝑙
và EUCS
Thủ tục Search (Hình 2.2) lấy đầu vào: (1) là một tập mục 𝑃, (2) phần mở rộng
của 𝑃 có dạng Pz nghĩa là có được Pz bằng cách thêm mục 𝑧 vào 𝑃, (3) 𝑚𝑖𝑛𝑢𝑡𝑖𝑙 và (4) EUCS
Trang 30Thủ tục Search được thực hiện như sau: Đối với mỗi phần mở rộng 𝑃𝑥 của 𝑃,
nếu tổng các giá trị 𝑖𝑢𝑡𝑖𝑙 của danh sách lợi ích của 𝑃𝑥 không nhỏ hơn 𝑚𝑖𝑛𝑢𝑡𝑖𝑙 thì 𝑃𝑥
là một tập mục lợi ích cao và là đầu ra (tính chất 1.4) Sau đó, nếu tổng của các giá trị 𝑖𝑢𝑡𝑖𝑙 và 𝑟𝑢𝑡𝑖𝑙 trong danh sách lợi ích của 𝑃𝑥 không nhỏ hơn 𝑚𝑖𝑛𝑢𝑡𝑖𝑙, điều này có nghĩa là những phần mở rộng của 𝑃𝑥 cần được khám phá Việc này được thực hiện bằng cách gộp 𝑃𝑥 với tất cả phần mở rộng của 𝑃𝑦 thuộc 𝑃 sao cho 𝑦 ≻ 𝑥 để hình thành các phần mở rộng có dạng 𝑃𝑥𝑦 chứa |𝑃𝑥| + 1 mục Danh sách lợi ích của 𝑃𝑥𝑦
sau đó được xây dựng bằng cách gọi thủ tục Construct (Hình 2.3) để nối các danh sách lợi ích của 𝑃, 𝑃𝑥 và 𝑃𝑦 Sau đó, gọi đệ quy 𝑃𝑥𝑦 tới thủ tục Search được thực hiện nhằm tính độ lợi ích của 𝑃𝑥𝑦 và khám phá các tập mở rộng của nó
Hình 2.2: Thuật toán Seach
Thủ tục Search bắt đầu từ các hạng mục đơn, nó sẽ tiến hành thăm dò đệ quy
không gian tìm kiếm của các tập mục bằng cách nối các mục đơn và chỉ tỉa không gian tìm kiếm theo như tính chất 1.5 Có thể dễ dàng thấy được, theo tính chất 1.4 và
Trang 31tính chất 1.5, thủ tục này chính xác và hoàn thành việc thăm dò tất cả các tập tin lợi ích cao
Hình 2.3: Thuật toán Construct Cắt tỉa đồng thời Điểm mới của FHM là cơ chế cắt tỉa mới có tên là EUCP
(Tỉa đồng thời lợi ích ước tính), dựa vào cấu trúc mới EUCS EUCP dựa vào sự quan
sát rằng một trong những hoạt động tốn kém nhất của HUI-Miner là hoạt động kết nối EUCP là một chiến lược cắt tỉa để trực tiếp loại bỏ sự mở rộng lợi ích thấp 𝑃𝑥𝑦
và tất cả các mở rộng chuyển tiếp mà không cần xây dựng danh sách lợi ích của
chúng Điều này được thực hiện ở dòng 8 trong thủ tục Search Điều kiện cắt tỉa là
nếu không có bộ (𝑥, 𝑦, 𝑐) trong EUCS sao cho 𝑐 ≥ 𝑚𝑖𝑛𝑢𝑡𝑖𝑙, sau đó 𝑃𝑥𝑦 và tất cả các mục khác rỗng đều là các tập lợi ích thấp và không cần phải khám phá Chiến lược này vô cùng chính xác (chỉ tỉa các tập lợi ích thấp) Bằng chứng là theo tính chất 1.1, nếu một tập 𝑋 chứa tập 𝑌 khác sao cho 𝑇𝑊𝑈(𝑌) < 𝑚𝑖𝑛𝑢𝑡𝑖𝑙, và theo đó, 𝑋 và các mục khác rỗng là các tập lợi ích thấp
Một câu hỏi quan trọng về chiến lược EUCP được đặt ra là: Chúng ta không những kiểm tra điều kiện của 𝑥, 𝑦 trong mỗi cuộc gọi để thủ tục Search mà còn phải kiểm tra điều kiện của tất cả các cặp mục khác sao cho 𝑎, 𝑏 ∈ 𝑃𝑥𝑦? Câu trả lời là
Trang 32không vì thủ tục Search là duy nhất và do đó tất cả các cặp mục khác trong 𝑃𝑥𝑦 đã được kiểm tra ở những lần trước trong thủ tục Search đến 𝑃𝑥𝑦 Ví dụ, xét một tập
𝑍 = {𝑎1, 𝑎2, 𝑎3, 𝑎4} Để tạo ra được tập này, thủ tục Search phải kết hợp {𝑎1, 𝑎2, 𝑎3}
và {𝑎1, 𝑎2, 𝑎4}, thu được bằng cách kết hợp {𝑎1, 𝑎2} với {𝑎1, 𝑎3} và {𝑎1, 𝑎2} với {𝑎1, 𝑎4}, thu được bằng cách kết hợp các mục đơn Nó có thể thu được dễ dàng khi tạo ra 𝑍 tất cả các cặp mục trong 𝑍 được EUCP kiểm tra lại ngoại trừ {𝑎3, 𝑎4}
2.2 Thuật toán FHN
2.2.1 Đặt vấn đề
Nhiều nghiên cứu đã được thực hiện để phát triển các thuật toán HUIM một cách hiệu quả [7, 24, 10, 26, 27, 29, 32] Tuy nhiên, các thuật toán này không được
thiết kế để xử lý các mục có trọng số hoặc lợi nhuận đơn vị âm, mặc dù các mục đó
xuất hiện nhiều trong cơ sở dữ liệu giao tác thực tế.Ví dụ, thông thường các cửa hàng bán lẻ sẽ bán lỗ vốn một mặt hàng nào đó (ví dụ như máy in) để kích thích việc bán các mặt hàng có liên quan khác (ví dụ như hộp mực máy in độc quyền) Điều này chứng minh rằng nếu các thuật toán HUIM cổ điển được áp dụng cho các cơ sở dữ liệu chứa các mục có lợi nhuận đơn vị, họ có thể tạo ra các tập mục không hoàn chỉnh [5] Lý do là các thuật toán này đã ước tính quá mức lợi ích của các tập dữ liệu nhằm cắt tỉa không gian tìm kiếm Tuy nhiên, khi các mục có lợi nhuận âm được xem xét, các ước tính này có thể bị đánh giá thấp, và do đó các tập HUIs có thể được cắt tỉa
Trong mục này, tác giả trình bày một thuật toán có tên là FHN (Khai phá hiệu
quả tập mục lợi ích cao với lợi nhuận đơn vị âm) để khai phá HUIs trong khi xem xét
cả lợi nhuận đơn vị dương và âm Nó mở rộng thuật toán FHM [10] để xử lý các khoản lợi nhuận âm một cách triệt để
Để thực hiện thuật toán khi sử dụng đơn vị lợi nhuận âm ta cần định nghĩa lại như lợi ích bên ngoài chấp nhận hai giá trị dương và âm
Định nghĩa 2.1: (cơ sở dữ liệu giao tác): Cho tập các mục I= {i1,i2,…in} Một
giao tác T c là tập con của I,T c ∈ I Cơ sở dữ liệu giao tác là một tập các giao tác D =
{T1, T2, , T n }.Mỗi một giao tác T c , T c ∈ I và c được gán một định danh gọi là TID Mỗi mục i ∈ I liên quan đến một số dương hoặc một số âm 𝑝(𝑖) được gọi là lợi
Trang 33ích bên ngoài (ví dụ đơn vị lợi nhuận) Đối với mỗi giao tác T c mà i ∈ T c là một số
dương q(i, T c ) được gọi là lợi ích trong của i (số lượng hàng hóa bán)
Bảng 2.1: Cơ sở dữ liệu (trái) và giá trị lợi ích bên ngoài (phải)
Ví dụ 2.1: Xem xét cơ sở dữ liệu của Bảng 2.1 (bên trái), sẽ được sử dụng
làm ví dụ thực tế Cơ sở dữ liệu này có 5 giao tác (𝑇1, 𝑇2, … , 𝑇5) Giao tác 𝑇2 cho thấy các mục 𝑎, 𝑐, 𝑒 và 𝑔 xuất hiện trong giao tác này cùng với lợi ích trong tương ứng của
2, 6, 2 và 5 Bảng 2.1 (bên phải) cho thấy các lợi ích bên ngoài của các mục tương
ứng là -5, 1, 3 và 1 Như vậy mục 𝑎 sẽ bị bán lỗ
Định nghĩa 2.2: Vấn đề của việc khai phá HUI có/không có lợi nhuận âm:
Coi 𝑚𝑖𝑛𝑢𝑡𝑖𝑙 là một ngưỡng mà người dùng đặt ra Một tập mục sẽ là một tập mục lợi ích cao nếu 𝑢(𝑋) ≥ 𝑚𝑖𝑛𝑢𝑡𝑖𝑙 Ngược lại 𝑋 là tập mục lợi ích thấp
Ví dụ 2.2: Nếu 𝑚𝑖𝑛𝑢𝑡𝑖𝑙 = 20, hai mươi HUIs sẽ được tìm thấy trong cơ sở dữ
liệu Cụ thể:{𝑎, 𝑏, 𝑐, 𝑑, 𝑒, 𝑓}:20, {𝑏, 𝑑, 𝑓}:21, {𝑏, 𝑑, 𝑒, 𝑓}:24, {𝑏, 𝑐, 𝑑, 𝑒, 𝑓}:25, {𝑏, 𝑐, 𝑑, 𝑓}:22, {𝑑, 𝑒, 𝑓}:20, {𝑐, 𝑑, 𝑒, 𝑓}:21, {𝑐, 𝑒, 𝑔}:24, {𝑑}:20, {𝑏, 𝑑}:30, {𝑏, 𝑑, 𝑒}:36, {𝑏, 𝑐, 𝑑, 𝑒}:40, {𝑏, 𝑐, 𝑑}:34, {𝑑, 𝑒}:24, {𝑐, 𝑑, 𝑒}:28, {𝑐, 𝑑}:25, {𝑏, 𝑒}:25, {𝑏, 𝑐, 𝑒}:31, {𝑏, 𝑐}:22 và {𝑐, 𝑒}:27, trong đó số lượng mỗi tập mục sau là giá tri lợi ích của nó
Hai tính chất HUIs với các mục có lợi nhuận đơn vị âm là như sau:
Tính chất 2.1: Một HUI có thể chứa các mục có giá trị lợi ích bên ngoài âm
Ta có thể thấy rõ ràng từ ví dụ là HUI có thể chứa các mục có giá trị lợi ích bên ngoài
âm Ví dụ, {𝑎, 𝑏, 𝑐, 𝑑, 𝑒, 𝑓} chứa a, trong đó có một lợi ích bên ngoài là -5
Tính chất 2.2: Một HUI phải chứa ít nhất một mục có lợi ích bên ngoài dương
[5] Mặc dù một HUI có thể hoặc không thể chứa những mục có những giá trị lợi ích
-5 2 1 2 3 1 1
Trang 34bên ngoài âm, một HUI cần phải chứa ít nhất một mục có giá trị lợi ích bên ngoài dương (nếu không lợi ích của nó sẽ mang giá trị âm và nó sẽ không phải là một HUI)
Có thể chứng minh các phương pháp hữu ích không hề đơn điệu hoặc chống lại sự đơn điệu Nói cách khác, một tập mục có thể có một lợi ích thấp hơn, bằng hoặc lớn hơn lợi ích của các tập con của nó Do đó các chiến lược đã được sử dụng trong FIM để tỉa không gian tìm kiếm dựa trên tính chống đơn điệu của độ hỗ trợ không thể áp dụng trực tiếp để phát hiện các tập mục lợi ích cao.Một số thuật toán HUIM
đã gây rắc rối cho vấn đề này bằng cách đánh giá quá cao lợi ích của các tập dữ liệu thông qua việc sử dụng một thuật toán gọi là trọng số độ lợi ích của giao tác (TWU) [7, 27, 29], đó là tính phản đơn điệu.Thuật toán TWU giả định rằng tất cả các mục có giá trị lợi ích bên ngoài dương
Thuật toán TWU có ba tính chất quan trọng được áp dụng để cắt tỉa không gian tìm kiếm Các tính chất này chỉ giữ lại nếu giá trị lợi ích bên ngoài của chúng là dương [5] Như tính chất 1.1, như tính chất 1.2 và như tính chất 1.3
Phần lớn các thuật toán khai phá lợi ích cao chỉ xử lý các giá trị lợi ích bên ngoài dương (ví dụ Two-Phase [27], IHUP [7] và UPGrowth [29] sử dụng tính chất 1.3 để tỉa không gian tìm kiếm Chúng hoạt động dựa trên 2 giai đoạn Giai đoạn 1,
họ xác định những ứng viên thuộc các tập mục lợi ích cao bằng cách sử dụng thuật toán TWU Ở giai đoạn 2, họ quét cơ sở dữ liệu để tính toán chính xác lợi ích của các ứng viên được tìm thấy trong giai đoạn 1 để loại bỏ các tập mục lợi ích thấp.Tuy nhiên, nếu những thuật toán này được áp dụng trên cơ sở dữ liệu có chứa lợi nhuận
âm thì một số HUIs sẽ không thể xuất ra.Ví dụ, hãy xem xét các ví dụ đang thực hiện Nếu mục 𝑎 có một lợi ích là -5 thay vì 5 như chúng ta đã từng xét, 𝑇𝑊𝑈({𝑐, 𝑒, 𝑔}) =𝑇𝑊𝑈(𝑇2) = 7 và 𝑢({𝑐, 𝑒, 𝑔}) = 17, thì nó sẽ mâu thuẫn với tính chất 1.2 và chỉ ra TWU của một tập mục là việc đánh giá quá cao lợi ích của nó Kết quả là nếu 𝑚𝑖𝑛𝑢𝑡𝑖𝑙
= 10, tập mục {𝑐, 𝑒, 𝑔} sẽ không được xuất ra bằng các thuật toán dựa trên tính chất này mặc dù tập mục này là HUI (nó sẽ được tỉa vì 𝑇𝑊𝑈({𝑐, 𝑒, 𝑔}) < 𝑚𝑖𝑛𝑢𝑡𝑖𝑙)
Để khai phá các tập mục lợi ích cao khi xem xét lợi nhuận cả dương và âm và đưa ra toàn bộ các tập hợp HUIs, thuật toán đương đại sẽ là HUINIV-Mine [5] Đó
Trang 35là một phần mở rộng của thuật toán Two-Phrase [27] Để giải quyết các vấn đề nêu trên, HUINIV-Mine xác định lại khái niệm về lợi ích giao tác như sau
Bảng 2.2: Lợi ích giao tác (trái), giá trị TWU mục đơn (giữa), EUCS (phải)
Định nghĩa 2.3: Lợi ích giao tác được xác định lại của một giao tác 𝑇𝑐 là tổng lợi ích của các mục trong 𝑇𝑐 có lợi ích bên ngoài dương.Tức là:
𝑇𝑈(𝑇𝑐) = ∑𝑥∈𝑇𝑐∧𝑝(𝑥)>0𝑢(𝑥, 𝑇𝑐)
Ví dụ 2.3 Bảng 2.2 (bên trái) đã cho thấy lợi ích giao tác xác định lại của các
giao tác 𝑇1, 𝑇2, 𝑇3, 𝑇4, 𝑇5 đối với ví dụ đang thực hiện Bảng 2.2 (bên phải) đã chỉ ra
TWU của các mục đơn dựa vào các giá trị lợi ích giao tác xác định lại Xét các tập mục {𝑐, 𝑒, 𝑔}và {𝑒, 𝑔} Các giá trị 𝑇𝑊𝑈({𝑐, 𝑒, 𝑔}) và 𝑇𝑊𝑈({𝑒, 𝑔}) đều bằng 17, đó
là sự ước tính quá cao của 𝑢({𝑐, 𝑒, 𝑔}) = 17 và 𝑢({𝑒, 𝑔}) = 11
Sử dụng lợi ích giao tác xác định lại để khôi phục tính chất 1.5 Nó cho phép HUINIV-Mine tìm ra tập hợp hoàn chỉnh các HUIs.Tuy nhiên, vấn đề chính được đặt
ra là công việc khai phá HUIs khi xét cả lợi nhuận đơn vị dương và âm vẫn mất rất nhiều thời gian thực hiện và bộ nhớ, đặc biết đối với các bộ dữ liệu chứa dày đặc các giao tác Do đó, đây cũng là một thách thức lớn trong việc xây dựng các thuật toán một cách hiệu quả hơn Để giải quyết vấn đề này, tác giả tìm hiểu một thuật toán có tên là FHN, là một biến thể của thuật toán FHM
Minh họa bằng một ví dụ để chứng minh rằng tính chất tỉa được thuật toán FHM và HUI-Miner áp dụng không hợp lệ nếu cả giá trị lợi ích bên ngoài dương và
Trang 36âm đều xuất hiện trong cơ sở dữ liệu Xét mục 𝑎 và 𝑑 ở trong ví dụ này có giá trị lợi ích bên ngoài lần lượt là 5 và -2, và 𝑚𝑖𝑛𝑢𝑡𝑖𝑙 = 10 Danh sách lợi ích của {𝑎, 𝑏} theo
đó sẽ chứa một mục đơn, đó là {(𝑇3, 9, −3) Theo tính chất 12, vì tổng giá trị của 𝑖𝑢𝑡𝑖𝑙 và 𝑟𝑢𝑡𝑖𝑙 trong 𝑢𝑙({𝑎, 𝑏}) bằng 6, nhỏ hơn 𝑚𝑖𝑛𝑢𝑡𝑖𝑙, {𝑎, 𝑏} và phần mở rộng của
nó sẽ là lợi ích thấp Tuy nhiên, đây không phải là lựa chọn vì tập mục 𝑢({𝑎, 𝑏, 𝑓}) =
14 Chính vì vậy, FHM và HUI-Miner sẽ không phát hiện ra HUI
Hình 2.4: Thuật toán FHN
2.2.2 Nội dung thuật toán FHN
Đầu tiên, mô tả thủ tục chính, từ thuật toán FHM [10] Thủ tục này chỉ có thể
xử lý các giá trị lợi ích bên ngoài dương Sau đó sẽ xử lý lợi nhuận đơn vị âm mà không mất bất kỳ HUIs nào
Thủ tục chính (Hình 2.4) lấy giá trị lợi ích là ngưỡng 𝑚𝑖𝑛𝑢𝑡𝑖𝑙 làm đầu vào của
cở sở dữ liệu Đầu tiên nó quét cơ sở dữ liệu để tính TWU của mỗi mục Sau đó nó xác định tập hợp 𝐼∗ của tất cả các mục có một TWU không nhỏ hơn 𝑚𝑖𝑛𝑢𝑡𝑖𝑙 (các mục khác bị bỏ qua vì chúng không thể là một phần của một tập mục lợi ích cao theo tính chất 1.1) Giá trị TWU của các mục sau đó được sử dụng để thiết lập một thứ tự toàn phần ≻ trên các mục, đó là thứ tự của các giá trị TWU tăng Sau đó thực hiện quét cơ sở dữ liệu thứ hai Trong quá trình quét cơ sở dữ liệu này, các mục trong giao tác được sắp xếp lại theo thứ tự toàn phần ≻, danh sách lợi ích của mỗi mục 𝑖 ∈ 𝐼∗ và một cấu trúc tên là EUCS được thiết lập Cấu trúc thứ hai lưu trữ TWU của tất cả các cặp mục{𝑎, 𝑏}sao cho 𝑢({𝑎, 𝑏}) ≠ 0 Như đã trình bày trong FHM, EUCS được thực hiện như là một bảng băm dữ liệu (hashmap) vì trên thực tế số lượng các cặp mục
Trang 37giới hạn xảy ra đồng thời trong các giao tác Việc xây dựng EUCS vô cùng nhanh (nó được thực hiện với một cơ sở dữ liệu quét duy nhất) và chiếm một lượng nhỏ bộ nhớ, được giới hạn bởi |𝐼∗| × |𝐼∗|, mặc dù trong thực tế kích thước nhỏ hơn nhiều bởi vì
số lượng các cặp mục giới hạn đồng thời xảy ra trong các giao tác Sau khi xây dựng EUCS, việc thăm dò tìm kiếm theo chiều sâu của các tập mục bắt đầu khởi động bằng
cách khớp thủ tục đệ quy Search là tập mục rỗng ∅, tập hợp các mục đơn 𝐼∗, 𝑚𝑖𝑛𝑢𝑡𝑖𝑙
và EUCS
Hình 2.5:Thuật toán Seach
Thủ tục Search (Hình 2.5) lấy đầu vào (1) là một tập mục 𝑃, (2) phần mở rộng
của 𝑃 có dạng 𝑃𝑧 nghĩa là có được 𝑃𝑧 bằng cách thêm mục 𝑧 vào 𝑃, (3) 𝑚𝑖𝑛𝑢𝑡𝑖𝑙 và
(4) EUCS Thủ tục Search được thực hiện như sau Đối với mỗi phần mở rộng 𝑃𝑥 của
𝑃, nếu tổng các giá trị 𝑖𝑢𝑡𝑖𝑙 của danh sách lợi ích của 𝑃𝑥 không nhỏ hơn 𝑚𝑖𝑛𝑢𝑡𝑖𝑙 thì 𝑃𝑥 là một tập mục lợi ích cao và là đầu ra (xem tính chất 1.2) Sau đó, nếu tổng của các giá trị 𝑖𝑢𝑡𝑖𝑙 và 𝑟𝑢𝑡𝑖𝑙 trong danh sách lợi ích của 𝑃𝑥 không nhỏ hơn 𝑚𝑖𝑛𝑢𝑡𝑖𝑙, điều này có nghĩa là những phần mở rộng của 𝑃𝑥 cần được thăm dò (xem tính chất 1.3) Việc này được thực hiện bằng cách hợp nhất 𝑃𝑥 với tất cả phần mở rộng của 𝑃𝑦 thuộc 𝑃 sao cho 𝑦 ≻ 𝑥 và 𝑇𝑊𝑈({𝑥, 𝑦}) ≥ 𝑚𝑖𝑛𝑢𝑡𝑖𝑙 để hình thành các phần mở rộng
Trang 38có dạng 𝑃𝑥𝑦 chứa |𝑃𝑥| + 1 các hạng mục Danh sách lợi ích của 𝑃𝑥𝑦 sau đó được
xây dựng như trong FHM bằng cách gọi thủ tục Construct (Hình 2.6 ) để nối các danh
sách lợi ích của 𝑃, 𝑃𝑥 và 𝑃𝑦 Thủ tục thứ 2 giống như trong FHM [10] và không nêu chi tiết ở đây Sau đó, một cuộc gọi đệ quy 𝑃𝑥𝑦 tới thủ tục Search được thực hiện nhằm tính độ lợi ích của nó và thăm dò phần mở rộng của nó Kể từ khi thủ tục Search
khởi động từ các hạng mục đơn lẻ, nó sẽ tiến hành thăm dò đệ quy không gian tìm kiếm của các tập mục bằng cách nối các mục đơn và chỉ tỉa không gian tìm kiếm theo như tính chất 1.3 Có thể dễ dàng thấy được,theo tính chất 1.1 và tính chất 1.2, thủ tục này chính xác và hoàn thành việc thăm dò tất cả các tập tin lợi ích cao
+ Điều chỉnh thuật toán để xử lý các khoản lợi nhuận đơn vị âm
Tiếp theo chúng ta sẽ giải thích cách thức sửa đổi điều chỉnh thuật toán để xử
lý các khoản lợi nhuận đơn vị âm
Gọi các thuật ngữ “các mục dương” và “các mục âm” biểu thị cho các hạng mục có các giá trị lợi ích bên ngoài dương và các giá trị lợi ích bên ngoài âm
Trước hết chúng ta phải xác định thứ tự toàn phần ≻ sao cho các hạng mục âm luôn cùng tất cả các hạng mục dương Bây giờ hãy xét một tập 𝑋 Cho 𝑢𝑝(𝑋) ⊆ 𝑋 là tập hợp tất cả các mục dương trong 𝑋 Ngoài ra, gọi 𝑢𝑛(𝑋) ⊆ 𝑋 là tập hợp tất cả các mục âm thuộc 𝑋 Chúng có một số tính chất quan trọng sau
Tính chất 2.3: Cận trên về lợi ích sử dụng mục dương: Gọi 𝑋 là một tập mục
Nó đáp ứng điều kiện 𝑢(𝑋) ≤ 𝑢(𝑢𝑝(𝑋)) Lý do Tính chất này có được bởi vì 𝑋 ∖𝑢𝑝(𝑋) = 𝑢𝑛(𝑋) và mục âm chỉ có thể giảm lợi ích của 𝑋
Tính chất 2.4: Đóng việc mở rộng mục âm: Gọi 𝑋 là một tập mục và 𝑧 là một mục âm sao cho 𝑧 ∉ 𝑋 Nó tuân theo quy tắc 𝑢(𝑢𝑝(𝑋 ∪ {𝑧})) ≤ 𝑢(𝑢𝑝(𝑋)) Rõ ràng
ta thấy 𝑢𝑝(𝑋) = 𝑢𝑝(𝑋 ∪ {𝑧}) Ngoài ra, số lượng các giao tác chứa 𝑋 ∪ {𝑧} chỉ có thể nhỏ hơn số lượng các giao tác chứa 𝑋 Chính vì điều này và 𝑧 là một mục âm, lợi ích của 𝑢𝑝(𝑋 ∪ {𝑧}) chỉ có thể bằng hoặc ít hơn lợi ích của 𝑢𝑝(𝑋) Những lưu ý rằng 𝑢(𝑋)có thể nhỏ hơn, lớn hơn hoặc bằng 𝑢(𝑋 ∪ {𝑧})
Tính chất trước có thể được khái quát hóa đối với các phần mở rộng liên tiếp của một tập với các mục âm
Trang 39Tính chất 2.5: Việc đóng sự mở rộng chuyển tiếp đối với mục âm: Gọi 𝑋 là một tập mục Đối với bất kỳ tập mục 𝑌 kết quả từ phần mở rộng chuyển tiếp của 𝑋 với các mục âm sao cho 𝑢(𝑢𝑝(𝑌)) ≤ 𝑢(𝑢𝑝(𝑋))
Dựa trên sự quan sát này, chúng ta có thể sử dụng điều kiện cắt tỉa sau
Tính chất 2.6: điều kiện cắt tỉa đối với các tập mục chứa các mục âm dựa vào
thứ tự toàn phần ≻: Coi 𝑋 là một tập mục sao cho 𝑢𝑝(𝑋) < 𝑚𝑖𝑛𝑢𝑡𝑖𝑙 và chỉ các mục
âm có thể được sử dụng để mở rộng 𝑋 dựa vào thứ tự toàn phần ≻ Do đó, tất cả các
sự mở rộng chuyển tiếp của 𝑋 đối với những mục này sẽ là lợi ích thấp có thể bị cắt tỉa Lý do Điều kiện cắt tỉa trực tiếp tuân theo những tính chất trước
Tuy nhiên việc sử dụng điều kiện cắt tỉa vào trong thuật toán yêu cầu tính toán 𝑢(𝑢𝑝(𝑋)) một cách hiệu quả Giải pháp là chia các giá trị 𝑖𝑢𝑡𝑖𝑙 trong danh sách lợi ích thành hai giá trị là 𝑖𝑝𝑢𝑡𝑖𝑙và 𝑖𝑛𝑢𝑡𝑖𝑙 Đối với một giao tác 𝑇𝑐 đã đưa ra, 𝑖𝑝𝑢𝑡𝑖𝑙 và 𝑖𝑛𝑢𝑡𝑖𝑙 bây giờ đưa ra 𝑢(𝑢𝑝(𝑋), 𝑇𝑐)và 𝑢(𝑢𝑛(𝑋), 𝑇𝑐) Khi có những giá trị này, ta có thể dễ dàng tính 𝑢(𝑢𝑝(𝑋)) và 𝑢(𝑋) bằng cách tổng hợp lần lượt từng giá trị 𝑖𝑝𝑢𝑡𝑖𝑙
và tổng hợp cả hai giá trị 𝑖𝑝𝑢𝑡𝑖𝑙 và 𝑖𝑛𝑢𝑡𝑖𝑙 Dựa vào những ý tưởng trên, thuật toán FHN có thể được tạo ra bằng cách điều chỉnh sau đây
Thứ nhất, thay vì tính TWU ban đầu, TWU được xác định lại sẽ được sử dụng
để ngăn chặn việc đánh giá thấp độ lợi ích của HUI chứa các mục dương
Thứ hai, danh sách lợi ích được xác định lại sao cho các yếu tố 𝑖𝑝𝑢𝑡𝑖𝑙 và 𝑖𝑛𝑢𝑡𝑖𝑙 được sử dụng Hơn nữa, giá trị 𝑟𝑢𝑡𝑖𝑙 của danh sách lợi ích chỉ chứa các giá trị lợi ích của các mục dương Lý do là các thuật toán có thể bỏ sót một số HUIs nếu giá trị 𝑟𝑢𝑡𝑖𝑙 của các mục âm không nằm trong danh sách lợi ích
Thứ ba, thứ tự toàn phần được xác định lại sao cho tất cả các mục âm áp đảo
các mục dương
Thứ tư, điều kiện cắt tỉa TWU 𝑇𝑊𝑈({𝑥, 𝑦}) < 𝑚𝑖𝑛𝑢𝑡𝑖𝑙 sử dụng cấu trúc EUCS chỉ áp dụng cho các mục dương
Thứ năm, điều kiện cắt tỉa áp dụng duy nhất để quyết định liệu một tập mục
có nên mở rộng các mục âm hay không
Trang 40Thứ sáu, điều kiện cắt tỉa các mục dương dựa trên tổng các giá trị 𝑖𝑛𝑢𝑡𝑖𝑙 và 𝑟𝑢𝑡𝑖𝑙 được định nghĩa lại như tổng các giá trị 𝑖𝑝𝑢𝑡𝑖𝑙 và 𝑟𝑢𝑡𝑖𝑙
Hình 2.6: Thuật toán Construct
Bây giờ chúng ta sẽ thảo luận về sự đúng đắn của những sửa đổi này để tìm ra tất cả HUIs khi sử dụng các mục âm và mục dương Ta chia phần giải thích này thành hai phần (1) thuật toán trước tiên mở rộng tập mục bằng cách thêm các hạng mục dương và (2) sau đó thuật toán nối các hạng mục âm (trên cơ sở ≻ ) Trong phần đầu tiên, FHN đúng vì nó hoạt động như một thuật toán khai thác HUI thông thường để phát hiện các HUI chỉ chứa các mục dương Điều này đúng bởi vì các mặt hàng âm luôn luôn được thêm sau các mặt hàng dương (do đó các mục âm không được xét khi các HUIs chỉ chứa các mục dương) Hơn nữa, điều kiện cắt tỉa phải đảm bảo tổng các giá trị 𝑟𝑢𝑡𝑖𝑙 và 𝑖𝑝𝑢𝑡𝑖𝑙 phải lớn hơn 𝑚𝑖𝑛𝑢𝑡𝑖𝑙 vì các giá trị 𝑟𝑢𝑡𝑖𝑙 của các mục âm không được xét trong danh sách lợi ích khi thuật toán TWU chỉ chứa các mục dương Việc cắt tỉa phải đảm bảo sao cho việc mở rộng 𝑃𝑥𝑦 không được khám phá nếu 𝑇𝑊𝑈(𝑥, 𝑦) < 𝑚𝑖𝑛𝑢𝑡𝑖𝑙 là chính xác vì sử dụng TWU được định nghĩa lại Ở phần thứ hai (khi các mục âm được kết nối), ta chỉ sử dụng điều kiện cắt tỉa theo như tính chất 2.4 Chính vì vậy, không có HUIs chứa các mục âm bị bỏ sót