CHUẨN Y CỦA HỘI ĐỒNG BẢO VỆ LUẬN VĂN --o0o-- Luận văn tựa đề “KHAI THÁC TẬP MỤC HỮU ÍCH CAO TRÊN CƠ SỞ DỮ LIỆU TĂNG TRƯỞNG” được Võ Thiện Khoa thực hiện và nộp nhằm thỏa một trong các
Trang 1CHUẨN Y CỦA HỘI ĐỒNG BẢO VỆ LUẬN VĂN
o0o
Luận văn tựa đề “KHAI THÁC TẬP MỤC HỮU ÍCH CAO TRÊN CƠ SỞ DỮ LIỆU TĂNG TRƯỞNG” được Võ Thiện Khoa thực hiện và nộp nhằm thỏa một
trong các yêu cầu tốt nghiệp Thạc sĩ ngành Khoa Học Máy Tính
Ngày bảo vệ luận văn, TPHCM, ngày 05 tháng 12 năm 2015
Đại học Quốc tế Hồng Bàng Đại học Công Nghệ - TpHCM
Ngày tháng năm 20 Ngày tháng năm 20
PGS.TS Thái Bá Cần GS TSKH Hoàng Văn Kiếm
Ngày tháng năm 20 Ngày tháng năm 20
Trang 2CÔNG TRÌNH ĐƯỢC HOÀN THÀNH TẠI
TRƯỜNG ĐẠI HỌC QUỐC TẾ HỒNG BÀNG
Luận văn thạc sĩ: Khai thác tập mục hữu ích cao trên cơ sở dữ liệu tăng trưởng
Do học viên: Võ Thiện Khoa - Cao học khóa: 1 – Đợt 2 - Ngành: Khoa học máy
tính thực hiện
Người hướng dẫn: PGS TS Võ Đình Bảy
Đã bảo vệ trước Hội đồng, ngày: 05/12/2015 theo Quyết định số …….,
ngày / / của Hiệu trưởng ĐH Quốc Tế Hồng Bàng
Thành phần Hội đồng đánh giá Luận văn Thạc sĩ gồm:
Chủ tịch Hội đồng đánh giá Luận văn
GS.TSKH Hoàng Văn Kiếm
Trang 3- Nơi sinh : Thành Phố Hồ Chí Minh
- Tốt nghiệp THPT : Trường THPH Bà Điểm, xã Bà Điểm, huyện Hóc Môn, TP.HCM
2 QUÁ TRÌNH HỌC TẬP
2001 - 2003 Học tại trường Trung cấp Giao Thông Vận Tải khu vực 3
2004 - 2006 Học tại trường Cao đẳng Công Nghiệp 4
2007 - 2009 Học tại trường Đại học Kỹ Thuật Công Nghệ
3 QUÁ TRÌNH CÔNG TÁC
2009 - 2010 Làm việc tại Công ty phát triển phần mềm Khoa Việt
2011 - nay Làm việc tại Bệnh viện Chợ Rẫy
- Địa chỉ liên lạc: 8/5D tổ 4 ấp Bắc Lân, xã Bà Điểm, huyện Hóc Môn, TP HCM
- Email: vokhoa1610@gmail.com
- Điện thoại di động: 0908.650.611
Trang 4LỜI CAM ĐOAN
Tôi cam đoan rằng luận văn “Khai thác tập mục hữu ích cao trên cơ sở
dữ liệu tăng trưởng” là bài nghiên cứu của chính tôi
Ngoại trừ những tài liệu tham khảo được trích dẫn trong luận văn này, tôi cam đoan rằng phần còn lại của luận văn này chưa từng được công bố hay được sử dụng để nhận bằng cấp ở những nơi khác
Không có sản phẩm hay nghiên cứu nào của người khác được sử dụng trong luận văn này mà không được trích dẫn theo đúng quy định
Tác giả luận văn
Võ Thiện Khoa
Trang 5LỜI CẢM ƠN
Lời đầu tôi xin chân thành cảm ơn TS Võ Đình Bảy đã tận tình truyền đạt
và hướng dẫn tôi trong suốt thời gian thực hiện luận văn này Thầy luôn tận tâm giúp đỡ, định hướng cho tôi trong suốt thời gian nghiên cứu khoa học Thầy đã giúp tôi tiếp cận với khoa học và biết cách sáng tạo trong khoa học, với những điều mới trong xã hội và đạt được thành công trong bài nghiên cứu của mình
Tiếp theo tôi xin bày tỏ lòng biết ơn đến Ban Giam hiệu, quí thầy cô trong Viện đào tạo Sau Đại học trường Đại học Quốc tế Hồng Bàng đã cung cấp những kiến thức quý báu cho tôi trong suốt quá trình học tập và nghiên cứu tại trường
Cuối cùng, chân thành gởi lời cảm ơn đến gia đình, bạn bè và những người thân luôn quan tâm và giúp đỡ tôi trong suốt thời gian học tập và nghiên cứu hoàn thành luận văn này
Vì thời gian có hạn và kiến thức còn hạn chế, nên luận văn khó tránh khỏi những thiếu sót, rất mong nhận được sự đóng góp ý kiến quý báu của quý thầy cô, anh chị và các bạn
Trang 6TÓM TẮT
Khai thác dữ liệu là quá trình khám phá thông tin tìm ẩn và các mối liên hệ lẫn nhau có trong các cơ sở dữ liệu lớn Khai thác dữ liệu truyền thống là thường dạng tĩnh và xử lý dữ liệu được thực hiện hàng loạt Nhưng trên thực tế, cơ sở dữ liệu thường xuyên biến động do đó cách này không hiệu quả gây lãng phí khi một lượng nhỏ dữ liệu được thêm vào cơ sở dữ liệu lớn Do đó, Hong và các đồng sự [11] đã đề xuất ra khái niệm tập gần phổ biến để khai thác tập phổ biến trên cơ sở
dữ liệu tăng trưởng Tác giả đã xử dụng hai ngưỡng phổ biến đó là: ngưỡng phổ biến trên (tương đương với ngưỡng phổ biến tối thiểu, minSup) và ngưỡng phổ biến dưới để giảm số lần duyệt lại cơ sở dữ liệu gốc Thuật toán Pre-HUI là thuật toán khai thác tập mục hữu ích cáo trên cơ sở dữ liệu tăng trưởng được đề xuất vào năm
2014 [7] Luận văn đề xuất thuật toán khai thác tập mục hữu ích cao trên cơ sở dữ liệu trưởng dựa trên cấu trúc cây WIT (Weighted Itemset-Tidset tree) bằng cách tỉa những ứng viên có độ hữu ích thấp và cải tiến bước sinh tập ứng viên trước khi sử dụng phương pháp khai thác dữ liệu được đề xuất Do đó, thuật toán mới này sẽ cải thiện tốt hơn về thời gian và bộ nhớ sử dụng trong quá trình khai thác tập mục hữu ích cao
Trang 7ABSTRACT
Data mining is the process of discovering hidden information and mutual relationships in large databases Traditional data mining is often static and data is processed in batch mode But in reality, the database is constantly fluctuating so this approach is inefficient when a small amount of data is added to the database Therefore, Hong and colleagues [11] have proposed the concept of “Pre-large” to discover nearly frequent itemsets in incremental databases The authors have used two bounds: upper bound utility and lower bound utility to reduce the number of scans on the original database Pre-HUI is an algorithm for mining high itemset utility in incremental databases [7] Thesis proposes a new algorithm for mining high itemset utility in incremental databases based on the WIT tree (Weighted itemset-Tidset tree) by pruning the low utility candidates Therefore, this new algorithm will improve the time and memory used in the process of mining high itemset utility
Trang 8NHẬN XÉT CỦA GIẢNG VIÊN HƯỚNG DẪN
-o0o-
Trang 9
NHẬN XÉT CỦA GIẢNG VIÊN PHẢN BIỆN 1
-o0o-
Trang 10
NHẬN XÉT CỦA GIẢNG VIÊN PHẢN BIỆN 2
-o0o-
Trang 11
NHẬN XÉT CỦA HỘI ĐỒNG PHẢN BIỆN
-o0o-
Trang 12
MỤC LỤC
LÝ LỊCH CÁ NHÂN i
LỜI CAM ĐOAN ii
LỜI CẢM ƠN iii
TÓM TẮT iv
ABSTRACT v
MỤC LỤC x
DANH MỤC HÌNH VẼ xii
DANH MỤC BẢNG xiii
DANH MỤC CÁC CHỮ VIẾT TẮT xv
CHƯƠNG 1: TỔNG QUAN 1
1.1 Lý do chọn đề tài, lĩnh vực nghiên cứu 1
1.2 Vấn đề nghiên cứu của đề tài 2
1.3 Mục tiêu nghiên cứu 2
1.4 Những nội dung chính yếu cần nghiên cứu 2
1.5 Cấu trúc luận văn 2
CHƯƠNG 2: CƠ SỞ LÝ THUYẾT 4
2.1 Tổng quan về khai thác dữ liệu 4
2.1.1 Khám phá tri thức và khai thác dữ liệu .4
2.1.2 Quá trình khám phá tri thức 4
2.1.3 Các kỹ thuật khai thác dữ liệu 7
2.1.4 Ứng dụng trong khai thác dữ liệu 7
2.1.5 Những thách thức trong khai thác dữ liệu 8
2.2 Tổng quan về khai thác luật kết hợp 8
2.3 Giới thiệu về khai thác tập mục hữu ích cao 12
2.4 Khai thác tập mục hữu ích cao trên cơ sở dữ liệu tăng trưởng 21
2.4.1 Tổng quan 21
Trang 132.4.2 Một số định nghĩa của bài toán 24
2.4.3 Nội dung thuật toán Pre-HUI 27
2.4.4 Minh họa thuật toán 32
CHƯƠNG 3: THUẬT TOÁN CẢI TIẾN 39
3.1 Ưu và khuyến điểm của thuật toán Pre-HUI 39
3.2 Thuật toán cải tiến dựa trên cấu trúc cây WIT 39
3.2.1 Nội dung thuật toán 39
3.2.2 Minh họa thuật toán 44
3.2.3 Những điểm mới của thuật toán cải tiến 51
CHƯƠNG 4: THỰC NGHIỆM VÀ ĐÁNH GIÁ 52
4.1 Môi trường thực nghiệm 52
4.2 Giới thiệu cơ sở dữ liệu thực nghiệm 52
4.2.1 Tổng quan về CSDL thực nghiệm 52
4.2.2 So sánh thời gian chạy thực nghiệm 53
4.3 Thực nghiệm trên CSDL chuẩn 56
4.3.1 Thực nghiệm trên CSDL Retail 56
4.3.2 Thực nghiệm trên CSDL BMS-POS 59
4.4 Kết quả thực nghiệm 63
CHƯƠNG 5: KẾT LUẬN VÀ HƯỚNG PHÁT TRIỂN 64
5.1 Kết luận 64
5.2 Hạn chế của đề tài 64
5.3 Hướng phát triển 65
DANH MỤC TÀI LIỆU THAM KHẢO 66
1 Tài liệu tiếng việt 66
2 Tài liệu tiếng anh 66
Trang 14DANH MỤC HÌNH VẼ
Hình 2.1: Qui trình khám phái tri thức 5
Hình 2.2: Xây dựng cây WIT-Tree 19
Hình 2.3: Thuật toán TWU-Mining 20
Hình 2.4: Kết quả thuật toán TWU-Mining 21
Hình 2.5: Thuật toán Pre-HUI 29
Hình 3.1: Thuật toán cải tiến 42
Hình 3.2: Biểu diễn cây H_PTWU trên CSDL D 45
Hình 3.3: Biểu diễn cây H_PTWU khi xóa itemset A 47
Hình 3.4: Biểu diễn cây H_PTWU khi cập nhật itemset B 47
Hình 3.5: Biểu diễn cây H_PTWU đã cập nhật các 1-itemset 48
Hình 3.6: Biểu diễn cây H_PTWU khi xét nút B có 2-itemset 49
Hình 3.7: Biểu diễn cây H_PTWU khi xét nút B có 3-itemset từ 2-itemset 49
Hình 3.8: Biểu diễn cây H_PTWU khi đã hoàn tất thêm giao dịch mới 50
Hình 4.1: Thực nghiệm CSDL bán thuốc khi thêm 2.000 giao dịch cho mỗi lần 53
Hình 4.2: Thực nghiệm CSDL bán thuốc khi thêm 4000 giao dịch cho mỗi lần 54
Hình 4.3: Thực nghiệm CSDL bán thuốc khi thêm 5.000 giao dịch cho mỗi lần 55
Hình 4.4: Thực nghiệm CSDL Retail khi thêm 1.000 giao dịch cho mỗi lần 57
Hình 4.5: Thực nghiệm CSDL Retail khi thêm 2.000 giao dịch cho mỗi lần 58
Hình 4.6: Thực nghiệm CSDL Retail khi thêm 3.000 giao dịch cho mỗi lần 59
Hình 4.7: Thực nghiệm CSDL BMS-POS khi thêm 10.000 giao dịch cho mỗi lần 60
Hình 4.8: Thực nghiệm CSDL BMS-POS khi thêm 20.000 giao dịch cho mỗi lần 61
Hình 4.9: Thực nghiệm CSDL BMS-POS khi thêm 30.000 giao dịch cho mỗi lần 62
Trang 15DANH MỤC BẢNG
Bảng 2.1: Bảng biểu diễn CSDL giao dịch 13
Bảng 2.2: Bảng lợi nhuận của các item trong CSDL 14
Bảng 2.3: Bảng độ hữu ích các giao dịch trong CSDL 15
Bảng 2.4: Two-Phase với 1-itemset 17
Bảng 2.5: Two-Phase với 2-itemset 17
Bảng 2.6: Two-Phase với 3-itemset 17
Bảng 2.7: Two-Phase với các itemset có độ hữu ích cao 18
Bảng 2.8: WIT-Tree với từng item đơn 19
Bảng 2.9: Ví dụ 2 giao dịch 22
Bảng 2.10: Ví dụ về bảng lợi nhuận 22
Bảng 2.11: Bảng lợi nhuận 24
Bảng 2.12: CSDL ban đầu 25
Bảng 2.13: CSDL thêm vào 25
Bảng 2.14: Bảng tập itemset có trọng số giao dịch lớn và lợi ích thật sự 32
Bảng 2.15: Bảng tập itemset có trọng số giao dịch gần lớn và lợi ích thật sự 32
Bảng 2.16: Bảng các độ hữu ích của các giao dịch mới 33
Bảng 2.17: Bảng twu và au của 1-itemset trong giao dịch mới 34
Bảng 2.18: Bảng cập nhật 1-itemset trong tập 𝐻𝑇𝑊𝑈1𝐷 34
Bảng 2.19: Bảng cập nhật 1-itemset trong tập 𝐻𝑇𝑊𝑈1𝐷 35
Bảng 2.20: Bảng twu Large và Pre-large 1-itemset với au của chúng 36
Bảng 2.21: Bảng kết quả cuối cùng thuật toán Pre-HUI 37
Bảng 2.22: Bảng tập hữu ích cao trong thuật toán Pre-HUI 37
Bảng 3.1: Bảng twu và au của các 1-itemset trong giao dịch mới 46
Trang 16Bảng 3.2: Bảng các itemset có độ hữu ích cao trong thuật toán cải tiến 50 Bảng 4.1: Thời gian thực nghiệm trên CSDL bán thuốc với mỗi lần thêm là 2.000
Trang 17DANH MỤC CÁC CHỮ VIẾT TẮT
số độ hữu ích lớn và tiền lớn của giao dịch
Large (high) and Pre-large transaction-weighted utilization
số độ hữu ích lớn của giao dịch
Large (high) transaction-weighted utilization
số độ hữu ích tiền lớn của giao dịch
Pre-large transaction-weighted utilization
giao dịch
Transaction-weighted utilization
tree
Trang 18CHƯƠNG 1: TỔNG QUAN 1.1 Lý do chọn đề tài, lĩnh vực nghiên cứu
Trong những năm gần đây, cùng với sự phát triển vượt bậc của công nghệ thông tin, truyền thông, khả năng thu thập và lưu trữ thông tin của các hệ thống thông tin không ngừng được nâng cao Với lượng dữ liệu khổng lồ và luôn gia tăng theo thời gian, rõ ràng các phương pháp phân tích dữ liệu truyền thống sẽ không còn hiệu quả, gây tốn kém và dễ dẫn đến những kết quả sai lệch Để có thể khai thác hiệu quả các cơ sở dữ liệu lớn, một lĩnh vực khoa học mới đã ra đời: Khám phá tri thức trong cơ sở dữ liệu (Knowledge Discovery in Databases – KDD) Khai thác
dữ liệu (Data Mining) là một công đoạn chính trong quá trình khám phá tri thức, nhằm tìm kiếm, phát hiện các tri thức mới, hữu ích tiềm ẩn trong các cơ sở dữ liệu lớn
Việc khai thác tập phổ biến thường được mô tả là một quá trình lấy thông tin có giá trị từ cơ sở dữ liệu lớn, nó bắt nguồn từ dạng mẫu có sẵn tồn tại trong cơ
sở dữ liệu, các mẫu này có khuynh hướng gom nhóm lại với nhau và được định nghĩa như là một mô hình khai thác
Khai thác tập mục hữu ích cao (high-utility itemset) là một mở rộng của bài toán khai thác tập mục phổ biến, đã được nhiều tác giả quan tâm với mục đích đánh giá ý nghĩa của các tập mục trong khai thác luật kết hợp Để khai thác tập mục hữu ích cao, một giá trị được sử dụng đó là lợi ích của itemset, chẳng hạn tổng lợi nhuận
mà doanh nghiệp thu được nếu bán itemset ấy trong tập giao dịch Khác với khai thác itemset phổ biến, lợi ích của itemset không thỏa tính chất bao đóng giảm (downward closure property) nên độ phức tạp của bài toán cao Ngoài ra, CSDL thường biến động, các giao dịch thường xuyên được cập nhật chẳng hạn được thêm mới thường xuyên Việc cập nhật lại các itemset kết quả khi cơ sở dữ liệu thay đổi cũng là một trong những nhu cầu cấp thiết
Chính vì vậy tôi chọn đề tài “Khai thác tập mục hữu ích cao trên cơ sở
dữ liệu tăng trưởng” nhằm góp phần rút ngắn thời gian cũng như việc sử dụng bộ
nhớ trong quá trình khai thác
Trang 191.2 Vấn đề nghiên cứu của đề tài
Làm thế nào để khai thác tập mục trên CSDL lớn và thường xuyên thay đổi?
Có cách nào để cập nhật lại tập mục khi dữ liệu thay đổi?
Làm thế nào để giảm số lần duyệt lại CSDL gốc trong quá trình khai thác dữ liệu?
Bài toán có thể áp dụng trong khai thác dữ liệu bán thuốc tại bệnh viện ở Thành phố Hồ Chí Minh hay không?
1.3 Mục tiêu nghiên cứu
Nghiên cứu bài toán khai thác tập phổ biến trên cơ sở dữ liệu tăng trưởng Nghiên cứu thuật toán Pre-HUI trong việc khai thác tập mục hữu ích cao Phát triển thuật toán mới cho khai thác tập mục hữu ích cao trên cơ sở dữ liệu tăng trưởng Áp dụng vào thực tế với CSDL bán thuốc của bệnh viện
1.4 Những nội dung chính yếu cần nghiên cứu
- Tìm hiểu về những xu hướng hiện nay trong khai thác dữ liệu
- Tìm hiểu một số kỹ thuật và thuật toán đang được sử dụng trong khai thác dữ liệu
- Các thuật toán khai thác tập hữu ích cao (high utility itemset – HUI)
- Nghiên cứu bài toán khai thác tập mục hữu ích cao trên CSDL tăng trưởng
- Nghiên cứu và đề xuất thuật toán cải tiến nhằm nâng cao hiệu quả về mặt thời gian khai thác
- Thực nghiệm trên các cơ sở dữ liệu chuẩn để minh chứng tính hiệu quả của thuật toán cải tiến
1.5 Cấu trúc luận văn
Luận văn tổ chức thành 5 chương có nội dung như sau:
- Chương 1: Giới thiệu tổng quan tới bối cảnh thực tiễn định hình
hướng nghiên cứu của luận văn
Trang 20- Chương 2: Trình bày tổng quan về khai thác dữ liệu (KTDL), khai
thác luật kết hợp và phương pháp khai thác tập phổ biến Giới thiệu về khai thác tập mục hữu cao và thuật toán Nghiên cứu bài toán khai thác tập mục hữu ích cao từ cơ sở dữ liệu tăng trưởng và thuật toán Pre-HUI
- Chương 3: Nghiên cứu mặt hạn chế của thuật toán Pre-HUI Nghiên
cứu và đề xuất thuật toán cải tiến nhằm nâng cao hiệu quả về mặt thời gian khai thác dựa trên cấu trúc cây WIT(Weighted Itemset-Tidset tree)
- Chương 4: Giới thiệu môi trường thực nghiệm, CSDL dùng để thực
nghiệm So sánh về thời gian thực hiện giữa Pre-HUI và thuật toán đề xuất
- Chương 5: Kết luận và hướng phát triển
Trang 21CHƯƠNG 2: CƠ SỞ LÝ THUYẾT 2.1 Tổng quan về khai thác dữ liệu
2.1.1 Khám phá tri thức và khai thác dữ liệu
Dữ liệu có thể xem là chuỗi các bit, là số, ký tự,…mà chúng ta tập hợp hàng ngày trong công việc Thông tin là tập hợp của những mảnh dữ liệu đã được chắc lọc dùng mô tả, giải thích đặc tính của một đối tượng nào đó [5]
Tri thức là tập hợp những thông tin có liên hệ với nhau, có thể xem tri thức
là sự kết tinh từ dữ liệu Tri thức thể hiện tư duy của con người về một vấn đề [5]
Hệ cơ sở tri thức là hệ thống dựa trên tri thức, cho phép mô hình hóa các tri thức của chuyên gia, dùng tri thức này để giải quyết vấn đề phức tạp thuộc cùng lĩnh vực [3]
Cùng với sự phát triển nhanh chóng của các hệ CSDL và dữ liệu tăng theo thời gian thì việc tìm kiếm và khai thác thông tin từ dữ liệu là vấn đề cần thiết để có thể giúp cho con người ra quyết định nhanh chóng dựa trên dữ liệu đã có Bên cạnh
đó tìm kiếm các tri thức tìm ẩn hay dự đoán các kết quả dựa trên CSDL đã có Do
đó, khái niệm khám phá tri thức và khai thác dữ liệu mới ra đời
KTDL là quá trình khám phá thông tin tìm ẩn có trong các CSDL lớn và có thể xem như là một bước trong quá trình khám phá tri thức, nó là quá trình mô tả và
dự đoán dựa trên các thông tin, tri thức, dữ liệu đã được lưu trữ, và phân tích các dữ liệu để tìm ra các dạng thức hoặc kết hợp có tính lặp đi lặp lại và tạo thành qui luật, các qui luật này hỗ trợ trong việc ra quyết định trong các lĩnh vực như: khoa học, giáo dục, kinh doanh [8]
Khám phá tri thức là quá trình xác định giá trị, tính hữu ích, và các mô hình tối ưu trong hệ cơ sở dữ liệu [1]
2.1.2 Quá trình khám phá tri thức
Phát hiện tri thức từ cơ sở dữ liệu là một quá trình có sử dụng nhiều phương pháp và công cụ tin học từ những CSDL trong thực tế, nhưng nó vẫn là một quá
Trang 22Dữ liệu
thô
Dữ liệu lựa chọn
Dữ liệu tiền xử lý
Dữ liệu biến đổi
Các mẫu
Tri thức
trình mà trong đó con người làm trung tâm Quá trình phát hiện tri thức từ CSDL bao gồm năm bước chính sau đây:
Hình 2.1: Qui trình khám phá tri thức
2.1.2.1 Chọn lọc dữ liệu
Đây là giai đoạn chọn lọc, trích rút các dữ liệu cần thiết từ CSDL tác nghiệp vào một CSDL riêng Chúng ta chỉ chọn ra những dữ liệu cần thiết cho các giai đoạn sau Tuy nhiên, công việc thu gom dữ liệu vào một CSDL thường rất khó khăn vì dữ liệu nằm rải rác khắp nơi trong cơ quan, tổ chức Cùng một loại thông tin nhưng được tạo lập theo các dạng thức khác nhau, ví dụ nơi này dùng kiểu chuỗi, nơi kia lại dùng kiểu số để khai báo một thuộc tính nào đó của khách hàng
2.1.2.2 Làm sạch dữ liệu
Phần lớn các CSDL đều ít nhiều mang tính không nhất quán Do vậy, khi KTDL trên các CSDL đó thường không đảm bảo tính đúng đắn Ví dụ, trong các công ty bảo hiểm nhân thọ thì ngày sinh của khách hàng cần phải thật chính xác, trong khi đó có từ 30% - 40% thông tin về tuổi khách hàng trong CSDL ngân hàng
để trống hoặc chứa dữ liệu sai Điều này sẽ làm cho chúng ta không thể khám phá ra
mô hình về quan hệ tuổi tác
Do đó, trước khi bắt đầu KTDL, chúng ta phải tiến hành xóa bỏ dữ liệu không cần thiết, nói chung nên xóa bỏ dữ liệu sai càng nhiều càng tốt Trong thực
tế, giai đoạn này được thực hiện nhiều lần, vì trong giai đoạn KTDL mới phát hiện
Trang 23được tính bất thường trong dữ liệu Có một số loại tiến trình xóa bỏ dữ liệu được thực thi ở mức độ cao trong khi một số loại tiến trình khác chỉ được sử dụng sau khi phát hiện ra lỗi tại giai đoạn mã hóa hay giai đoạn tìm kiếm
Các giai đoạn trong quá trình làm sạch dữ liệu [2]:
Chống trùng lặp: dạng lỗi thứ nhất khá quan trọng trong thao tác xóa
bỏ dữ liệu đó là xóa bỏ thông tin trùng của các bản ghi Thao tác này diễn ra khi có những phần thông tin bị trùng do có sai sót trong phần nhập dữ liệu, hoặc thông tin không được cập nhật kịp thời hoặc thông tin được cung cấp bị sai
Giới hạn vùng giá trị: dạng lỗi thứ hai thường xảy ra đó là giá trị nằm ngoài miền giá trị cho phép, nghĩa là các thông tin chứa các giá trị không hợp lệ theo một quy tắc nào đó Dạng lỗi này gây tác hại khá lớn vì rất khó phát hiện, nhưng lại có ảnh hưởng lớn đến dạng thức các mẫu cần tìm khi thực hiện KTDL trên các bảng dữ liệu này Từ đó
sẽ xuất hiện các mâu thuẫn trong các vùng dữ liệu Để sửa chữa mâu thuẫn, ta dùng giá trị NULL để thay thế vào những thông tin chưa biết trong các trường của bảng và cứ tiến hành sửa chữa các mâu thuẫn
Làm giàu dữ liệu: mục đích của giai đoạn này là bổ sung thêm nhiều loại thông tin có liên quan vào cơ sở dữ liệu gốc Để làm được điều này, chúng ta phải có các CSDL khác ở bên ngoài có liên quan đến CSDL gốc ban đầu, ta tiến hành bổ sung những thông tin cần thiết,
làm tăng khả năng khám phá tri thức từ CSDL
2.1.2.3 Mã hóa dữ liệu
Mục đích của giai đoạn mã hóa là chuyển đổi kiểu dữ liệu về những dạng thuận tiện để tiến hành các thuật toán khám phá dữ liệu Có nhiều cách mã hóa dữ liệu khác nhau theo từng loại dữ liệu:
Phân vùng: với dữ liệu là giá trị chuỗi, nằm trong tập các chuỗi cố định
Trang 24 Biến đổi giá trị năm thành con số nguyên là số năm đã trôi qua so với năm hiện hành
Chia giá trị số theo một hệ số để tập các giá trị nằm trong vùng nhỏ hơn
Chuyển đổi yes/no thành 0/1
2.1.2.4 Khai thác dữ liệu
KTDL là một trong các bước quan trọng nhất, trong đó sử dụng những phương pháp thông minh để chắt lọc ra những mẫu dữ liệu Đây cũng chính là tiến
trình “điều chỉnh đúng” các mô hình dữ liệu Chức năng biến đổi dữ liệu được đưa
vào bước này với mục đích để trình diễn dữ liệu
2.1.2.5 Biểu diễn dữ liệu
Là quá trình giải thích và hiển thị trực quan các kết quả KTDL để hỗ trợ việc định giá chất lượng dữ liệu, đánh giá mô hình dữ liệu được lựa chọn có phù hợp hay không và thể hiện mô hình Mỗi bước (trừ bước lưu trữ dữ liệu) cho phép tương tác người dùng và một số bước có thể được thực hiện hoàn toàn thủ công
2.1.3 Các kỹ thuật khai thác dữ liệu
Có 2 kỹ thuật khai thác dữ liệu chính đó là:
Kỹ thuật KTDL mô tả: đặc điểm của kỹ thuật này là mô tả về các tính chất hoặc các đặc tính chung của dữ liệu trong CSDL hiện có Kỹ thuật này gồm có: Phân cụm (clustering), phân tích luật kết hợp (association rules) …
Kỹ thuật KTDL dự đoán: đưa ra các dự đoán dựa vào các suy diễn trên dữ liệu hiện thời Các kỹ thuật này gồm có: Phân lớp
(Classifacation) , hồi quy (regession)
2.1.4 Ứng dụng trong khai thác dữ liệu
Ứng dụng trong việc phân tích dữ liệu đã có để hổ trợ người dùng đưa ra quyết định nhanh chóng (ứng dụng phổ biến):
Phân tích dữ liệu về thị trường, tài chính
Trang 25 Quản lý và phân tích rủi ro
Ứng dụng trong các lĩnh vực khoa học và hệ thống thông tin
Trong lĩnh vực y tế: dựa vào các triệu chứng để phân tích và từ đó đưa
2.1.5 Những thách thức trong khai thác dữ liệu
Hiện nay có rất nhiều các giải pháp và phương pháp được ứng dụng trong khai thác dữ liệu nhưng trên thực tế vẫn gặp không ít khó khăn và thách thức như:
Cơ sở dữ liệu lớn về kích thước
Dữ liệu động
Các trường dữ liệu không phù hợp, bị thiếu hoặc bị nhiễu
Thay đổi dữ liệu và tri thức có thể làm cho các mẫu đã phát hiện không còn phù hợp
Sự tương tác với người sử dụng các tri thức sẳn có
Tích hợp với các hệ thống khác
Và một số trường hợp khác, …
2.2 Tổng quan về khai thác luật kết hợp
2.2.1 Khái niệm khai thác luật kết hợp
Khai thác luật kết hợp: Là tìm các mẫu phổ biến, sự kết hợp, sự tương quan, hay các cấu trúc nhân quả giữa các tập đối tượng trong các cơ sở dữ liệu giao tác, cơ sở dữ liệu quan hệ, và những kho thông tin khác [1]
Trang 26Một tập mục X được gọi là tập mục k phần tử (k-itemset) nếu lực lượng của
X bằng k (tức là |X|=k)
Định nghĩa 1: Độ hỗ trợ là biểu thị tần số luật có trong các giao tác Độ hỗ
trợ của tập mục X được tính bằng tỷ lệ phần trăm của các giao dịch hỗ trợ X trên tổng các giao dịch trong D, nghĩa là:
𝑠𝑢𝑝 𝑝𝑜𝑟𝑡(𝑋) = |𝑇 ∈ 𝐷/𝑋 𝑇 |
|𝐷|
các mục, X, Y I và X Y =
X được gọi là tiên đề
Y được gọi là hệ quả của luật
lượng các giao dịch chứa cả X và Y (XY) với tổng số giao dịch trong cơ sở dữ liệu
𝑠𝑢𝑝 𝑝𝑜𝑟𝑡 = Tổng sổ lổổng giao dổch hổ trổ 𝑋 𝑌
Tổng sổ lổổng giao dổch
Định nghĩa 2.4: Độ tin cậy (confidence) là tỷ lệ phần trăm giữa số lượng
các giao dịch chứa cả X và Y ( XY) với số giao dịch có chứa X
𝑐𝑜𝑛𝑓𝑖𝑑𝑒𝑛𝑐𝑒 =Tổng sổ lổổng giao dổch hổ trổ 𝑋 𝑌
Tổng sổ lổổng giao dổch hổ trổ 𝑋
(2.2)
(2.3) (2.1)
Trang 27Ngoài ra còn có ngưỡng do người dùng qui định đó là độ hỗ trợ tối thiểu (minsup) và độ tin cậy tối thiểu (minconf) Nếu tập mục X có sup(X)
minsup thì ta nói X là một tập mục phổ biến
2.2.3 Các hướng tiếp cận luật kết hợp
Cùng với sự phát triển vượt bậc của KTDL thì khai thác luật kết hợp cũng phát triển theo nhiều hướng khác nhau Những thuật toán mới được đề xuất để
nhằm cải thiện khả năng tìm kiếm hiệu quả hơn và sau đây là một số hướng:
Luật kết hợp nhị phân (Binary Association Rule): có thể nói đây là hướng nghiên cứu mới Các thuộc tính chỉ được quan tâm là có hay không xuất hiện trong giao tác của cơ sở dữ liệu (không quan tâm về
“mức độ“ xuất hiện) Thuật toán tiêu biểu của dạng này là thuật toán
sử dụng
Luật kết hợp với thuộc tính được đánh trọng số (Association rules with weighted items): trong các thuộc tính của CSDL thì có một số thuộc tính quan trọng trong quá trình khai thác vì vậy những thuộc tính đó sẽ được đánh trọng số theo mức độ xác định nào đó trong quá
Trang 28trình tìm kiếm Nhờ vậy mà ta thu được những luật hiếm tức là những luật có độ hỗ trợ thấp nhưng mang ý nghĩa quan trọng
Khai thác song song luật kết hợp (Parallel mining of association rule):
do nhu cầu phát triển của công nghệ thì nhu cầu song song hoá và xử
lý phân tán là rất cần thiết vì kích thước của dữ liệu ngày càng lớn theo thời gian nhưng phải đảm bảo về tốc độ xư lý
Những hướng tiếp cận của khai thác luật kết hợp nhằm tìm kiếm các luật một cách linh hoạt trong những CSDL lớn Bên cạnh đó, dung lượng dữ liệu ngày càng tăng theo thời gian thì việc nghiện cứu ra các thuật toán mới nhằm làm giảm thời gian khai thác là hết sức cần thiết trong quá trình khai thác
2.2.4 Khai thác tập mục phổ biến
Bài toán khai thác tập phổ biến là bài toán rất quan trọng trong lĩnh vực KTDL, nhờ có bài toán này mà chúng ta mới có thể phát hiện ra tính chất ẩn, quan trọng của tập dữ liệu
Khai thác tập phổ biến là nền tảng cho nhiều nhiệm vụ trong KTDL khác như:
Phân tích luật kết hợp, mối tương quan
Mẫu tuần tự, cấu trúc
Phân tích dữ liệu không gian, đa phương tiện, phụ thuộc thời gian
Phân loại dựa trên luật kết hợp
Phân tích nhóm: gom nhóm dựa trên mẫu phổ biến
Khai thác tập phổ biến thường được mô tả là một quá trình lấy thông tin có giá trị từ CSDL lớn, việc khai thác này bắt nguồn từ dạng mẫu có sẵn tồn tại trong CSDL, các mẫu này có khuynh hướng gom nhóm lại với nhau và được định nghĩa như là một mô hình khai thác
Trong các nghiên cứu thị trường, khai thác tập phổ biến từ CSDL giao tác
chính là công việc khám phá ra những tập mục (itemset) thường xuất hiện cùng nhau trong các giao tác Tuy nhiên, lợi nhuận theo đơn vị sản phẩm (unit profits) và
số lượng mua (quantities) của các mục (item) chưa được xét đến trong khuôn khổ
Trang 29khai thác tập phổ biến Do đó, để thỏa mãn nhu cầu của người dùng trong khám phá tìm ra những tập mục có lợi nhuận cao là rất khó Việc khai thác tính hữu ích đã trở thành một đề tài quan trọng trong khai thác dữ liệu nhằm khám phá ra những tập mục có độ hữu ích hay lợi nhuận cao
2.3 Giới thiệu về khai thác tập mục hữu ích cao
Khai thác tập mục hữu ích cao là bài toán mở rộng và tổng quát của khái thác tập phổ biến Trong khai thác tập mục hữu ích cao, giá trị của item trong giao tác được quan tâm nhiều nhất (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 đó Lợi ích của một tập mục là số đo lợi nhuận của tập mục đó đóng góp trong CSDL, nó có thể là tổng lợi nhuận hay tổng chi phí của tập mục
Khai thác tập mục hữu ích cao là khám phá ra tất cả các tập mục có lợi ích không nhỏ hơn ngưỡng phổ biến tối thiểu do người dùng qui định Mục đích chính của các bài toán khai thác tập mục hữu ích cao là làm giảm thiểu kích thước của tập ứng viên và làm đơn giản hóa quá trình tính toán độ hữu ích các tập mục từ đó giảm
số lượng ứng viên cho tập mục hữu ích cao, giảm thời gian khai thác
Cách tiếp cận đơn giản nhất cho bài toán khai thác tập mục hữu ích cao là liệt kê tất cả các tập mục từ CSDL giao tác theo nguyên lý vét cạn, cách tiếp cận này sẽ gặp phải vấn đề về thời gian, không gian khi tìm kiếm quá lớn và nhất là khi
CSDL chứa nhiều giao tác hoặc ngưỡng min_util đặt ra quá thấp Do đó, làm thế
nào để lược bỏ bớt không gian tìm kiếm và tìm đủ tất cả tập mục hữu ích cao một cách hiệu quả là một thách thức lớn trong khai thác tính hữu ích [4]
Mô hình khai thác tập mục hữu ích cao đã được Liu và các đồng sự đề xuất
với thuật toán Two-Phase, trong thuật toán Two-Phase có đề cập đến lợi ích của giao tác và lợi ích của tập mục theo các giao tác chứa nó Tuy nhiên, thuật toán Two-Phase
đã mất rất nhiều thời gian khi khai thác tập mục hữu ích cao trên các CSDL lớn do
việc sinh ra số lượng rất lớn số mục (ứng viên) và tốn nhiều lần duyệt CSDL
Các thuật toán khai thác tập mục hữu ích cao được đề xuất sau đó áp dụng phương pháp ước lượng dư để tăng hiệu suất khai thác tính hữu ích Trong những
Trang 30phương pháp này, các tập mục hữu ích tiềm năng được tìm ra trước, sau đó CSDL
sẽ được duyệt thêm lần nữa để xác định độ hữu ích thực sự của chúng Để giảm được đáng kể số lượng ứng viên phát sinh để tìm ra các tập mục hữu ích cao một cách hiệu quả từ các CSDL có số lượng giao tác lớn
2.3.1 Một số định nghĩa của bài toán
Cho một tập mục 𝐼 chứa các mục (hay còn gọi là item) từ 1 đến m sao cho 𝐼={𝑖1,𝑖2, ,ij, , 𝑖𝑚}, trong đó mỗi mục 𝑖j sẽ có một lợi nhuận cố định được ký hiệu là 𝑝(𝑖j)
Một tập mục X được gọi là tập mục (hay itemset) k phần tử phân biệt với
X = {𝑖1,𝑖2, ,ik) trong đó 𝑖j I và 1≤ k ≤ m, khi đó 𝑋 còn được gọi là tập k-mục (hay k-itemset)
Cho một CSDL có n giao dịch được ký hiệu là D = {T1, T2, , Tn} với 1≤ d ≤
n, trong đó mỗi giao dịch Td được ký hiệu là TID và mỗi mục ij trong giao dịch Td chứa một giá trị được gọi là số lượng và ký hiệu là q(ij,Td)
Ví dụ: Cho một CSDL D được biểu diễn ở dạng ma trận nhau sau:
Bảng 2.1: Bảng biểu diễn CSDL giao dịch
Trang 31Bảng 2.2: Bảng lợi nhuận của các item trong CSDL
là u(ij,Td) và tính bằng công thức sau:
𝑢(𝑖𝑗, 𝑇𝑑) = 𝑞(𝑖𝑗, 𝑇𝑑) × 𝑝(𝑖𝑗)
Ví dụ: Tính độ hữu ích của mục A trong giao dịch T9
u({A},T3) = q({A},T3) x p({A}) = 1 x 3 = 3
là u(X,Td) và tính bằng công thức:
𝑢(𝑋, 𝑇𝑑) = ∑𝑖𝑗∈𝑋 & 𝑋 𝑇𝑑𝑢(𝑖𝑗, 𝑇𝑑)
Ví dụ: Tính độ hữu ích của tập mục {AB} trong giao dịch T9
u({AB},T9) = u({A},T9) + u({B},T9) = 3 + 10 = 13
Định nghĩa 3: Độ hữu ích của tập mục X trong CSDL D được ký hiệu là
u({AD}) = u({AD},T4) + u({AD},T8) = 9 + 27 = 36
Định nghĩa 4: Một tập mục được gọi là tập mục hữu ích cao nếu độ hữu
ích của nó không nhỏ hơn một ngưỡng hữu ích tối thiểu min_util do người dùng đặt
ra Ngược lại, nó được gọi là tập mục hữu ích thấp
Định nghĩa 5: Độ hữu ích giao dịch (Transaction Utility) của một giao
dịch Td được ký hiệu là tu(Td) và tính bằng công thức:
Trang 32Ví dụ: Tính độ hữu ích giao dịch của T1, ta có 2 mục {C} và {E} tham gia trong giao dịch
Định nghĩa 6: Trọng số độ hữu ích của giao dịch (Transaction – Weighted
Utilization) của một tập mục 𝑋 là tổng độ hữu ích giao dịch của tất cả các giao dịch
chứa 𝑋, ký hiệu là twu(𝑋) và được tính bằng công thức:
𝑋∈𝑇𝑑 & 𝑇𝑑∈𝐷
Ví dụ: Tính trọng số độ hữu ích của giao dịch của tập mục {AD} trong CSDL, ta có 2 giao dịch chứa tập mục {AD} là T4 và T8
twu ({AD}) = tu(T4) + tu(T8) = 14 + 57 = 71
Định nghĩa 7: Bao đóng giảm theo giao tác (Transaction – Weighted
Downward Closure, viết tắt là TWDC), được phát biểu như sau Với mọi tập mục 𝑋,
nếu 𝑋 không phải là một HTWUI, bất kỳ tập cha nào của 𝑋 cũng là tập hữu ích thấp Theo định nghĩa này, tính chất bao đóng giảm có thể được duy trì bằng cách
sử dụng trọng số độ hữu ích theo giao tác
(2.8)
Trang 332.3.2 Các nghiên cứu liên quan
Thuật toán nổi tiếng là Apriori là thuật toán tiên phong trong việc khai thác luật kết hợp từ các CSDL lớn Mục đích của thuật toán Apriori [10] là tìm ra được tất cả các tập phổ biến có thể có trong CSDL giao tác, Apriori hoạt động theo nguyên tắc quy hoạch động do đó nó sinh ra rất nhiều tập phổ biến và phải duyệt CSDL nhiều lần Sau đó, các hướng nghiên cứu dựa trên cấu trúc cây như FP-
Growth [9] đã được đề xuất bởi Han cùng các đồng sự FP-Growth được công nhận
rộng rãi là có hiệu suất tốt hơn hướng tiếp cận Apriori do nó tìm tập phổ biến mà không sinh bất kỳ tập ứng viên nào và chỉ duyệt CSDL gốc hai lần
Tuy nhiên, thuật toán Apriori hay FP-Growth chỉ mới quan tâm đến các tập phổ biến nhưng yếu tố quan trọng nhất đó là người dùng thì chưa được quan tâm đến Vì vậy các nghiên cứu chuyên sâu về các thuất toán để đáp ứng như cầu của con người là việc tất yếu Hiện nay có nhiều phương pháp để khai thác tập mục hữu ích cao, chẳng hạn như Two-Phase, TWU-Mining, …
2.3.2.1 Thuật toán khai thác tập mục hữu ích cao Two-Phase
Thuật toán Two-Phase được đề xuất bởi Liu cùng các đồng sự [12], trong
thuật toán này được chia ra hai giai đoạn chính và gọi là phase 1 và phase 2 Phase sinh ra các tập mục ứng viên độ dài k từ các HTWUI có độ dài (k - 1) và lược bớt tập mục ứng viên bằng tính chất TWDC Trong mỗi lần lặp, các HTWUI và trọng số độ hữu ích của TWU chúng được tính bằng cách duyệt CSDL Sau giai đoạn 1 ta sẽ thu được toàn bộ tập HTWUI Ở giai đoạn 2, các tập mục hữu ích cao
Two-và độ hữu ích của chúng sẽ được xác định từ các HTWUI bằng cách duyệt CSDL gốc thêm lần nữa
Phase 1: Thuật toán Two-Phase triển khai chiến lược tìm kiếm theo chiều
rộng để liệt kê tất cả các HTWUI Tính độ hữu ích giao tác TU và tiến hành tính thêm trọng số độ hữu ích giao tác TWU của từng itemset Sau đó giá trị TWU sẽ
được so sánh với ngưỡng min_util để sinh ra tập ứng viên có tập mục hữu ích cao
HTWUI , trong quá trình này CSDL được duyệt m lần ứng với mỗi lần là k-tập mục
(1-tập mục, 2-tập mục, …, k-tập mục)
Trang 34Dựa vào CSDL giao tác D đã được trình bày trong bảng 2.1 ta tiến hành lặp từ
k = 1 đến m, với m là số mục trong CSDL giao tác D và lợi nhuận của các mục được
thể hiện trong bảng 2.2 Ngưỡng min_util = 170 ta có các bước thực hiện như sau:
Bước 1: Với k=1 (1-itemset)
Bảng 2.4: Two-Phase với 1-itemset
Bước 2: Với k=2 (2-itemset)
Bước 3: Với k=3 (3-itemset)
Bảng 2.6: Two-Phase với 3-itemset
Bước 4: Với k=4 (4-itemset): bước này thuật toán không tạo ra bất
kỳ 4-itemset nào được từ bước 3 nên thuật toán dừng
Sau khi kết thức phase 1 có 9 tập itemset sau: {B}, {C}, {D}, {E}, {BD}, {BE}, {CE}, {DE}, {BDE} trong HTWUI Trong pha này, các tập mục có twu thấp thì sẽ bị loại trong quá trình phát sinh ứng cử viên mới
Trang 35Phase 2: Trong giai đoạn này, toàn bộ CSDL sẽ được yêu cầu quét lại để
chọn ra các itemset có độ hữu ích cao từ tập mục có trọng số độ hữu ích cao trong tập HTWUI được tính trong phase 1
Bảng 2.7: Two-Phase với các itemset có độ hữu ích cao
Tuy nhiên, thuật toánTwo-Phase vẫn tồn tại hiện tượng sinh ra lượng lớn ứng viên và duyệt CSDL nhiều lần Để giải quyết vấn đề sinh ra nhiều ứng viên và duyệt CSDL nhiều lần, sau đây là thuật toán TWU-Mining với nền tảng là cấu trúc cây WIT-Tree sẽ làm giảm số lần duyệt CSDL nhưng vẫn hiệu quả
2.3.2.1 Thuật toán khai thác tập mục hữu ích cao TWU-Mining
Thuật toán TWU-Mining [6] được xây dựng trên nền tảng cây WIT-Tree, thuật toán bao gồm hai giai đoạn và được gọi là phase 1 và phase 2
Phase 1: tìm tất cả các itemset có trọng số độ hữu ích cao trong giao dịch không nhỏ hơn ngưỡng minutil của người dùng qui định
Phase 2: trong giai đoạn này sẽ tính giá trị độ hữu ích của các itenset trong tập HUIs dựa trên Tidset
a Cấu trúc cây WIT-Tree
Cấu trúc cây WIT-Tree được mở rộng từ thuật toán IT-Tree [6] Mỗi nút N trong cây bao gồm các thuộc tính như:
N.X : chứa itemset
N.Tidset : là tập số thứ tự của các giao dịch chứa itemset X
N.twu : tổng trọng số độ hữu ích của các itemset X trên tất cả các
Trang 36Nguyên tắc phát sinh cây: bước đầu tiên của WIT-Tree chứa 5 item {A,
B, C, D, E} với cùng với tidset và twu tương ứng
Bảng 2.8: WIT-Tree với từng item đơn
Tương tự cho các node khác, sau khi thực hiện xong thuật toán ta có cây như sau:
Hình 2.2: Xây dựng cây WIT-Tree
Trang 37TWU-Mining()
1 HUIs =
2 [] = {it(i)| i I twu(i) minutil}
3 SORT([]) // Sorted in ascending order by their |Tidset|
b Thuật toán TWU-Mining
Thuật toán bắt đầu với việc khởi tạo tập chứa các item mà thoả điều kiện twu(i) ≥ minutil và sắp xết thứ tự tăng dần của Tidset Sau đó gọi hàm TWU-Mining và truyền các tham số, ứng với mỗi li với lj (i>j và i<m) ta có: X = li lj và
Y = Tidset(li) Tidset(lj) Dựa vào Tidset(X) sẽ tính được twu(X) ≥ minutil thì sẽ đưa vào tập [Pi] và thuật toán sẽ gọi đệ qui cho đến khi kết thúc Xét từng itemset trong tập [P], thuật toán sẽ tính được giá trị độ hữu ích của itemset dựa vào Tidset Nếu u(X) ≥ minutil thì sẽ đưa itemset đó vào tập HUIs
Đầu vào: CSDL giao dịch, bảng lợi ích của các item, ngưỡng minutil
Đầu ra: Tập itemset có độ hữu ích cao HUIs
Thuật toán được phát biểu như sau [6]:
Trang 38DEx2478 253/56
Dx2478 253/36
Ex123457810 372/50
{ }
Bx267910 280/240
Cx135810 176/48
BDx27 182/172
BEx2710 254/240
BDEx27 182/182
CEx135810 253/56
Dựa vào CSDL giao tác D đã được trình bày trong bảng 2.1 với m là số mục trong CSDL giao tác D và lợi nhuận của các mục được thể hiện trong bảng 2.2
Ngưỡng min_util = 170 ta sẽ có kết quả như sau:
Hình 2.4: Kết quả thuật toán TWU-Mining
2.4 Khai thác tập mục hữu ích cao trên cơ sở dữ liệu tăng trưởng
2.4.1 Tổng quan
Luật kết hợp là cách tiếp cận phổ biến nhất trong các kỹ thuật khai thác dữ liệu Nó tìm tất cả các tập phổ biến dựa trên ngưỡng độ hổ trợ tối thiểu do người dùng định nghĩa, từ đó sinh ra các tập phổ biến dựa trên ngưỡng đã qui định Tuy nhiên, tần số xuất hiện của itemset chưa đủ để xác định tập phổ biến có lợi ích cao
Ngoài tần số xuất hiện hay không xuất hiện của các itemset trong cơ sở dữ liệu còn phụ thuộc vào các yếu tố như: giá, số lượng hoặc lợi nhuận không được xác định
trong luật kết hợp Lợi ích của một itemset X được định nghĩa như là u(X), nó được
tính bằng tổng của các lợi ích itemset X trong tất cả giao dịch chứa X Nếu u(X) lớn hơn hoặc bằng ngưỡng tối thiểu thì itemset X được xem là itemset có lợi ích cao
Trang 39 Ngoài ra, còn có lợi ích của itemset BC và AC
u(BC)=(2 3) + (1 2) = 8 u(AC)=(3 1) + (2 2) = 8 Liu và các đồng sự [12] đề xuất ra một thuật toán hai pha và thiết kế thuộc tính dựa trên trọng số độ hữu ích của giao dịch (TWU) cho việc lấy ra các itemset
có độ hữu ích cao TWU được xem như là ngưỡng trên của mỗi ứng cử viên itemset trong một giao dịch từ đó làm giảm bớt số lượng ứng cử viên itemset cho lần xử lý sau trong thuật toán hai pha Khi dữ liệu mới được thêm vào trong cơ sở dự liệu sẽ tính giá trị lợi ích thực sự của các ứng cử viên để xác định các itemset có lợi ích cao
Trong các phương pháp trước đó, cơ sở dữ liệu khai thác là thường là dạng tĩnh và xử lý dữ liệu theo lô Trên thực tế, các giao dịch có thể được tự động thêm vào trong cơ sở dữ liệu ban đầu Vì vậy việc phát triển một thuật toán hiệu quả để từng bước cập nhật các luật được phát hiện với mong muốn khai thác dữ liệu động
Trang 40Trong ứng dụng thực tế, giao dịch CSDL thường tăng lên theo thời gian và thủ tục cho khai thác luật kết hợp được thực hiện chế độ hàn loạt Các thuật toán khai thác hàng loạt truyền thống giải quyết các vấn đề này bằng cách quét lại toàn
bộ dữ liệu khi giao dịch được chèn, xóa hoặc sửa đổi trong cơ sở dữ liệu động
Hong và các đồng sự [11] đã đề xuất ra khái niệm “pre-large” để định nghĩa các itemset phổ biến (large itemsets) và itemset gần phổ biến (pre-large itemsets) dựa
trên ngưỡng trên và ngưỡng dưới cho một ngưỡng an toàn của những giao dịch mới
để giảm số lần yêu cầu quét lại cơ sở dữ liệu Một thuật toán cộng dồn dựa trên khái niệm tăng trưởng để cập nhật lại các itemset có độ hữu ích cao được phát hiện ra khi thêm các giao dịch mới
Trong thuật toán này, khái niệm pre-large được sử dụng để giảm số lần quét lại CSDL ban đầu bằng cách xác định số giao dịch mới được chèn vào Một pre-large itemset không phải là thực sự lớn nhưng có thể dễ dàng trở thành lớn trong tương lai thông qua các dữ liệu trong quá trình thêm vào CSDL Hai ngưỡng hỗ trợ được sử dụng tương ứng để khám phá các tập phổ biến và gần phổ biến nhằm làm giảm số lần quét lại của CSDL ban đầu Quá trình quét lại dữ liệu ban đầu đòi hỏi sẽ mất nhiều thời gian trong quá trình tính toán vì vậy ngưỡng dưới nhằm giảm số lần quét lại CSDL Các CSDL ban đầu được yêu cầu quét lại chỉ khi số lượng chèn giao dịch là lớn hơn ngưỡng an toàn Thuật toán này có nhiều hơn hiệu quả hơn so với các phương pháp tiếp cận hàng loạt và các khái niệm FUP
Những điểm mới của thuật toán được mô tả như sau:
Khai thác dữ liệu cách truyền thống thì không hiệu quả gây lãng phí khi phá hiện ra các thông tin cập nhật vào trong CSDL với một lượng nhỏ dữ liệu được thêm vào Trong thuật toán này, một phương pháp hiệu quả được đề xuất khi thêm các giao dịch cho khai thác lợi ích
Cách tiếp cận 2 pha làm giảm số lần của ứng cử viên itemset trong khai thác lợi ích thông qua đó làm tăng tốc thời gian xử lý cho việc khai thác itemset có lợi ích cao