Ngày nay lĩnh vực kinh doanh nói chung và bài toán kinh doanh các mặt hàng tại siêu thị nói riêng đang là vấn đề cạnh tranh đầy biến động Trãi qua thời gian các đơn vị tổ chức hoạt động trong lĩnh vực này đã và đang lưu trữ một khối lượng dữ liệu khổng lồ Khi lưu trữ khối dữ liệu này họ hy vọng rằng ở chúng sẽ chứa đựng những thông tin thực sự có giá trị để trợ giúp cho việc ra quyết định đúng đắn và kịp thời ở hiện tại cũng như có những chiến lược phát triển kinh doanh hợp lý và bền vững trong tương lai Xuất phát từ nhu cầu thực tế này Khai phá dữ liệu KPDL trong cơ sở dữ liệu CSDL đã và đang là một xu hướng quan trọng của nền công nghệ thông tin CNTT thế giới một trong những hướng tiếp cận hiệu quả là sử dụng luật kết hợp Association rules nhằm phát hiện ra mối liên hệ có tính phổ biến giữa các thành phần dữ liệu trong cơ sở dữ liệu trong đó khai phá luật kết hợp đa cấp đang là hướng đi hứa hẹn đầy triển vọng
Trang 1LUẬN VĂN THẠC SĨ KỸ THUẬT Chuyên ngành: KHOA HỌC MÁY TÍNH
Trang 2ĐẠI HỌC ĐÀ NẴNG TRƯỜNG ĐẠI HỌC BÁCH KHOA -
PHAN CHÍ THỦY
LUẬT KẾT HỢP ĐA CẤP VÀ ỨNG DỤNG CHO BÀI TOÁN KHAI PHÁ LUẬT KẾT HỢP ĐA CẤP TẠI SIÊU THỊ ĐIỆN MÁY
HUY CƯỜNG – QUẢNG NGÃI
Chuyên ngành : KHOA HỌC MÁY TÍNH
Mã số: 60.48.01.01
LUẬN VĂN THẠC SĨ KỸ THUẬT
NGƯỜI HƯỚNG DẪN KHOA HỌC: TS TRƯƠNG NGỌC CHÂU
Đà Nẵng - Năm 2018
Trang 3LỜI CẢM ƠN
Trước hết em xin gửi lời cảm ơn chân thành đến toàn thể các thầy cô giáo trong Khoa Công nghệ Thông tin – Trường Đại học Bách khoa – Đại học Đà Nẵng đã tận tình dạy dỗ chúng em trong suốt quá trình học tập và nghiên cứu tại trường
Đặc biệt, em xin bày tỏ lòng biết ơn sâu sắc đến Thầy giáo TS Trương Ngọc Châu – Giảng viên chính, Khoa Công nghệ Thông tin – Trường Đại học Bách khoa – Đại học Đà Nẵng đã quan tâm hướng dẫn và đưa ra những gợi ý, góp ý, chỉnh sửa vô cùng quý báu cho em trong quá trình làm luận văn tốt nghiệp
Cuối cùng xin chân thành cảm ơn những người bạn, đồng nghiệp, gia đình
đã tạo điều kiện giúp đỡ, chia sẽ với em trong suốt quá trình làm luận văn
Đà Nẵng, ngày 09 tháng 11 năm 2017
HỌC VIÊN
Phan Chí Thủy
Trang 4LỜI CAM ĐOAN Tôi cam đoan đây là công trình nghiên cứu của riêng tôi dưới sự hướng dẫn của Thầy TS Trương Ngọc Châu Các số liệu, kết quả nêu trong luận văn là trung thực và chưa từng được ai công bố trong bất kỳ công trình nào khác
Đà Nẵng, ngày 09 tháng 11 năm 2017
Tác giả luận văn
Phan Chí Thủy
Trang 5MỤC LỤC Trang phụ bìa
Lời cảm ơn i
Lời cam đoan ii
Mục lục iii
Tóm tắt luận văn v
Danh mục các ký hiệu, từ viết tắt vi
Danh mục các bảng vii
Danh mục các hình vẽ viii
MỞ ĐẦU 1
CHƯƠNG 1 TỔNG QUAN KHAI PHÁ DỮ LIỆU 4
1.1 Các khái niệm cơ bản 4
1.1.1 Khai phá dữ liệu 4
1.1.2 Các kĩ thuật khai phá dữ liệu 5
1.2 Khai phá luật kết hợp 7
1.2.1 Các khái niệm cơ bản 7
1.2.1.1 Mục (Item) 7
1.2.1.2 Tập mục (Itemset) 7
1.2.1.3 Giao dịch (Transaction) 7
1.2.1.4 Độ hỗ trợ của tập mục 8
1.2.1.5 Tập mục phổ biến 8
1.2.1.6 Luật kết hợp 9
1.2.1.7 Độ hỗ trợ và độ tin cậy của luật kết hợp 9
1.2.2 Phân loại luật kết hợp 9
1.2.2.1 Luật kết hợp nhị phân 9
1.2.2.2 Luật có thuộc tính số và thuộc tính hạng mục 10
1.2.2.3 Luật kết hợp đơn mức 11
1.2.2.4 Luật kết hợp đa mức 11
1.2.3 Ứng dụng của luật kết hợp 12
1.3 Một số thuật toán khai phá luật kết hợp: 12
1.3.1 Phát biểu bài toán 12
1.3.2 Thuật toán Apriori 12
1.3.2.1 Thuật toán 13
1.3.2.2 Cách sinh luật từ tập mục phổ biến 16
1.3.3 Thuật toán FP-Growth 17
1.3.3.1 Giới thiệu 17
1.3.3.2 Cấu trúc cây FP- Tree 17
1.3.3.3 Xây dựng cây FP-Tree 18
Trang 61.3.3.4 Ví dụ minh họa xây dựng cây FP - Tree 18
1.3.3.5 Khai phá cây FP-Tree để tìm tập mục phổ biến 22
CHƯƠNG 2 KHAI PHÁ LUẬT KẾT HỢP ĐA CẤP DỰA TRÊN ….25
TẬP MỤC PHỔ BIẾN NGUYÊN THỦY 25
2.1 Luật kết hợp đa cấp 25
2.2 Một số phương pháp khai phá luật kết hợp đa cấp 26
2.2.1 Khai phá luật kết hợp đa cấp dựa trên ma trận logic 26
2.2.1.1 Giới thiệu: 26
2.2.1.2 Thuật toán: 26
2.2.1.3 Ví dụ minh họa 26
2.2.3 Khai phá luật kết hợp đa cấp dựa trên tập mục phổ biến nguyên thủy 34
2.2.3.1 Giới thiệu: 34
2.2.3.2 Thuật toán 35
2.2.3.3 Ví dụ minh họa: 35
2.3 Kết luận: 45
CHƯƠNG 3 CÀI ĐẶT THỰC NGHIỆM, ỨNG DỤNG CHO BÀI TOÁN KHAI PHÁ LUẬT KẾT HỢP ĐA CẤP TẠI SIÊU THỊ ĐIỆN MÁY HUY CƯỜNG – QUẢNG NGÃI46 3.1 Dữ liệu đầu vào: 46
3.1.1 Bảng các giao tác dữ liệu được lưu trữ trong file Context.txt theo quy ước: 46
3.1.2 Giá trị độ hỗ trợ tối thiểu minsup (s) 47
3.1.3 Giá trị độ tin cậy tối thiểu minconf (c) 47
3.2 Dữ liệu đầu ra: 47
3.3 Cài đặt chương trình: 47
3.4 Phân tích, nhận xét kết quả thực nghiệm: 49
3.5 Kết luận: 49
KẾT LUẬN VÀ HƯỚNG PHÁT TRIỂN 50
DANH MỤC TÀI LIỆU THAM KHẢO 51
PHỤ LỤC 52 QUYẾT ĐỊNH GIAO ĐỀ TÀI
BẢN SAO KẾT LUẬN CỦA HỘI ĐỒNG, BẢN SAO NHẬN XÉT CỦA CÁC PHẢN BIỆN
Trang 7TÓM TẮT LUẬN VĂN
LUẬT KẾT HỢP ĐA CẤP VÀ ỨNG DỤNG CHO BÀI TOÁN KHAI PHÁ LUẬT KẾT HỢP ĐA CẤP TẠI SIÊU THỊ ĐIỆN MÁY HUY CƯỜNG –
QUẢNG NGÃI Học viên: PHAN CHÍ THỦY Chuyên ngành: KHOA HỌC MÁY TÍNH
Mã số: Khóa: 2016-2018 Trường Đại học Bách khoa - ĐHĐN
Tóm tắt - Ngày nay, lĩnh vực kinh doanh nói chung và bài toán kinh doanh các mặt hàng tại siêu thị nói riêng đang là vấn đề cạnh tranh, đầy biến động Trãi qua thời gian, các đơn vị/tổ chức hoạt động trong lĩnh vực này, đã và đang lưu trữ một khối lượng dữ liệu khổng
lồ Khi lưu trữ khối dữ liệu này, họ hy vọng rằng, ở chúng sẽ chứa đựng những thông tin thực sự có giá trị, để trợ giúp cho việc ra quyết định đúng đắn và kịp thời ở hiện tại, cũng như có những chiến lược phát triển kinh doanh hợp lý và bền vững trong tương lai Xuất phát từ nhu cầu thực tế này, Khai phá dữ liệu (KPDL) trong cơ sở dữ liệu (CSDL) đã và đang là một xu hướng quan trọng của nền công nghệ thông tin (CNTT) thế giới, một trong những hướng tiếp cận hiệu quả là sử dụng luật kết hợp (Association rules), nhằm phát hiện ra mối liên hệ có tính phổ biến giữa các thành phần dữ liệu trong
cơ sở dữ liệu, trong đó khai phá luật kết hợp đa cấp đang là hướng đi hứa hẹn đầy triển vọng
Từ khóa – Công nghệ thông tin; Khai phá dữ liệu; Luật kết hợp; Luật kết hợp đa cấp; Cơ
sở dữ liệu; Thông tin; Tính phổ biến; Quyết định; Chiến lược; Kinh doanh; Siêu thị
THE MULTI-LEVEL ASSOCIATION RULES AND APPLICATION FOR PROBLEM OF MINING MULTI-LEVEL ASSOCIATION RULES AT HUY CUONG – QUANG NGAI MACHINE ELECTRIC SUPERMARKET Abstract – Nowdays, the business areas in general and the business problem of Items in supermarkets in particular, are a matter of competition, full of change Over time, the units/organizations active in this field, has been hosting a huge volume of data When storing this data blocks, they hope that, in them shall contain such information is really valuable, In order to help the decision-making right and timely in the present, as well as strategies developing rational and sustainable business in the future
Derived from this fact needs, data mining in the DATABASE has been and is a significant trend of the information technology (IT) world, one of the most efficient approach is to use the association rules, which aims to uncover the popular relationships between the data elements in the DATABASE, in which mining multilevel association rules are directions promises full prospects
Key words – Information Technology; Data Mining; Asociation Rules; Multil-level Association Rules; Databases; Information; Prequent; Decision; Strategy; Business; Supermarkets
Trang 8DANH MỤC CÁC KÝ HIỆU, TỪ VIẾT TẮT
MHĐK Mô hình điều kiện
MLBL Multilevel Association Rule Based on Boolean Matrix
TMPB Tập mục phổ biến
FP-Tree Frequent Pattern-Tree
Trang 91.10 Bảng tổng hợp kết quả xây dựng MHĐK tổng quát và cây FP-Tree tương ứng 24 2.1 Hệ thống dữ liệu giao dịch của cửa hàng thực phẩm 26
2.3 Bảng mã hóa các mặt hàng theo từng mức khái niệm 28 2.4 Hệ thống dữ liệu giao dịch của cửa hàng điện tử 35 2.5 Bảng mã hóa các mặt hàng điện tử theo từng mức khái niệm 36
Trang 10DANH MỤC CÁC HÌNH VẼ
Số hiệu
1.4 Tập mục ứng cử C2 và tập mục phổ biến L2 15 1.5 Tập mục ứng cử C3 và tập mục phổ biến L3 15
1.8 Cây FP-Tree sau thực hiện xong giao dịch thứ nhất 20 1.9 Cây FP-Tree sau thực hiện xong giao dịch thứ hai 21 1.10 Cây FP-Tree sau thực hiện xong giao dịch thứ ba 21 1.11 Cây FP-Tree sau thực hiện xong giao dịch thứ tư 21
1.13 Cây FP-Tree trên MHĐK của “P” (cây FP-TreeP) 23
2.1 Hệ thống phân cấp khái niệm các mặt hàng thực phẩm 27
Trang 11MỞ ĐẦU
1 Tính cấp thiết của đề tài:
Ngày ngay, trong thời kỳ công nghiệp hóa và hiện đại hóa với sự phát triển vượt bậc của khoa học - công nghệ; các lĩnh vực kinh doanh, y học, tin sinh học, giáo dục, viễn thông, tài chính và thị trường chứng khoán… cũng phát triển mạnh mẽ không ngừng Trãi qua thời gian, các đơn vị/tổ chức hoạt động trong các lĩnh vực nói trên đã lưu trữ một khối lượng dữ liệu khổng lồ Khi lưu trữ các dữ liệu này, họ hy vọng rằng ở chúng sẽ chứa đựng những giá trị nhất định nào đó Tuy nhiên, theo thống
kê thì chỉ có một lượng nhỏ trong số đó (khoảng từ 5% đến 10%) là luôn được xem xét
và phân tích, số còn lại họ không biết sẽ phải làm gì hoặc có thể làm gì với chúng; nhưng họ vẫn tiếp tục thu thập và lưu trữ rất tốn kém với ý nghĩ lo sợ rằng, sẽ có cái gì
đó quan trọng có thể bị bỏ qua, sau này có lúc cần đến nó Mặt khác, trong môi trường cạnh tranh thì vấn đề về “Thông tin hữu ích” là cực kỳ quan trọng và cần thiết Việc
có được những thông tin này một cách nhanh chóng, chính xác và kịp thời là điều mà người ta kỳ vọng, để hỗ trợ cho việc ra quyết định ở thời điểm hiện tại cũng như có chiến lược phát triển bền vững trong tương lai Ngày càng có nhiều câu hỏi mang tính chất định tính cần phải được trả lời dựa trên một khối lượng dữ liệu khổng lồ có sẵn
Xuất phát từ nhu cầu thực tế này, Khai phá dữ liệu (KPDL) trong cơ sở
dữ liệu (CSDL) đã và đang là một xu hướng quan trọng của nền công nghệ thông tin (CNTT) thế giới, với mục tiêu chính là lấy được những thông tin hữu ích từ dữ liệu lịch sử Một trong những hướng tiếp cận hiệu quả là sử dụng luật kết hợp (Association rules), nhằm phát hiện ra mối liên hệ có tính phổ biến giữa các thành phần dữ liệu trong CSDL, đây là dạng luật biểu diễn tri thức ở dạng khá đơn giản; nhưng lại mang nhiều ý nghĩa thiết thực Việc tìm ra được các luật kết hợp quý hiếm và mang nhiều thông tin có giá trị từ CSDL tác nghiệp là một trong những hướng tiếp cận chính của lĩnh vực KPDL, trong đó khai phá luật kết hợp đa cấp đang là hướng đi hứa hẹn đầy triển vọng trong các hệ thống khai phá dữ liệu lớn (Big Data)
Khai phá luật kết hợp đa cấp là sự mở rộng của khai phá luật kết hợp truyền thống, nhằm phát hiện ra một số luật tiềm ẩn có giá trị ở những mức độ khác nhau, với khả năng khai phá linh hoạt do có thể thay đổi giá trị của độ hỗ trợ và độ tin cậy của luật theo từng mức Việc phát hiện ra các luật kết hợp đa cấp sẽ cung cấp bổ sung một
số luật thực sự có ý nghĩa, nhằm mở rộng khả năng tìm kiếm thông tin trong quá trình phát hiện tri thức từ CSDL
Đó là lý do tôi chọn tên đề tài: “Luật kết hợp đa cấp và Ứng dụng cho bài toán Khai phá luật kết hợp đa cấp tại siêu thị điện máy Huy Cường – Quảng Ngãi ” làm luận văn tốt nghiệp của mình
Trang 122 Mục đích nghiên cứu:
Mục tiêu chính của đề tài này là tìm hiểu, nghiên cứu và cài đặt mô phỏng thử nghiệm thuật toán khai phá luật kết hợp đa cấp dựa trên tập mục phổ biến nguyên thủy (Thuật toán CFP) và ứng dụng cho bài toán khai phá luật kết hợp đa cấp tại siêu thị điện máy Huy Cường - Quảng Ngãi
3 Đối tượng và phạm vi nghiên cứu:
3.1 Đối tượng nghiên cứu của đề tài:
- Các vấn đề liên quan đến khai phá dữ liệu
- Khai phá luật kết hợp, khai phá luật kết hợp đa cấp
- Thuật toán khai phá luật kết hợp đa cấp dựa trên tập mục phổ biến nguyên thủy
2.2 Phạm vi nghiên cứu của đề tài:
- Luận văn tập trung vào tìm hiểu các thuật toán khai thác luật kết hợp, luật kết hợp đa cấp
- Trọng tâm là nghiên cứu thuật toán khai phá luật kết hợp đa cấp dựa trên tập mục phổ biến nguyên thủy
4 Phương pháp nghiên cứu:
- Nghiên cứu tài liệu về thuật toán: khai phá luật kết hợp, khai phá luật kết hợp đa cấp
- Cài đặt mô phỏng thuật toán khai phá luật kết hợp đa cấp dựa trên tập mục phổ biến nguyên thủy, ứng dụng trên CSDL cụ thể trong thực tế
- Phân tích, đánh giá kết quả
5 Ý nghĩa khoa học và thực tiễn:
- Hiểu được lý thuyết tổng quan về khai phá dữ liệu
- Hiểu được các thuật toán khai phá luật kết hợp: FP-Growth, Apriori
- Hiểu được các thuật toán khai thác luật kết hợp đa cấp: MLBL, CFP
- Cài đặt mô phỏng thuật toán khai phá luật kết hợp đa cấp dựa trên tập mục phổ biến nguyên thủy, ứng dụng cho bài toán “Khai phá luật kết hợp đa cấp tại siêu thị điện máy Huy Cường - Quảng Ngãi”
6 Cấu trúc của luận văn:
Nội dung của cuốn luận văn được trình bày trong ba chương
MỞ ĐẦU
Chương 1 – TỔNG QUAN VỀ KHAI PHÁ DỮ LIỆU: Giới thiệu tổng quan về khai phá dữ liệu, khai phá luật kết hợp và một số thuật toán tìm tập mục phổ biến trong khai phá luật kết hợp
Chương 2 – KHAI PHÁ LUẬT KẾT HỢP ĐA CẤP DỰA TRÊN TẬP MỤC PHỔ BIẾN NGUYÊN THỦY: Giới thiệu một số thuật toán khai phá luật kết hợp đa cấp
Trang 13Chương 3 – ỨNG DỤNG THỰC NGHIỆM: Cài đặt mô phỏng thuật toán khai phá luật kết hợp đa cấp dựa trên tập mục phổ biến nguyên thủy, ứng dụng cho bài toán
“Khai phá luật kết hợp đa cấp tại siêu thị điện máy Huy Cường - Quảng Ngãi”
KẾT LUẬN VÀ HƯỚNG PHÁT TRIỂN
Trang 14Chương 1 - TỔNG QUAN VỀ KHAI PHÁ DỮ LIỆU
1.1 Các khái niệm cơ bản:
1.1.1 Khai phá dữ liệu:
Trong thực tế, nguồn dữ liệu từ các hoạt động của con người thực sự là một nguồn tài nguyên có nhiều giá trị bởi thông tin là yếu tố then chốt phục vụ cho mọi hoạt động quản lý, kinh doanh, phát triển sản xuất và dịch vụ, nó giúp cho người điều hành và quản lý có những hiểu biết về môi trường và tiến trình hoạt động của tổ chức mình trước khi ra quyết định để tác động đến quá trình hoạt động nhằm đạt được các mục tiêu một cách hiệu quả và bền vững
Khai phá dữ liệu là việc phân tích dữ liệu nhằm tự động khai phá thông tin, tri thức mới hữu ích, tiềm ẩn từ những mẫu cơ sở dữ liệu đã có của các đơn vị, tổ chức, doanh nghiệp , từ đó làm thúc đẩy khả năng sản xuất, kinh doanh, cạnh tranh cho các đơn vị, tổ chức này
Có rất nhiều định nghĩa khác nhau về khai phá dữ liệu Giáo sư Tom Mitchell
đã từng đưa ra định nghĩa về khai phá dữ liệu như sau: “Khai phá dữ liệu là việc sử dụng dữ liệu lịch sử để khám phá những quy tắc và cải thiện những quyết định trong tương lai” Với một cách tiếp cận ứng dụng hơn, tiến sĩ Fayyad cho rằng: “Khai phá
dữ liệu thường được xem là việc khám phá tri thức trong các cơ sở dữ liệu, là một quá trình trích xuất những thông tin tiềm ẩn trước đây chưa biết và có khả năng hữu ích dưới dạng các quy luật, ràng buộc, quy tắc trong cơ sở dữ liệu” [5]
Các kết quả nghiên cứu khoa học cùng với những ứng dụng thành công trong lĩnh vực phát hiện tri thức từ cơ sở dữ liệu đã cho thấy rằng, khai phá dữ liệu là một lĩnh vực phát triển bền vững, mang lại nhiều lợi ích và có nhiều triển vọng, đồng thời
có ưu thế hơn hẳn so với các công cụ tìm kiếm, phân tích dữ liệu truyền thống Hiện nay, khai phá dữ liệu đã được ứng dụng ngày càng rộng rãi trong các lĩnh vực như thương mại, tài chính, y học, viễn thông, tin - sinh học
Khai phá dữ liệu còn được gọi là KDD (Knowledge discovery in databases) trong hội thảo năm 1989 để nhấn mạnh rằng tri thức là sản phẩm cuối cùng của quá trình khai phá dữ liệu
Trang 15Quá trình phát hiện tri thức gồm các bước sau:
- Hình thành và định nghĩa bài toán: Xác định mục tiêu cụ thể, hình thành và xây dựng bài toán
- Lựa chọn dữ liệu: Ở giai đoạn này, dữ liệu được lựa chọn và phân chia theo một
số tiêu chí của bài toán đề ra
- Biển đổi dữ liệu: Là bước chuẩn hóa và làm mịn dữ liệu để đưa dữ liệu về dạng thuận lợi nhất nhằm phục vụ cho việc áp dụng các kỹ thuật khai phá ở bước sau
- Khai phá dữ liệu: Là bước áp dụng những kỹ thuật khai phá dữ liệu đã có nhằm khai thác dữ liệu, trích lọc thông tin, những mối quan hệ đặc biệt trong dữ liệu mà gọi chung là tri thức Đây được xem là bước quan trọng và tiêu tốn nhiều thời gian nhất của toàn bộ quá trình khai phá dữ liệu
- Đánh giá và biểu diễn tri thức: Đây là giai đoạn cuối cùng trong quá trình khai phá dữ liệu, ở giai đoạn này 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 chuyển sang và 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, Không phải mẫu dữ liệu nào cũng hữu ích, đôi khi nó còn bị sai lệch Vì vậy, cần phải đưa ra những tiêu chuẩn đánh giá độ ưu tiên cho các mẫu dữ liệu để rút ra được những tri thức cần thiết
1.1.2 Các kĩ thuật khai phá dữ liệu:
Khai phá dữ liệu có hai chức năng cơ bản: Chức năng dự đoán và chức năng
mô tả Có rất nhiều kĩ thuật khai phá dữ liệu khác nhau nhằm thực hiện hai chức năng này:
Kỹ thuật khai phá dữ liệu mô tả: Có nhiệm vụ mô tả các tính chất hoặc các đặc tính chung của dữ liệu trong cơ sở dữ liệu Các kỹ thuật này gồm có: Phân cụm (Clustering), tổng hợp (Summarisation), trực quan hóa (Visualizatation), phân tích sự phát triển và độ lệch (Evolution and deviation analyst),
Kỹ thuật khai phá dữ liệu dự đoán: Có nhiệm vụ đư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 (Classification), hồi quy (Regession), luật kết hợp (Association rules), cây quyết định (Decision tree), mạng neural (Neural network),
Hiện nay, một số kĩ thuật phổ biến thường được sử dụng để khai phá dữ liệu là: 1.1.2.1 Phân lớp dữ liệu:
Mục tiêu của phương pháp phân lớp dữ liệu là dự đoán nhãn lớp cho các mẫu
dữ liệu Quá trình phân lớp dữ liệu thường gồm hai bước: Xây dựng mô hình và sử dụng mô hình để phân lớp dữ liệu
- Bước 1: Một mô hình sẽ được xây dựng dựa trên việc phân tích các mẫu dữ liệu sẵn có Mỗi mẫu tương ứng với một lớp, được quyết định bởi một thuộc tính gọi
là thuộc tính lớp Các lớp dữ liệu này còn được gọi là lớp dữ liệu huấn luyện Các nhãn lớp của tập dữ liệu huấn luyện đều phải được xác định trước khi xây dựng mô hình
Trang 16- Bước 2: Sử dụng mô hình để phân lớp dữ liệu Trước hết, chúng ta phải tính
độ chính xác của mô hình Nếu độ chính xác là chấp nhận được, mô hình sẽ được sử dụng để dự đoán nhãn lớp cho các mẫu dữ liệu khác trong tương lai
1.1.2.2 Phân cụm dữ liệu:
Mục tiêu chính của phương pháp phân cụm dữ liệu là nhóm các đối tượng tương tự nhau trong tập dữ liệu vào các cụm sao cho các đối tượng thuộc cùng một cụm là tương đồng còn các đối tượng thuộc các cụm khác nhau sẽ không tương đồng Phân cụm dữ liệu là một ví dụ của phương pháp học không có giám sát
Không giống như phân lớp dữ liệu, phân cụm dữ liệu không đòi hỏi phải định nghĩa trước các mẫu dữ liệu huấn luyện Vì thế có thể coi phân cụm dữ liệu là một cách học bằng quan sát, trong khi phân lớp dữ liệu là học bằng ví dụ Thuật toán thường dùng để phân cụm dữ liệu là k-means Trong phương pháp này, chúng ta không thể biết kết quả các cụm thu được sẽ thế nào khi bắt đầu quá trình khai phá Vì vậy, thông thường cần có một chuyên gia về lĩnh vực đó để đánh giá các cụm thu được Phân cụm dữ liệu được sử dụng nhiều trong các ứng dụng về phân đoạn thị trường, phân đoạn khách hàng, nhận dạng mẫu, phân loại trang Web
1.1.2.3 Phương pháp hồi quy:
Phương pháp hồi quy tương tự như phân lớp dữ liệu, nhưng khác ở chỗ: Hồi quy dùng để dự đoán về các giá trị liên tục còn phân lớp dữ liệu chỉ dùng để dự đoán
về các giá trị rời rạc
Phương pháp hồi quy sử dụng một hàm số học để ánh xạ một mục dữ liệu thành một biến dự đoán có giá trị thực Có rất nhiều ứng dụng khai phá dữ liệu với nhiệm vụ hồi quy, chẳng hạn như khả năng đánh giá mức độ tử vong của bệnh nhân khi biết các kết quả xét nghiệm; dự đoán nhu cầu tiêu thụ một sản phẩm mới bằng một hàm chi tiêu quảng cáo
1.1.2.4 Khai phá luật kết hợp:
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 thuộc tính hay giá trị giữa các thuộc tính trong cơ sở dữ liệu Đầu ra của giải thuật khai phá luật kết hợp là tập các luật kết hợp tìm được Khai phá luật kết hợp được thực hiện qua hai bước:
Bước 1: Tìm tất cả các TMPB, một tập mục là phổ biến nếu độ hỗ trợ của nó thỏa mãn độ hỗ trợ tối thiểu
Bước 2: Sinh ra các luật kết hợp mạnh từ TMPB, các luật phải thỏa mãn độ hỗ trợ tối thiểu và độ tin cậy tối thiểu
Phương pháp này được sử dụng rất hiệu quả trong các lĩnh vực như maketing, phân tích quyết định, quản lý kinh doanh, phân tích giá thị trường, …
Trang 171.1.2.5 Cây quyết định:
Kỹ thuật cây quyết định là một công cụ mạnh và hiệu quả trong việc phân lớp
và dự báo, các đối tượng dữ liệu được phân thành các lớp, các giá trị của đối tượng dữ liệu chưa biết sẽ được dự đoán, dự báo Tri thức được rút ra trong kỹ thuật này thường được mô tả dưới dạng tường minh, đơn giản, trực quan, dễ hiểu đối với người sử dụng 1.2 Khai phá luật kết hợp:
Việc khai phá luật kết hợp là một trong những phương pháp khai phá mẫu phổ biến nhất trong việc phát hiện tri thức và khai phá dữ liệu
Mục đích chính của khai phá dữ liệu là các tri thức được kết xuất ra sẽ được sử dụng trong việc dự báo thông tin, trợ giúp trong sản xuất kinh doanh và nghiên cứu khoa học Trong hoạt động sản xuất kinh doanh, ví dụ kinh doanh các mặt hàng tại siêu thị, các nhà quản lý rất thích có được các thông tin mang tính thống kê như: “80% khách hàng mua sách ngoại ngữ thì sẽ mua đĩa CD hoặc VCD” Những thông tin như vậy rất hữu ích trong việc định hướng kinh doanh Vậy vấn đề đặt ra là liệu có tìm được các luật như vậy bằng các công cụ khai phá dữ liệu hay không? Câu trả lời là hoàn toàn có thể, đó chính là nhiệm vụ của khai phá luật kết hợp
1.2.1 Các khái niệm cơ bản:
Như vậy, một giao dịch t là tập các mục sao cho tI
Ví dụ: t={cà phê, sữa, đường}
CSDL giao dịch gọi là tập các giao dịch Ký hiệu là D
Trang 181.2.1.4 Độ hỗ trợ của tập mục:
Giao dịch t chứa X nếu X là tập các hạng mục trong I và Xt
Ví dụ: t={cà phê, sữa, đường}
X count
Cho A và B là các tập mục Nếu AB thì supp(A) supp(B)
Độ hỗ trợ tối thiểu (minsupp) của tập mục được kí hiệu là s
Ví dụ: Xét cơ sở dữ liệu sau:
Bảng 1.2 Hệ thống dữ liệu bán hàng đơn giản Các giao dịch Các mặt hàng được mua
Tập X2 = {4} là tập mục không phổ biến vì có supp(X2) =1/4 < s
Cho A, B là hai tập mục với AB, cho trước độ hỗ trợ tối thiểu s Khi đó:
- Nếu B là tập mục phổ biến thì A cũng là tập mục phổ biến
- Nếu A không phải là tập mục phổ biến thì B cũng không phải tập mục phổ biến
Ví dụ: Xét bảng dữ liệu giao dịch 1.2, với s=2, ta có:
Trang 19Luật kết hợp là qui tắc kết hợp có điều kiện giữa các tập phần tử:
Cho X, Y là hai tập con của I và X Y = , khi đó một luật có dạng XY gọi
là luật kết hợp
Luật kết hợp cho biết khả năng xuất hiện tập các mục Y khi xuất hiện tập các mục X trong bảng giao dịch D
Ví dụ 1.4. Luật kết hợp {cà phê}{sữa}
* Mục đích của khai phá luật kết hợp:
Tìm kiếm mối quan hệ giữa các tập mục bằng cách tìm các tập mục thường xuyên xuất hiện cùng nhau trong cơ sở dữ liệu giao dịch Việc tìm ra những luật kết hợp trong cơ sở dữ liệu sẽ cung cấp cho người dùng những tri thức vô cùng quan trọng mang tính quyết định
1.2.1.7 Độ hỗ trợ và độ tin cậy của luật kết hợp:
Độ hỗ trợ (support), và độ tin cậy (confidence) của luật kết hợp được định nghĩa như sau:
Support(X Y) = supp(XY)
Confidence (XY) =
) ( supp
) ( supp
X
Y
X
Độ tin cậy tối thiểu (minconf) của luật kết hợp được kí hiệu là c
Luật X Y được gọi là luật mạnh nếu có độ hỗ trợ support(XY) s và độ tin cậy confidence(XY) c
* Ý nghĩa của độ hỗ trợ và độ tin cậy của luật kết hợp:
Độ hỗ trợ và độ tin cậy là hai đơn vị đo lường của luật kết hợp, chúng phản ánh tính hữu dụng và độ mạnh của luật tương ứng Độ hỗ trợ như là tính hữu dụng của một luật, nó mô tả tần suất các giao dịch có chứa đồng thời cả hai mục X và Y Độ tin cậy như là độ chính xác của luật, nó mô tả xác suất xuất hiện Y khi có mặt X Luật có độ
hỗ trợ và độ tin cậy vượt qua độ hỗ trợ tối thiểu s và độ tin cậy tối thiểu c được gọi là luật kết hợp mạnh
1.2.2 Phân loại luật kết hợp:
Các luật kết hợp có thể được phân loại theo tính chất tương đối như sau:
1.2.2.1 Luật kết hợp nhị phân (Binary association rule hoặc boolean association rule):
Trang 20Trong luật kết hợp này, các mục (thuộc tính) chỉ được quan tâm là có hay không xuất hiện trong giao dịch của cơ sở dữ liệu chứ không quan tâm về mức độ xuất hiện, nghĩa là việc mua 10 hộp sữa hay mua 1 hộp sữa được xem là giống nhau
Ví dụ 1.5. Bảng dữ liệu giao dịch D, các giá trị: 1 biểu diễn sự có mặt của mặt hàng X trong giao dịch U, ngược lại mặt hàng X không có trong giao dịch U thì được biểu diễn giá trị 0
Luật kết hợp nhị phân: Mua “Áo” => Mua “Váy” với s = 3, c = 0.7
1.2.2.2 Luật có thuộc tính số và thuộc tính hạng mục (quantitative and categorical association rule):
Trong luật kết hợp này, các giá trị định lượng cho các hạng mục hoặc các thuộc tính được chia thành khoảng giá trị Để phát hiện luật kết hợp với các thuộc tính này, các nhà nghiên cứu đã đề xuất một số phương pháp rời rạc hóa nhằm chuyển dạng luật này về dạng nhị phân để có thể áp dụng các thuật toán đã có
Ví dụ 1.6. Cho bảng dữ liệu giao dịch D, với các thuộc tính số: Tuổi, cân nặng, chiều cao Thuộc tính nhị phân: Béo phì
Bảng 1.4 Bảng dữ liệu giao dịch D, với các thuộc tính của con người
Mã giao dịch (U) Tuổi Cân nặng (kg) Chiều cao (m) Béo phì
Trang 211.2.2.3 Luật kết hợp đơn cấp (đơn mức):
Là luật chỉ liên quan đến các phần tử hoặc các thuộc tính ở một mức độ trừu tượng nhất định
Ví dụ 1.7 Dựa vào bảng giao dịch 1.4 nêu trên, luật kết hợp đơn mức:
Cân nặng [60 65] Béo phì = “1” với s =3, c =0.85
1.2.2.4 Luật kết hợp đa cấp (đa mức):
Dữ liệu sử dụng hệ thống phân cấp khái niệm được định nghĩa là một chuỗi các ánh xạ từ một tập dữ liệu có sẵn vào tập các khái niệm từ mức thấp đến mức cao
Dữ liệu thông thường biểu diễn trên cây phân cấp khái niệm là dữ liệu về các mặt hàng được bán trong một hệ thống kinh doanh: quầy tạp hóa, siêu thị, khu thương mại
Các mặt hàng được biểu diễn trên cây phân cấp (ví dụ như trong hình 1.2) với mỗi nút là một khái niệm về mặt hàng ở một mức độ trừu tượng nhất định Trong đó,
dữ liệu ở mức càng thấp thì mức độ chi tiết hóa càng cao Khái niệm ở các mức thấp được tổng quát hóa trong khái niệm ở mức cao hơn, khái niệm ở mức cao được chi tiết, cụ thể hóa trong các mức thấp hơn
Luật kết hợp đa cấp là luật liên quan đến các phần tử hoặc các thuộc tính ở các mức độ trừu tượng khác nhau
Hình 1.2 Dữ liệu trên cây phân cấp khái niệm
Ví dụ 1.8 giả sử ta có những quy tắc sau:
Quy tắc A: 70% khách hàng mua bánh mỳ cũng mua sữa
Quy tắc B : 45% khách hàng mua bánh mỳ ngọt cũng mua sữa có đường
Quy tắc C: 35% khách hàng mua bánh mỳ ngọt Bảo Thạnh cũng mua sữa có đường Vinamilk
Ta thấy các luật kết hợp trên biểu diễn các mức độ khác nhau trên cây phân cấp hình 1.2 cụ thể là: Luật A ở mức 2, luật B ở mức 1, luật C ở mức 0
Trang 221.2.3 Ứng dụng của luật kết hợp:
Luật kết hợp có ứng dụng trong nhiều lĩnh vực khác nhau của đời sống như: khoa học, hoạt động kinh doanh, tiếp thị, thương mại, phân tích thị trường chứng khoán, tài chính và đầu tư
Khai phá luật kết hợp là tìm ra các mối quan hệ giữa các mục trong phiên giao dịch, nó sẽ rất hữu ích khi chúng ta tiến hành khai phá một cách có thứ tự, có mục đích
rõ ràng Kĩ thuật này góp phần chỉ rõ hơn những thông tin, tri thức tiềm ẩn có ích trong các phiên giao dịch để từ đó giúp cho người quản lý, điều hành có kế hoạch hoạt động, sản xuất kinh doanh trong các năm tiếp theo Tính ứng dụng của khai phá luật kết hợp trong cơ sở dữ liệu giao dịch giải quyết tốt cách thức thi hành, ứng dụng thông tin quan trọng trên các phiên giao dịch Dựa vào tính ứng dụng này, có thể có giải pháp tốt đối với nền kinh tế thị trường hiện tại cũng như trong tương lai
1.3 Một số thuật toán khai phá luật kết hợp:
Thực chất của bài toán khai phá luật kết hợp được chia thành hai bài toán nhỏ Bài toán thứ nhất sẽ đi tìm tất cả các tập mục dữ liệu có độ hỗ trợ thoả mãn độ hỗ trợ tối thiểu cho trước, được gọi là các tập mục phổ biến Bài toán thứ hai là bài toán đi tìm các luật kết hợp từ những tập mục phổ biến có được từ kết quả của bài toán một, sao cho thỏa mãn một độ tin cậy cho trước nào đó
1.3.1 Phát biểu bài toán:
Cho tập các mục I, cơ sở dữ liệu giao dịch D, độ hỗ trợ tối thiểu s và độ tin cậy tối thiểu c Tìm tất cả các luật kết hợp có dạng X Y trên cơ sở dữ liệu D, trong đó X,
Y I , XY = sao cho: supp(X Y) s và conf(XY)c Bài toán khai phá luật kết hợp có thể được chia ra làm hai bài toán con được phát biểu trong thuật toán sau:
Đầu vào: I, D, s, c
Đầu ra: Các luận kết hợp thỏa mãn s và c
Giải hai bài toán con sau:
(1) Tìm tất cả các tập mục phổ biến từ cơ sở dữ liệu D, tức là tìm tất cả các tập mục có độ hỗ trợ lớn hơn hoặc bằng s
(2) Sinh ra các luật từ các tập mục phổ biến, sao cho độ tin cậy của luật lớn hơn hoặc bằng c
1.3.2 Thuật toán Apriori:
Phương pháp sinh ra ứng cử viên để tìm tập mục phổ biến được Agrawal đề xuất từ năm 1993 với thuật toán Apriori Ý tưởng của thuật toán Apriori dựa trên tính chất: “ Nếu một tập mục là phổ biến thì tất cả tập con của nó cũng là tập mục phổ biến” Do vậy không thể có trường hợp một tập phổ biến mà có tập con là không phổ biến, nói cách khác tập k-Itemset sẽ được tạo ra từ (k-1)-Itemset (với k >1)
Trang 231.3.2.1 Thuật toán:
Ý tưởng thuật toán: Trước tiên, tìm tất cả các TMPB có 1-Itemset, từ TMPB có 1-Itemset sẽ sinh ra TMPB có 2-Itemset, quá trình này lặp lại cho đến khi không còn tập mục phổ biến nào được tạo ra
Thuật toán gồm hai giai đoạn chính là: Giai đoạn kết nối và giai đoạn rút gọn Giai đoạn kết nối:
Gọi Lk-1 là tập tất cả TMPB của (k-1)-Itemset Chúng ta sẽ tìm tất cả tập mục có k-Itemset là ứng cử viên (dự tuyển) của k-Itemset, kí hiệu Ck
Giả sử các tập mục được sắp xếp theo thứ tự từ điển
Lấy l1, 12 là hai tập tập mục phổ biến bất kỳ thuộc Lk-1, gọi li[j] là mục thứ j của tập mục li
Khi đó, nếu lấy 1 1 và 1 2 có (k-2) mục đầu tiên giống nhau thì kết hợp chúng thành Itemset gồm có các mục (l1[1] = 12[1]) (11[2] = 12[2]) (11[k-2] = l2[k-2])
k-(l1[k-l]<l2[k-l])
Bổ sung vào Ck
Giai đoạn rút gọn:
Tạo tập Lk từ tập Ck bằng các bước như sau: khởi tạo Lk ban đầu bằng rỗng, sau
đó duyệt tất cả k-Itemset trong Ck và tính độ hỗ trợ của nó Nếu độ hỗ trợ của nó lớn hơn hoặc bằng s, thì bổ sung vào Lk
Đầu vào: Cơ sở dữ liệu giao dịch D và ngưỡng hỗ trợ tối thiểu s
Đầu ra: L (là tập mục phổ biến trong D)
(1) L1 = 1-Itemset phổ biến (D);// Bắt đầu với L1( tập các tập mục phổ biến có
Trang 24(9) c.count++; // Đếm số lần xuất hiện của c trong tất cả các tập Ct
(10) }
(11) Lk = {c Ck|c.count s}; // Lk là tập các tập mục phổ biến có k phần tử (k-Itemset)
(12) return L= i Li; // L là kết quả, tập các tập mục phổ biến cuối cùng, với
(5) c = 11 nối 12 // bước kết nối: sinh tập ứng cử viên
(6) If has_infrequent_subset(c,Lk-1) then // Nếu c không phổ biến (7) delete c; //bước rút gọn: loại bỏ ứng cử viên này
(8) Else thêm c vào Ck;
(9) }
(10) return Ck;
// Thủ tục kiểm tra tính phổ biến của tập mục, sử dụng tri thức biết trước
Procedure has_infrequent_subset(c: k-Itemset ứng cử; Lk-1: (k-l)-Itemset phổ biến)
(1) for mỗi (k-1)-Itemset con m của c
Trang 25Bước 1: Duyệt cơ sở dữ liệu để tìm ra tập 1-Itemset phổ biến trong L1 với độ hỗ trợ 2
Các giao dịch Các mặt hàng được mua
dữ liệu và tính độ hỗ trợ của các ứng cử viên trong C2, loại bỏ những ứng cử viên có
độ hỗ trợ nhỏ hơn s, để tạo ra tập 2-Itemset phổ biến là L2
Hình 1.5 Tập mục ứng cử C3 và tập mục phổ biến L3
L1Tập mục Độ hỗ trợ
Trang 26Bước 4: Tạo C4 và L4 từ L3
C4 Tập mục Độ hỗ trợ I1,I2,I3,I5 1Hình 1.6 Tập mục ứng cử C4
Như vậy, thuật toán dừng lại bước 4 vì L4 =
Kết quả với s = 2, ta có các tập mục phổ biến là:
L = L1 L2 L3
= {{I1}, {I2}, {I3}, {I4}, {I5}, {I1, I2}, {I1, I3}, {I1, I5}, {I2, I3},
{I2, I4}, {I2, I5}, {I1, I2, I3},{I1,I2, I5}}
Hạn chế của thuật toán Apriori:
Để xác định độ hỗ trợ của các tập ứng cử viên, thuật toán Apriori phải duyệt lại toàn bộ giao dịch trong cơ sở dữ liệu, do đó sẽ tiêu tốn rất nhiều thời gian, đặc biệt khi
số tập mục lớn Những hạn chế này sẽ được khắc phục với phương pháp không sinh ứng cử viên sẽ tìm hiểu ở phần tiếp theo
1.3.2.2 Cách sinh luật từ tập mục phổ biến:
Những tập mục phổ biến từ tập giao tác trong cơ sở dữ liệu D được tìm ra, từ
đó dễ dàng để ta sinh ra các luật kết hợp mạnh từ những tập mục phổ biến này (luật kết hợp mạnh ở đây phải thỏa mãn 2 ngưỡng là độ hỗ trợ tối thiểu s và độ tin cậy tối thiểu c) Điều này được thực hiện bằng cách sử dụng công thức cho độ tin cậy sau [8]:
Confidence (A B) =
) ( supp
) ( supp A
Với mỗi tập mục phổ biến I, sinh tất cả tập con khác rỗng của I
Với mỗi tập con khác rỗng m của I, luật được sinh ra có dạng: “m (I-m)” nếu
c, với c là ngưỡng độ tin cậy tối thiểu
Xét ví dụ 1: Dữ liệu chứa tập mục phổ biến I = {I1, I2, I5} Những luật kết hợp nào có thể được sinh ra từ I ? Những tập con khác rỗng của I là: {I1, I2}, {I1, I5}, {I2, I5}, {I1}, {I2} và {I5} Ta có các luật kết hợp với độ tin cậy được đưa ra bên dưới:
Trang 27Như đã đề cập ở trên, thuật toán Apriori có các nhược điểm:
- Sinh ra số lượng khổng lồ các tập mục ứng cử viên
- Phải duyệt qua CSDL nhiều lần tùy thuộc vào độ dài của tập phổ biến dài nhất Thuật toán khai phá các mẫu phổ biến bằng cây mẫu phổ biến FP-Tree được Jiawei Han, Jian Pei, and Yiwen Yin đề xuất để khắc phục các nhược điểm của thuật toán Apriori ở các điểm sau [12]:
- Thuật toán chỉ duyệt hai lần cho CSDL bất kỳ và sử dụng cấu trúc cây mẫu phổ biến FP-Tree để nén dữ liệu
- Những tập mục có độ hỗ trợ nhỏ hơn độ hỗ trợ tối thiểu s được loại ra từ đầu,
vì vậy việc tìm tập mục phổ biến chỉ thao tác trên một số lượng tập mục nhỏ hơn nhiều
so với toàn bộ các tập mục
Sử dụng phương pháp khai phá phát triển từng đoạn mẫu dựa trên FP-Tree, bắt đầu từ mẫu phổ biến có kích thước là 1 và chỉ kiểm tra trên mô hình điều kiện (MHĐK) của nó, xây dựng cây FP-Tree tương ứng và thực hiện khai phá đệ quy trên cây này
1.3.3.2 Cấu trúc cây FP- Tree:
Cấu trúc cây FP-Tree là một trong những phương pháp khắc phục được nhược điểm của thuật toán Apriori là phải phát sinh và kiểm tra một lượng lớn ứng cử viên [9]
Cấu trúc cây FP-Tree được dùng để tổ chức lại cơ sở dữ liệu sao cho thuận lợi trong quá trình tìm tập mục phổ biến, đồng thời các thông tin được nén trong cây FP-Tree với tỷ lệ tương đối cao Những thuận lợi đó là:
Những tập mục có độ hỗ trợ nhỏ hơn ngưỡng s được loại ra từ đầu, vì vậy việc tìm tập mục phổ biến chỉ thao tác trên một số lượng tập mục nhỏ hơn nhiều so với toàn bộ các tập mục
Nhiều giao dịch được nén chung trong cây FP-Tree sẽ giúp giảm bớt khá nhiều thao tác trong quá trình xác định độ phổ biến của các tập mục
Cấu trúc FP-Tree cho phép thực hiện tìm kiếm theo chiều sâu và áp dụng mô hình chia để trị khá hiệu quả
Nếu kích thước của cây FP-Tree (của CSDL tương ứng) đủ nhỏ để có thể lưu trữ trong bộ nhớ làm việc, thì thuật toán FP-Growth có thể xác định các tập mục thường xuyên trực tiếp từ cây FP-Tree lưu trong bộ nhớ (không cần duyệt lại CSDL lưu trên ổ cứng)
Trang 28Cấu trúc cây FP-Tree bao gồm nút gốc có nhãn “NULL”, tập các nhánh, mỗi nhánh tương ứng là một hoặc nhiều giao dịch giống nhau trong CSDL thỏa mãn ngưỡng s và bảng danh sách các tập mục phổ biến (F-List) được sắp xếp giảm dần theo độ hỗ trợ của tập mục
Mỗi nút trên cây FP-Tree bao gồm tên tập mục, số đếm (đếm số lần xuất hiện trong nhánh), nút liên kết trỏ đến nút cùng tên trong FP-Tree
Bảng danh sách tập mục phổ biến gồm tên tập mục, nút liên kết - trỏ đến nút cùng tên xuất hiện trong cây FP-Tree lần đầu tiên
1.3.3.3 Xây dựng cây FP-Tree:
Duyệt toàn bộ CSDL và sắp xếp thứ tự của các tập mục giảm dần theo độ hỗ trợ
và đưa vào trong bảng F-List Dựa vào ngưỡng hỗ trợ tối thiểu s mà ta sẽ xác định những tập mục nào được tạo trong cây FP-Tree và sắp xếp các tập mục trong một giao dịch theo thứ tự trong F-List Sau đó tạo cây FP-Tree bằng cách xét từng giao dịch trong CSDL đã được sắp xếp và loại bỏ những tập mục có độ hỗ trợ nhỏ hơn ngưỡng
s
a Tạo cây FP-Tree:
Đầu vào: CSDL và ngưỡng s
Đầu ra: Cấu trúc cây dữ liệu FP-Tree của CSDL
Thuật toán:
Bước 1: Duyệt CSDL lần 1 và tính độ hỗ trợ của từng tập mục Tìm những tập mục có độ hỗ trợ lớn hơn hoặc bằng ngưỡng s, sắp xếp chúng giảm dần theo độ hỗ trợ
và đưa vào trong F-List
Bước 2: Duyệt CSDL lần 2, với mỗi giao dịch, sắp xếp các tập mục theo thứ tự trong F-List
Bước 3: Tạo cây FP-Tree chỉ có một nút gốc được gán nhãn là NULL
Nếu p khác nhãn với các nút con hoặc nút con rỗng thì tạo một nút con mới, khởi tạo số đếm là 1, tạo liên kết với nút trong cây có cùng nhãn
Bước 2: Nếu P chưa rỗng, thì tiếp tục thực hiện chèn các phần tử trong P vào nút con vừa xét (nút con vừa mới được chèn vào trong cây)
Trang 291.3.3.4 Ví dụ minh họa xây dựng cây FP – Tree:
Quá trình xây dựng cây FP - Tree sẽ được thể hiện qua ví dụ xây dựng cây tương ứng với cơ sở dữ liệu trên, để tìm các tập mục phổ biến thỏa mãn ngưỡng s=3
Xét hệ thống cơ sở dữ liệu sau:
Bảng 1.6 Hệ thống cơ sỡ dữ liệu đơn giản Các giao dịch Danh sách các mặt hàng
Duyệt cơ sở dữ liệu lần 1, tính độ hỗ trợ của từng tập mục và sắp xếp các tập mục theo thứ tự giảm dần của độ hỗ trợ
Trang 305 M 3 NULL
Bảng 1.9 Các giao dịch được sắp xếp theo bảng F-List
Mã giao dịch Các giao dịch Các tập mục được sắp xếp theo
Cây FP-Tree khi mới khởi tạo:
Hình 1.7 Cây FP-Tree mới khởi tạo
Cây FP-Tree được tạo ra sau khi đọc giao dịch 1: F, C, A, M, P
Hình 1.8 Cây FP-Tree sau thực hiện xong giao dịch thứ nhất
Cây FP-Tree được tạo ra sau khi đọc giao dịch 2: F, C, A, B, M
Trang 31Hình 1.9 Cây FP-Tree sau thực hiện xong giao dịch thứ hai
Cây FP-Tree được tạo ra sau khi đọc giao dịch 3: F, B
Hình 1.10 Cây FP-Tree sau thực hiện xong giao dịch thứ ba
Cây FP-Tree được tạo ra sau khi đọc giao dịch 4: C, B, P
Hình 1.11 Cây FP-Tree sau thực hiện xong giao dịch thứ tư
Cây FP-Tree được tạo ra sau khi đọc giao dịch 5: F, C, A, M, P
Trang 32Hình 1.12 Cây FP-Tree toàn cục 1.3.3.5 Khai phá cây FP-Tree để tìm tập mục phổ biến:
Sau khi xây dựng được cấu trúc FP-Tree cho toàn bộ cơ sở dữ liệu chỉ gồm những tập mục thỏa mãn ngưỡng s, chúng ta phải duyệt cây để tìm ra những tập mục phổ biến thỏa mãn s Hiệu quả của quá trình khai phá dữ liệu phụ thuộc nhiều vào phương pháp duyệt Phương pháp duyệt phải thỏa mãn những yêu cầu sau:
+ Đảm bảo kết quả tập mục phổ biến là đầy đủ
+ Kết quả các tập mục phổ biến không bị trùng lặp
+ Các tập mục phổ biến phải thỏa mãn ngưỡng s
Để duyệt cây FP-Tree, ta thực hiện các bước sau:
* Duyệt F-List theo thứ tự tăng dần độ hỗ trợ của tập mục
* Tại mỗi tập mục {P} (bài toán P) đang xét, duyệt cây FP-Tree theo thứ
tự từ nút P tiến dần về nút gốc (Root), để xây dựng F-Listcục bộ tương ứng với P ListP), từ đó xây dựng cây FP-Tree cục bộ tương ứng với P (FP-TreeP) (đây là kết quả của quá trình chia nhỏ cây FP-Tree ban đầu):
(F-+ Tại nút P đang xét rên cây FP-Tree, kiểm tra tập mục {P} tương ứng có phổ biến hay không Nếu {P} phổ biến, ta xây dựng mô hình có điều kiện của mẫu {P} tương ứng (gọi tắt là MHĐK của P)
+ Xây dựng F-ListP từ MHĐK của P: Từ mô hình này, kết hợp với ngưỡng s để xác định tập phổ biến F-ListP, đây chính là danh sách các phần tử được dùng để tạo cây FP-TreeP
+ Xây dựng cây FP-TreeP từ F-ListP
* Nếu cây FP-TreeP khác rỗng, thực hiện đệ qui chia nhỏ cây FP-TreeP
(mỗi cây con của FP-TreeP là mỗi bài toán con tương ứng) Ngược lại, kết hợp lời giải của các bài toán con, ta được các tập mục phổ biến tại nút P (bài toán P kết thúc)
Xét ví dụ cây FP-Tree ở hình 1.12:
Trang 33Trước tiên, tìm tập mục phổ biến xuất phát từ nút P: ta có tập mục {P} là phổ biến vì {P} có độ hỗ trợ bằng với ngưỡng s=3, trên FP-Tree có hai nhánh (đường dẫn) đến P là: {F: 4, C: 3, A: 3, M 2, P: 2} và {C: 1, B: 1, P: 1}
Với nhánh thứ nhất, cho thấy chỉ có hai giao dịch chứa đồng thời cả {F, C, A,
M, P}, do đó ta có tiền tố đường dẫn tương ứng là: {F, C, A, M: 2} Tương tự, tiền tố đường dẫn của nhánh thứ hai có dạng: {C, B: 1} Tổ hợp các tiền tố đường dẫn của P, được gọi là MHĐK của P tương ứng: {{F, C, A, M:2},{C, B:1}} Đến đây, ta thấy chỉ
có {C:3} (với độ hỗ trợ là 3, bằng ngưỡng s=3), nên chỉ có {C} là phổ biến Đưa {C:3} vào danh sách F-ListP và xây dựng cây FP-TreeP tương ứng như sau:
Hình 1.13 Cây FP-Tree trên MHĐK của “P” (cây FP-TreeP)
Vì cây FP-TreeP ≠ (chỉ có một nhánh {C:3}), nên thuật toán FP-Growth chỉ cần giải quyết bài toán con “Tìm tập mục phổ biến kết thúc bởi CP” là đủ Vì {C} phổ biến và cây FP-TreeCP là rỗng Nên tập mục phổ biến của P là: {P} và {C, P} Đến đây, ta cũng kết thúc quá trình tìm kiếm tập phổ biến tại nút P
Tiếp theo, ta xét nút M trên cây FP-Tree: Dễ thấy, trên cây này cũng có hai nhánh (đường dẫn) đến nút M là: {F: 4, C: 3, A: 3, M: 2} và {F: 4, C: 3, A: 3, B:1, M: 1} Tương tự như đã phân tích ở trên, MHĐK của M là: {{F, C, A:2} và {F, C, A, B: 1}} Cây FP-TreeM trên MHĐK của M như sau:
Hình 1.14 Cây FP-TreeM trên MHĐK của “M”
Đến đây, cây FP-TreeM ≠ gồm các nút {F:3}, {C:3},{A:3} Thuật toán Growth cần giải quyết các bài toán con: “Tìm tập mục phổ biến kết thúc bởi AM, bởi
FP-CM, và bởi FM” Đối với bài toán con AM, ta có MHĐK của AM tương ứng: {F, C: 3} Cây FP-TreeAM trên mô hình này như sau:
Hình 1.15 Cây FP-TreeAM trên MHĐK của “AM”
Trang 34Đối với bài toán con CM, MHĐK của CM: {F:3} Cây FP-TreeCM tương ứng như sau:
Hình 1.16 Cây FP-TreeCM trên MHĐK của “CM”
Bằng cách xây dựng đệ quy cây FP-Tree, ta tìm được các tập mục phổ biến chứa M như sau:
{{M}; {A, M}; {C, M}; {F, M}; {C, A, M};{F, A, M}; {F, C, M}; {F, C, M, A}} Tương tự, thực hiện cho nút B: không có tập mục phổ biến
Đối với nút A, có các tập mục phổ biến là: {C,A}; {F,A}
Đối với nút C, có các tập mục phổ biến: {F,C}
Ta có thể tổng quát quá trình tìm kiếm các tập mục phổ biến ở trên trong bảng 1.10 dưới đây
Bảng 1.10 Bảng tổng hợp kết quả xây dựng MHĐK tổng quát và cây FP-Tree
tương ứng Tập mục Mô hình điều kiện Xây dụng cây FP-Tree
Chương này trình bày tổng quan về khai phá dữ liệu và luật kết hợp: khái niệm
về khai phá dữ liệu, luật kết hợp, tính chất của luật kết hợp, phân loại luật kết hợp, tìm hiểu một số thuật toán khai phá mẫu phổ biến cơ bản trong khai phá luật kết hợp: Apriori, FP-Growth Chương tiếp theo (chương 2), sẽ tập trung vào nội dung
“Khai phá luật kết hợp đa cấp dựa trên tập mục phổ biến nguyên thủy”
Trang 35Chương 2 - KHAI PHÁ LUẬT KẾT HỢP ĐA CẤP DỰA TRÊN TẬP MỤC
PHỔ BIẾN NGUYÊN THỦY
2.1 Luật kết hợp đa cấp:
Nếu khai phá luật kết hợp quan tâm tới kết quả cuối cùng của bài toán thì khai phá luật kết hợp theo từng mức quan tâm đến kết quả ở từng mức, từ cao tới thấp tùy theo yêu cầu khách hàng muốn tiếp tục khai phá mức sâu hơn hay dừng lại Vậy nên, quá trình khai phá có thể dừng lại sớm hơn yêu cầu đặt ra ban đầu khi có kết quả thoả mãn nhu cầu khách hàng
Ví dụ: Bài toán yêu cầu tính tỉ lệ những khách hàng mua sữa đặc Vinamilk có đường loại dinh dưỡng hằng ngày thì sẽ mua bánh mỳ ngọt Bảo Thạnh Có thể ta chỉ cần khai phá đến ngang mức “Khách hàng mua sữa đặc Vinamilk thì sẽ mua bánh mỳ ngọt” là đã có kết quả mà khách hàng cần
Để khai phá luật kết hợp đa cấp cần có hai điều kiện sau [10]:
- Dữ liệu phải được biểu diễn ở nhiều mức độ trừu tượng khác nhau
- Phương pháp để khai phá luật kết hợp ở từng mức
Phát biểu bài toán:
Thực chất của bài toán khai phá luật kết hợp đa mức là bài toán khai phá luật kết hợp truyền thống nhưng theo từng mức khác nhau Bài toán này được chia thành hai bài toán nhỏ
Bài toán thứ nhất sẽ đi tìm tất cả các tập mục dữ liệu ở từng mức có độ hỗ trợ thoả mãn độ hỗ trợ tối thiểu (s) cho trước, được gọi là các tập mục phổ biến
Bài toán thứ hai là bài toán đi tìm các luật kết hợp từ những tập mục phổ biến ở từng mức có được từ kết quả của bài toán một, thoả mãn độ tin cậy cho trước (c) nào
đó
Cho tập các mục I, cơ sở dữ liệu giao dịch D, độ hỗ trợ tối thiểu s, độ tin cậy tối thiểu c Tìm tất cả các luật kết hợp có dạng XY ở từng mức trên cơ sở dữ liệu D, trong đó X, YI, XY = sao cho: sup(XY) s và conf(XY) c Bài toán khai khá luật kết hợp có thể được chia ra làm 2 bài toán con được phát biểu như sau:
Đầu vào: I, D, s, c
Đầu ra: Các tập mục phổ biến và các luật kết hợp đa mức thỏa mãn s và c ở từng mức
Giải hai bài toán con:
(1) Tìm tất cả các tập mục phổ biến từ cơ sở dữ liệu D ở mỗi mức tức là tìm tất
cả các tập mục có độ hỗ trợ lớn hơn hoặc bằng s
(2) Ở mỗi mức, sinh ra các luật từ các tập mục phổ biến sao cho độ tin cậy của luật lớn hơn hoặc bằng c
Trang 362.2 Một số phương pháp khai phá luật kết hợp đa cấp:
2.2.1 Khai phá luật kết hợp đa cấp dựa trên ma trận logic:
2.2.1.1 Giới thiệu:
Thuật toán này chuyển đổi một hệ thống dữ liệu thành một ma trận logic lưu trữ trong các bit và sử dụng các vector logic “tích quan hệ” để phát hiện tập mục phổ biến Khi sử dụng ma trận logic sẽ tính toán nhanh và đơn giản hơn, để thay thế cho các tính toán phức tạp trên các giao dịch với số lượng lớn các tập mục
Thuật toán khai phá luật kết hợp đa cấp dựa trên ma trận logic còn được gọi là MLBL (Multilevel Association Rule Based on Boolean Matrix) [11]
2.2.1.2 Thuật toán:
Đầu vào: Tập mục I, tập giao dịch D, tập mục mã hóa ở mức khái niệm khác nhau, ngưỡng s ở từng mức khái niệm
Đầu ra: Tất cả tập mục phổ biến ở các mức khái niệm khác nhau
Bước 1: Thiết lập h=H-1 (H là mức khái niệm cao nhất của tập mục), với h được sử dụng để lưu trữ số mức được xử lý và h{0,1,2…H-1}
Bước 2: Chuyển đổi cơ sở dữ liệu thành ma trận Boolean
Giả sử D là cơ sở dữ liệu được khai thác, với D có m giao dịch và n tập mục Gọi T={T1,T2,…,Tm} là tập các giao dịch và I={I1,I2,…,In} là tập các mục Tạo ma trận (Aij)mxn , với m tương ứng với m giao dịch trong T và n tương ứng với n mục trong I Duyệt cơ sở dữ liệu D, nếu mục Ij có trong giao tác Ti thì phần tử Aij có giá trị là 1, ngược lại bằng 0
Bước 3: Tạo tập 1-Itemset L1 ở mức h Ma trận Boolean (Aij)mxn được duyệt và tính độ
hỗ trợ cho tất cả các mục Nếu mục Ij có độ hỗ trợ nhỏ hơn s thì tập mục {Ij} không phải là tập mục phổ biến và cột j trong ma trận logic (Aij)mxn sẽ bị xóa khỏi ma trận (Aij)mxn
Bước 4: Thực hiện phép toán AND để tạo ra các tập 2-Itemset,…, k-Itemset ở mức h Bước 5: Giảm giá trị h xuống một đơn vị Từ tập mục Lk và quay lại bước 2 để lặp lại toàn bộ quá trình xử lý cho mức tiếp theo
2.2.1.3 Ví dụ minh họa:
Để hiểu rõ hơn thuật toán và tạo ra luật kết hợp đa cấp, chúng ta tìm hiểu một ví
dụ cụ thể như sau:
Xét hệ thống cơ sở dữ liệu sau:
Bảng 2.1 Hệ thống dữ liệu giao dịch của cửa hàng thực phẩm
T1 Sữa có đường Vinamilk, Bánh mì nguyên chất Wonder, Cookies trà đen Nestle
T2 Sữa có đường Vinamilk, Bánh mì bơ Foremost, Cookies trà đen Nestle, nước ép táo
đỏ Delicious, nước ngọt Coca Cola
Trang 37T3 Sữa có đường Vinamilk, Bánh mì bơ Foremost, nước ép táo đỏ Delicious
T4 Sữa không đường Hà Lan, Cookies trà xanh Lipton, nước ép cam Valencia, nước
ngọt Prigat Pepsi T5 Sữa có đường Vinamilk, Bánh mì bơ Foremost, Cookies trà đen Nestle, nước ép
cam Valencia T6 Bánh mì bơ Foremost, Cookies trà đen Nestle, nước ép cam Valencia
Từ dữ liệu giao dịch trên, ta thực hiện phân cấp mức khái niệm như sau:
Hình 2.1 Hệ thống phân cấp khái niệm các mặt hàng thực phẩm
Với hệ thống phân cấp khái niệm trên ta có 4 mức 0, 1 , 2 , 3 Mức 0 gồm có: Sữa có đường Vinamilk, Sữa không đường Hà Lan, Bánh mì nguyên chất Wonder, Bánh mì bơ Foremost, Mức 1 gồm: Sữa có đường, Sữa không đường, Bánh mì nguyên chất, Bánh mì bơ,… Mức 2 gồm có: Sữa, Bánh mì,… Mức 3 là mức tổng quát nhất (mức trừu tượng cao nhất)
Thực hiện mã hóa các tập mục: Trước tiên, ta qui ước rằng: ký tự “*” đại diện cho phần thông tin chưa xác định của mặt hàng ở mỗi mức Mỗi mặt hàng cụ thể, gồm
có ba mức khái niệm khác nhau là 0, 1, 2 Điều này có nghĩa là chuỗi mã hóa tương ứng có độ dài là 3 ký tự Ví dụ: Mức 3, mặt hàng ở mức này là chưa xác định, nên có chuỗi mã hoá tương ứng là: “***” Tương tự, ở mức 2: Mặt hàng “Sữa”, chuỗi mã hoá tương ứng: “1**”; mặt hàng “Bánh mì”, chuỗi mã hoá là: “2**”; Mức 1: Mặt hàng
“Sữa có đường”, chuỗi mã hoá là: “11*”; mặt hàng “Bánh mì bơ” có chuỗi mã hoá:
“22*”, … Cuối cùng là Mức 0: Mặt hàng “Sữa có đường Vinamilk”, chuỗi mã hoá là: “111”; mặt hàng “Bánh mì bơ Foremost”, có chuỗi mã hóa là: “221”,…
Các tập mục được mã hóa theo các số tùy ý, sao cho các tập mục khác nhau thì chuỗi mã hóa phải khác nhau
Trang 38Với dữ liệu và cách mã hóa như trên, ta có các bảng mã hóa sau:
Bảng 2.2 Bảng mã hóa các mặt hàng thực phẩm Các giao dịch Danh sách các mặt hàng đã mã hóa
111 Sữa có đường Vinamilk
121 Sữa không đường Hà Lan
211 Bánh mì nguyên chất Wonder
221 Bánh mì Bơ Foremost
311 Cookies Trà đen Nestle
Trang 39321 Cookies Trà xanh Liton
411 Nước ép Táo đỏ Delicious
421 Nước ép Cam Valencia
511 Nước ngọt Coca Cola
521 Nước ngọt Prigat Pepsi
Thực hiện thuật toán MLBL ở mức 2, với s = 3.0:
Chuyển đổi hệ thống cơ sở dữ liệu D vào ma trận Boolean A6*5:
Hình 2.2 Ma trận 1-Itemset ở mức 2 Tính độ hỗ trợ của mỗi tập 1-Itemset:
đó ma trận Boolean A6*4 được sinh ra như sau:
Hình 2.3 Ma trận 1-Itemset ở mức 2 Thực hiện phép toán AND để tạo ra các tập 2-Itemset ứng cử ở mức 2 Tập 2-Itemset được sinh ra là: {1**, 2**}; {1**, 3**}; {1**, 4**}; {2**, 3**}; {2**, 4**}; {3**, 4**} Ma trận boolean bây giờ là A6*6 như sau:
Trang 40Hình 2.4 Ma trận 2-Itemset phổ biến ở mức 2 Tính độ hỗ trợ của mỗi tập 2-Itemset:
Độ hỗ trợ của {1**, 2**, 3**} là: 3
Độ hỗ trợ của {1**, 2**, 4**} là: 3
Độ hỗ trợ của {1**, 3**, 4**} là: 3
Độ hỗ trợ của {2**, 3**, 4**} là: 3
Tất cả các tập 3-Itemset ở trên đều là tập mục phổ biến vì có độ hỗ trợ lớn hơn
s Tiếp theo, thực hiện thuật toán MLBL ở mức 1 với s = 2 Từ các tập 3-Itemset phổ biến ở trên, ta có các tập 1-Itemset ở mức 1 là: {11*}, {12*}, {21*}, {22*}, {31*}, {32*}, {41*}, {42*}
Từ đó, ta có ma trận boolean A6*8 như sau: