Tiếp theo, tác giả đề xuất thuật toán dựa trên giải thuật tối ưu đàn kiến giải một số bài toán vị trí cơ sở hiện nay và so sánh kết quả thu được với một số công trình đã được công bố gần
Trang 1THÀNH PHỐ HỒ CHÍ MINH
BỘ GIÁO DỤC VÀ ĐÀO TẠO
TRƯỜNG ĐẠI HỌC SƯ PHẠM KỸ THUẬT
TÌM HIỂU THUẬT TOÁN PHÂN LỚP DỰA TRÊN KHAI PHÁ LUẬT KẾT HỢP
Trang 2Tp Hồ Chí Minh, tháng 05 năm 2021
HỒ NHẬTTÂN
BỘ GIÁO DỤC VÀ ĐÀO TẠO
TRƯỜNG ĐẠI HỌC SƯ PHẠM KỸ THUẬT
THÀNH PHỐ HỒ CHÍ MINH
LUẬN VĂN THẠC SĨ
TÌM HIỂU THUẬT TOÁN PHÂN LỚP DỰA TRÊN KHAI PHÁ LUẬT KẾT HỢP SỬ DỤNG THUẬT TOÁN ANT COLONY OPTIMIZATION (ACO)
Trang 3BỘ GIÁO DỤC VÀ ĐÀO TẠO
TRƯỜNG ĐẠI HỌC SƯ PHẠM KỸ THUẬT
THÀNH PHỐ HỒ CHÍ MINH
LUẬN VĂN THẠC SĨ
TÌM HIỂU THUẬT TOÁN PHÂN LỚP DỰA TRÊN KHAI PHÁ LUẬT KẾT HỢP SỬ DỤNG THUẬT TOÁN ANT COLONY OPTIMIZATION (ACO)
NGÀNH: KHOA HỌC MÁY TÍNH
MÃ SỐ: 8480101
HỌ VÀ TÊN HỌC VIÊN: HỒ NHẬT TÂN
GIẢNG VIÊN HƯỚNG DẪN: TS NGUYỄN THÀNH SƠN
Tp Hồ Chí Minh, tháng 05 năm 2021
Trang 4i
Trang 5ii
Trang 6iii
Trang 7iv
Trang 8v
Trang 9vi
Trang 10vii
Trang 11viii
Trang 12ix
LÝ LỊCH KHOA HỌC
(Dùng cho nghiên cứu sinh & học viên cao học)
I LÝ LỊCH SƠ LƯỢC:
Ngày, tháng, năm sinh: 26/09/1995 Nơi sinh:
Chức vụ, đơn vị công tác trước khi học tập, nghiên cứu:
Lập trình viên tại công ty TNHH Bản Viên
Chỗ ở riêng hoặc địa chỉ liên lạc: 36/31, đường số 5, khu phố 5, phường Linh Chiểu, quận Thủ Đức, Thành Phố Hồ Chí Minh
Fax: E-mail: nhattan260995@gmal.com
II QUÁ TRÌNH ĐÀO TẠO:
1 Trung học chuyên nghiệp:
Nơi học (trường, thành phố):
Ngành học:
2 Đại học:
Hệ đào tạo: Đại học chính quy Thời gian đào tạo từ 07/2013 đến 07/ 2017
Nơi học (trường, thành phố): trường Đại học Sư Phạm Kỹ Thuật Thành phố Hồ Chí Minh
Ngành học: Kỹ thuật máy tính
Tên đồ án, luận án hoặc môn thi tốt nghiệp: Thiết kế mô hình vườn thông minh
Ngày & nơi bảo vệ đồ án, luận án hoặc thi tốt nghiệp: ngày 20/07/2017 tại trường Đại học Sư Phạm Kỹ Thuật Thành phố Hồ Chí Minh
Người hướng dẫn: Thạc sĩ Huỳnh Hoàng Hà
3 Thạc sĩ:
Hệ đào tạo: Thạc Sĩ Thời gian đào tạo từ: 10/2018 đến 10/2020
Nơi học (trường, thành phố): Trường Đại học Sư Phạm Kỹ Thuật Thành phố Hồ Chí Minh
Ngành học: Khoa học Máy Tính
Trang 13Tại (trường, viện, nước):
Tên luận án:
Người hướng dẫn:
Ngày & nơi bảo vệ:
5 Trình độ ngoại ngữ (biết ngoại ngữ gì, mức độ): 6.0 Ielts và B1
6 Học vị, học hàm, chức vụ kỹ thuật được chính thức cấp; số bằng, ngày & nơi cấp:
III QUÁ TRÌNH CÔNG TÁC CHUYÊN MÔN KỂ TỪ KHI TỐT NGHIỆP ĐẠI HỌC:
01/2017-06/2020 Công ty TNHH phần mềm FPT Lập trình viên
06/2020 – Hiện
tại Công ty TNHH Bản Viên Lập trình viên
IV CÁC CÔNG TRÌNH KHOA HỌC ĐÃ CÔNG BỐ:
Trang 14xi
XÁC NHẬN CỦA CƠ QUAN hoặc ĐỊA PHƯƠNG Ngày tháng năm 20……
(Ký tên, đóng dấu) Người khai ký tên
Trang 15xii
LỜI CẢM ƠN
Em xin bày tỏ lời cảm ơn chân thành tới tập thể các thầy cô giáo trường Đại học
Sư Phạm Kỹ Thuật – Thành phố Hồ Chí Minh và Khoa công nghệ thông tin đã dạy dỗ chúng em trong suốt quá trình học tập chương trình cao học tại trường
Đặc biệt em xin bày tỏ lòng biết ơn sâu sắc tới thầy giáo TS Nguyễn Thành Sơn, Trường Đại học Sư Phạm Kỹ Thuật – Thành phố Hồ Chí Minh đã quan tâm, định hướng
và đưa ra những góp ý, gợi ý, chỉnh sửa quý báu cho em trong quá trình làm luận văn tốt nghiệp
Cuối cùng, em xin chân thành cảm ơn các bạn bè đồng nghiệp, gia đình và người thân đã quan tâm, giúp đỡ và chia sẻ với em trong suốt quá trình làm luận văn tốt nghiệp
Em xin chân thành cảm ơn!
TP Hồ Chí Minh, tháng 10 năm 2020
Học viên
Trang 16xiii
LỜI CAM ĐOAN
Tôi xin cam đoan luận văn này của tự bản thân tôi tìm hiểu, nghiên cứu dưới sự hướng dẫn của TS Nguyễn Thành Sơn Các chương trình thực nghiệm do chính bản thân tôi lập trình, các kết quả là hoàn toàn trung thực Các tài liệu tham khảo được trích dẫn và chú thích đầy đủ
TÁC GIẢ LUẬN VĂN
Hồ Nhật Tân
Trang 17xiv
LÝ LỊCH KHOA HỌC
I LÝ LỊCH SƠ LƯỢC
Họ & tên: Hồ Nhật Tân Giới tính: Nam
Ngày, tháng, năm sinh: 26/09/1995 Nơi sinh: Thừa Thiên Huế
Quê quán: Thừa Thiên Huế Dân tộc: Kinh
Chỗ ở riêng hoặc địa chỉ liên lạc: 36/31, đường số 5, Khu phố 5, phường Linh Chiểu, quận Thủ Đức, Tp Hồ Chí Minh
Điện thoại cơ quan: Điện thoại: 0963 203 213
II QUÁ TRÌNH ĐÀO TẠO
Đại học:
Hệ đào tạo: Đại Học Chính quy Thời gian đào tạo từ 09/2013 đến 09/2017
Nơi học (trường, thành phố): Trường Đại học Sư Phạm Kỹ Thuật, Tp Hồ Chí Minh Ngành học: Công nghệ Kỹ thuật Máy Tính
Hệ đào tạo: Chính quy Thời gian đào tạo 09/2013 đến 09/2017
III QUÁ TRÌNH CÔNG TÁC CHUYÊN MÔN KỂ TỪ KHI TỐT NGHIỆP ĐẠI HỌC:
đảm nhiệm
12/2016-đến nay Công ty phần mềm FPT – Khu công nghệ cao,
Trang 18xv
MỤC LỤC
MỤC LỤC xiv
DANH SÁCH KÍ HIỆU, TỪ VIẾT TẮT xviii
DANH MỤC BẢNG BIỂU xix
DANH MỤC HÌNH ẢNH xxi
MỞ ĐẦU 1
1 Giới thiệu 1
2 Mục tiêu, đối tượng, phạm vi nghiên cứu 1
3 Nhiệm vụ và hướng tiếp cận 2
4 Kết quả đạt được 2
5 Cấu trúc luận văn 3
CHƯƠNG 1: TỔNG QUAN VỀ KHAI PHÁ LUẬT KẾT HỢP 4
1.1 Giới thiệu về khai phá luật kết hợp 4
1.2 Định nghĩa luật kết hợp 4
1.3 Các khái niệm về luật kết hợp 6
1.3.1 Độ hỗ trợ (Support) 7
1.3.2 Độ tin cậy (Confident) 8
1.3.3 Tập mục phổ biến (Frequent itemset) 8
1.4 Các công trình nghiên cứu 9
CHƯƠNG 2: PHÂN LỚP DỰA TRÊN LUẬT KẾT HỢP 14
2.1 Giới thiệu chung 14
2.2 Luật phân lớp 15
2.3 Các khái niệm cơ bản trong bài toán phân lớp dựa trên luật kết hợp 16
2.4 Các công trình liên quan 17
2.4.1 Thuật toán CMAR (classification based on multiple association rules) 17
2.4.2 Thuật toán PRM (Predictive Rule Mining) 18
2.4.3 Thuật toán CPAR 19
2.4.4 Thuật toán FCBA : Fast Classification Based on Association Rules Algorithm 20
2.4.5 Phân loại dữ liệu dựa trên chọn lọc tính năng 21
2.4.6 CBIR: Phân lớp dựa trên luật kết hợp và các cách tiếp cận trong Datamining 21
Trang 19xvi
2.4.7 MISFP-Growth:Mô hình khai thác và hỗ trợ nhiều mặt hàng 22
CHƯƠNG 3: PHÂN LỚP DỰA TRÊN LUẬT KẾT HỢP SỬ DỤNG GIẢI THUẬT ĐÀN KIẾN (ACO) 23
3.1 Kiến thức từ thực tế đến nhân tạo 23
3.1.1 Kiến thật 23
3.1.2 Kiến nhân tạo 25
3.2 Mô tả thuật toán ACO tổng quát 26
3.3 Các công trình liên quan đến giải thuật đàn kiến 30
3.3.1 Hệ Kiến (AS) 31
3.3.2 Hệ đàn kiến (ACS) 34
3.3.3 Hệ kiến MIN-MAX 37
3.4 Một số vấn đề khác khi áp dụng ACO 40
3.4.1 Đặc tính hội tụ 40
3.4.2 Thực hiện song song 40
3.4.3 ACO kết hợp với tìm kiếm cục bộ 42
3.5 Phân lớp dựa trên luật kết hợp sử dụng giải thuật đàn kiến Ant-system 43
3.5.1 Tìm luật phân lớp 43
3.5.2 Phân lớp (classification): 44
3.6 Phân lớp dựa trên luật kết hợp sử dụng giải thuật lai ghép ACO-AC 45
3.6.1 Tìm luật phân lớp 45
3.6.2 Phân lớp (classification): 53
3.6.3 Nhận xét thuật toán ACO-AC 54
3.7 Phân lớp dựa trên luật kết hợp sử dụng giải thuật ACO cải tiến 55
3.8 Cách tiếp cận chung của các giải thuật khai phá luật kết hợp 59
3.9 Đánh giá độ chính xác của luật 59
CHƯƠNG 4: ĐÁNH GIÁ THỰC NGHIỆM 64
4.1 Môi trường cài đặt chương trình thực nghiệm 64
4.2 Mô tả dữ liệu thực nghiệm 65
4.3 Tiêu chí đánh giá 66
4.4 Giao diện chương trình thực nghiệm 66
4.5 Các trường hợp thực nghiệm và đánh giá kết quả 70
CHƯƠNG 5: KẾT LUẬN VÀ HƯỚNG PHÁT TRIỂN 81
Trang 20xvii
5.1 Kết luận 81
5.2 Hạn chế 82
5.3 Hướng phát triển 82
TÀI LIỆU THAM KHẢO 83
Trang 21xviii
DANH SÁCH KÍ HIỆU, TỪ VIẾT TẮT
Viết tắt Viết đầy đủ
ACO Ant Colony Optimization
(Tối ưu hóa đàn kiến) ACS Ant Colony System
(Hệ kiến ACS)
AS Ant System
(Hệ kiến AS) IEM Iterative Exact Method
MLAS Multi-level Ant System
(Hệ kiến đa mức MLAS)
(Hệ kiến MMAS) PSO Particle Swarm Optimization
(Tối ưu hóa bầy đàn) SMMAS Smooth-Max Min Ant System
(Hệ kiến MMAS trơn)
VNS Variable Neighborhood Search
Trang 22xix
DANH MỤC BẢNG BIỂU
Bảng 1 1 Dữ liệu mua hàng ở siêu thị 6Bảng 1 2 CSDL với các giao dịch 6 Bảng 2 1 Ví dụ về cơ sở dữ liệu huấn luyện mẫu 16 Bảng 3 1 Thuật toán ACO theo thứ tự thời gian xuất hiện 30Bảng 3 2 Thuật toán ACO - AC 45Bảng 3 3 Business Database Itemsets 57Bảng 3 4 Frequent one itemset 57Bảng 3 5 Initial Global power set 57Bảng 3 6 The statistics of candidate itemsets with frequency 58Bảng 3 7 Prune the candidate itemsets with frequency 58Bảng 3 8 Frequency itemsets 59Bảng 3 9 Ví dụ về độ bao phủ Coverage và độ chính xác Accuracy 60Bảng 3 10 Ví dụ hình thành luật dựa trên tập huấn luyện 61Bảng 3 11 Sử dụng tập luật để xác định lớp cho các mẫu mới 62 Bảng 4 1 Kết quả thời gian thực thi (mili giây) của các thuật tuần tự theo độ hỗ trợ thay đổi
từ 14% đến 18% với bộ dữ liệu đơn hàng 71Bảng 4 2 Kết quả về độ chính xác của các thuật toán trên bộ dự liệu đơn hàng với độ hỗ trợ thay đổi từ 14% đến 18% 72Bảng 4 3 Kết quả về số lượng tài nguyên (mà thuật toán cần sử dụng) với độ hỗ trợ được chọn là 16% với bộ dữ liệu hàng 73Bảng 4 4 Kết quả thực nghiệm về thời gian thực thi (mili giây) của các thuật toán trên bộ dữ liệu mushroom với độ hỗ trợ thay đổi từ 50% đến 80% 73Bảng 4 5 Kết quả về độ chính xác của các thuật toán trên bộ dữ liệu mushroom với độ hỗ trợ 80% 74Bảng 4 6 Kết quả về số lượng tài nguyên (mà thuật toán cần sử dụng) với độ hỗ trợ được chọn là 60% với bộ dữ liệu mushrom 75Bảng 4 7 Kết quả thực nghiệm về thời gian thực thi (mili giây) của các thuật toán trên bộ dữ liệu T10I4D100K với độ hỗ trợ thay đổi từ 5% đến 9% 76Bảng 4 8 Kết quả về độ chính xác của các thuật toán trên bộ dữ liệu T10I4D100K với độ hỗ trợ từ 5% đến 7% 76
Trang 23xx
Bảng 4 9 Kết quả về số lượng tài nguyên (mà thuật toán cần sử dụng) với độ hỗ trợ được chọn là 7% với bộ dữ liệu T10I4D100K 77Bảng 4 10 Kết quả thực nghiệm về thời gian thực thi (mili giây) của các thuật toán trên bộ
dữ liệu BMS_WebView_1 với độ hỗ trợ thay đổi từ 2.5% đến 4.5% 78Bảng 4 11 Kết quả về độ chính xác của các thuật toán trên bộ dữ liệu BMS_WebView_1 với
độ hỗ trợ từ 5% đến 7% 78Bảng 4 12 Kết quả về số lượng tài nguyên (mà thuật toán cần sử dụng) với độ hỗ trợ được chọn là 3.5% với bộ dữ liệu BMS_WebView_1 80
Trang 24xxi
DANH MỤC HÌNH ẢNH
Hình 1 1 Minh họa định nghĩa Item, Itemset, Transaction 5 Hình 3 1 Thí nghiệm trên cây cầu đôi 24Hình 3 2 Thí nghiệm ban đầu chỉ một nhánh dài và sau 30 phút thêm nhánh ngắn 25Hình 3 3 Đặc tả thuật toán ACO 27Hình 3 4 Sơ đồ tìm đường của kiến từ tổ đến nguồn thức ăn 29Hình 3 5 Lựa chọn đỉnh đi tiếp theo khi kiến 30 Hình 4 1 Giao diện dữ liệu đầu vào 67Hình 4 2 Giao diện thực hiện thuật toán ACO (Ant-System) 68Hình 4 3 Giao diện thực hiện thuật toán ACO-AC 69Hình 4 4 Giao diện thực hiện thuật toán ACO cải tiến 70
Trang 25Trong điều kiện và yêu cầu của thương trường, đòi hỏi phải có những phương pháp nhanh, phù hợp, tự động, chính xác và có hiệu quả để lấy được thông tin có giá trị Các tri thức chiết xuất được từ cơ sở dữ liệu sẽ là một nguồn tài liệu hỗ trợ cho lãnh đạo trong việc lên kế hoạch hoạt động hoặc trong việc ra quyết định sản xuất kinh doanh Vì vậy, tính ứng dụng của khai phá luật kết hợp từ cơ sở dữ liệu là một vấn đề đang được quan tâm
Khai phá dữ liệu là giai đoạn quan trọng trong tiến trình khai phá tri thức từ cơ sở dữ liệu, các tri thức này hỗ trợ cho việc ra quyết định trong khoa học và kinh doanh
Luật kết hợp là phương tiện hữu ích để khám phá các mối liên kết trong dữ liệu Khai phá luật kết hợp trong cơ sở dữ liệu Multimedia cho phép tiết kiệm chi phí và làm tăng hiệu suất làm việc
Tối ưu hóa đàn kiến (Ant Colony Optimization - ACO) là cách tiếp cận metaheuristic tương đối mới, do Dorigo giới thiệu vào năm 1991 và liên tục được phát triển cho đến nay Thành công đầu tiên của các thuật toán ACO là giải quyết bài toán Người chào hàng nổi tiếng với số đỉnh lên hơn 2000 với kết quả thu được là tốt, hiệu quả của nó được chứng minh bằng thực nghiệm
Đầu tiên, luận văn đã hệ thống hóa các kiến thức cơ sở về lý thuyết độ phức tạp thuật toán Sau đó, luận văn trình bày các bài toán điển hình trong lớp các bài toán vị trí
cơ sở cùng các nghiên cứu đã được công bố gần đây Tiếp theo, tác giả đề xuất thuật toán dựa trên giải thuật tối ưu đàn kiến giải một số bài toán vị trí cơ sở hiện nay và so sánh kết quả thu được với một số công trình đã được công bố gần đầy nhằm rút ra được các ưu nhược điểm của thuật toán
2 Mục tiêu, đối tượng, phạm vi nghiên cứu
Mục tiêu:
Trang 262
Tìm hiểu tổng quan về khai phá luật kết hợp
Tìm hiểu bài toán phân lớp
Tìm hiểu bài toán liên quan đến phân lớp dựa trên luật kết hợp
Tìm hiểu bài toán Khai Phá Luật Kết Hợp Tương Quan Sử Dụng Thuật Toán Ant Colony Optimization
Đối tượng nghiên cứu
Luật kết hợp
Bài toán phân lớp áp dụng luật kết hợp
Giải thuật đàn kiến (Ant Colony Optimization)
Phạm vi nghiên cứu:
Nghiên cứu sự tương quan thuật toán khai phá luật kết hợp
Áp dụng khai phá luật kết hợp vào phân lớp dữ liệu
3 Nhiệm vụ và hướng tiếp cận
Tìm hiểu thuật toán Ant Colony Optimization
Tìm hiểu về bài toán phân lớp
Tìm hiểu tổng quan về khai phá luật kết hợp
Tìm hiểu bài toán phân lớp dựa vào khai phá luật kết hợp có áp dụng thuật toán Ant Colony Optimization
4 Kết quả đạt được
Hiểu được cơ bản về hệ thống khai phá dữ liệu, phát hiện tri thức, những quy trình căn bản và nắm được các giai đoạn, chức năng của từng quá trình đánh giá Trong mỗi khâu của quá trình khai phá tri thức có những phương pháp được nêu và khái quát có những ưu điểm khác nhau làm cho các hệ thống khai phá được đa dạng, phục vụ ngày càng tốt hơn, đầy đủ hơn các nhu cầu của cuộc sống
Tìm hiểu các thuật toán luật kết hợp tương quan sử dụng thuật toán đường đi ngắn nhất hay còn gọi là thuật toán đàn kiến Có sự đối chiếu, so sánh về hiệu suất, độ chính xác thông qua thực nghiệm để đưa ra nhận xét kết luận về ưu điểm và khuyết điểm của các cải tiến trong thuật toán ra đời sau
Trang 273
5 Cấu trúc luận văn
Cấu trúc chuyên đề được phân thành 5 chương, trong đó:
Chương 1: Giới thiệu tổng quan về khai phá luật kết hợp
Chương 2: Giới thiệu phân lớp dựa trên luật kết hợp
Chương 3: Trình bày chi tiết về thuật toán tối ưu hóa đàn kiến Phân lớp dựa trên luật kết hợp sử dụng giải thuật đàn kiến (ACO)
Chương 4: Phần đánh giá thực nghiệm Trình bày về cài đặt chương trình, thử nghiệm và so sánh kết quả với một số công trình đã công bố gần đây
Chương 5: Kết luận và hướng phát triển
Trang 284
CHƯƠNG 1:
TỔNG QUAN VỀ KHAI PHÁ LUẬT KẾT HỢP
1.1 Giới thiệu về khai phá luật kết hợp
Khai phá luật kết hợp (ARM - Association rules mining) lần đầu được Rakesh Agrawal Agrawal đưa ra vào năm 1993 [1] Khai phá luật kết hợp là một kỹ thuật được sử dụng trong khai phá dữ liệu nhằm tìm ra các phần tử thường xuất hiện cùng nhau trong cơ sở dữ liệu; từ đấy rút ra được các luật và ảnh hưởng của một tập phần tử dẫn đến sự xuất hiện của tập phần
tử khác Ví dụ, sự xuất hiện của A kéo theo sự xuất hiện của B nên ta có luật kết hợp (A→B)
Dạng luật nhờ vậy được gọi là luật kết hợp và quá trình tìm ra được các luật kết hợp được gọi
là khai phá luật kết hợp
Luật kết hợp là dạng luật khá đơn giản nhưng mang lại khá nhiều ý nghĩa Thông tin
mà luật kết hợp cung cấp hỗ trợ đáng kể trong quá trình đưa ra quyết định Các giải thuật khai phá luật kết hợp tìm kiếm các mối liên kết giữa các phần tử dữ liệu, ví dụ như nhóm các món hàng thường được mua kèm với nhau trong siêu thị Những nghiên cứu về luật kết hợp gần đây tập trung xây dựng các thuật toán khai phá luật kết hợp mới, hiệu quả hoặc cải tiến, phát triển các thuật toán hiệu quả hơn từ các thuật toán đã có
Giả định chúng ta có rất nhiều mặt hàng, ví dụ như “bánh mì”, “sữa”,…(coi là tính chất hoặc trường) Khách hàng khi đi siêu thị sẽ bỏ vào giỏ mua hàng của họ một số mặt hàng nào
đó, và chúng ta muốn tìm hiểu các khách hàng thường mua các mặt hàng nào đồng thời, chúng ta không cần biết khách hàng cụ thể là ai Nhà quản lý dùng những thông tin này để điều chỉnh việc nhập hàng về siêu thị, hay đơn giản là để bố trí sắp xếp các mặt hàng gần nhau, hoặc bán các mặt hàng đó theo một gói hàng, giúp cho khắc đỡ mất công tìm kiếm Khai phá luật kết hợp được mô tả như sự tương quan của các sự kiện, những sự kiện xuất hiện thường xuyên một cách đồng thời Nhiệm vụ chính của khai phá luật kết hợp là phát
Trang 29đó X, Y I, thỏa mãn điều kiện XY= Các tập hợp X và Y được gọi là các tập hợp tính
chất (itemset) Tập X gọi là mệnh đề điều kiện hay còn gọi là nguyên nhân (phần bên trái), tập Y gọi là mệnh đề kết quả của luật tương ứng hay còn gọi là hệ quả (phần bên phải)
Transaction ID List of Item_IDs
T100 I1, I2, I5 T200 I2, I4 T300 I2, I3 T400 I1, I2, I4 T500 I1, I3 T600 I2, I3 T700 I1, I3 T800 I1, I2, I3, I5 T900 I1, I2, I3
Hình 1 1 Minh họa định nghĩa Item, Itemset, Transaction
Item (phần tử): Các phần tử, mẫu, đối tượng đang được quan tâm
I = {i1 ,i2 , … ,in} tập tất cả m phần tử có thể có trong tập dữ liệu
Itemset (tập phần tử): Là tập hợp các Items Một itemset có k items được gọi là Itemset
k- Transaction (giao dịch): Lần thực hiện tương tác với hệ thống (ví dụ: giao dịch
“khách hàng mua hàng”) Liên hệ với một tập T gồm các phần tử được giao dịch
Ví dụ: trong siêu thị, ta có tập các mục I = {Sữa, Bánh mì, Bơ, Gạo} và một cơ sở dữ
liệu chứa các mục (tại mỗi giao tác, giá trị 1 là có mục, giá trị 0 là không có) như sau:
Trang 306
Bảng 1 1 Dữ liệu mua hàng ở siêu thị
Transaction ID Sữa Bánh mì Bơ Gạo
1.3 Các khái niệm về luật kết hợp
Để chọn ra các luật có ích từ tập các luật có thể có, ta cần ràng buộc những số đo đảm bảo ý nghĩa Hai ràng buộc được xem là quan trọng nhất, đó là giá trị độ hỗ trợ (Support) [2]
và độ tin cậy (Confident)
Để minh họa cho các khái niệm, ta lấy ví dụ CSDL với các giao dịch sau
Trang 317
Hạng mục (item): mặt hàng A = apple, B = bread, C = cereal, D = donuts, E = eggs
Tập các hạng mục (itemset): danh sách các hạng mục trong giỏ hàng
như {A,B,C,D,E}
Giao dịch (transaction): tập các hạng mục được mua trong một giỏ hàng, lưu kèm
với mã giao dịch (TID)
Mẫu phổ biến (frequent item): là mẫu xuất hiện thường xuyên trong tập dữ liệu
như {A,C} xuất hiện khá nhiều trong các giao dịch
Tập k-hạng mục (k-itemset): ví dụ danh sách sản phẩm (1-itemset) như {A,B,C},
danh sách cặp sản phẩm đi kèm (2-itemset) như {{A,B},{A,C}}, danh sách 3 sản phẩm đi kèm (3-itemset) như {{A,B,C},{A,C,E}}
Tập mục phổ biến (frequent itemset): là tập các hạng mục S (itemset) thỏa mãn độ
phổ biến tối thiểu (minsupp – do người dùng xác định như 40% hoặc xuất hiện 5 lần)
Nếu Supp(S) >= minsupp thì S là tập phổ biến Sẽ được giới thiệu chi tiết hơn ở phần
bên dưới
1.3.1 Độ hỗ trợ (Support)
Độ hỗ trợ (tên tiếng anh là support) của một tập mục X [2] được định nghĩa là tỷ lệ các giao tác có chứa tập mục này trong cơ sở dữ liệu với tổng số các giao tác Là độ đo tần số xuất hiện của các phần tử/tập phần tử
Ví dụ, tập mục {milk, bread, butter} có độ phổ biến là 2/5 = 0.4 hay 40% số giao tác
Định nghĩa 2:
Độ hỗ trợ của một tập hợp X trong cơ sở dữ liệu D là tỷ số giữa các bản ghi
T D có chứa tập X và tổng số bản ghi trong D [2] (hay là phần trăm của các bản ghi trong
D có chứa tập hợp X), ký hiệu là support(X) hay supp(X)
Trang 328
Supp(XY) = |{TD: TYX}|
|D|
Khi chúng ta nói rằng độ hỗ trợ của một luật là 50%, nghĩa là có 50% tổng số giao tác
chứa XY [2] Như vậy, độ hỗ trợ mang ý nghĩa thống kê của luật
1.3.2 Độ tin cậy (Confident)
Định nghĩa 4:
Độ đo đo tần số xuất hiện của một tập phần tử trong điều kiện xuất hiện của một tập phần tử khác
Độ tin cậy (tên tiếng anh là confident) được định nghĩa như sau: Độ tin cậy của luật X
Y là xác suất xuất hiện Y với điều kiện X trong tất cả các giao tác:
Conf(XY) = Supp(XY)/Supp(X)
Độ tin cậy của một luật kết hợp XY là tỷ lệ giữa số lượng các bản ghi của tập hợp chứa
X Y, so với tổng số các bản ghi chứa X
Ta có thêm định nghĩa khác để hiểu rõ hơn về độ tin cậy :
Định nghĩa 5:
Độ tin cậy của một luật kết hợp XY là tỷ lệ giữa số lượng các bản ghi trong D chứa
XY với số bản ghi trong D có chứa tập hợp X Ký hiệu độ tin cậy của một luật là Conf(r)
Ta có 0 ≤ conf(r) ≤ 1
Nhận xét:
Supp(XY)=P(XY) Conf (XY) = P(Y/X)=supp(XY)/supp(X)
Nói rằng độ tin cậy của một luật X=>Y là 90%, có nghĩa là có tới 90% số bản ghi chứa
X chứa luôn cả Y Hay nói theo ngôn ngữ xác suất là: “ Xác suất có điều kiện để sảy ra sự kiện Y đạt 90%” Điều kiện ở đây chính là: “Xảy ra sự kiện X”
1.3.3 Tập mục phổ biến (Frequent itemset)
Định nghĩa 6: Tập hợp X được gọi là tập mục phổ biến (Frenquent itemset) nếu có supp(X) minsup, với minsup là ngưỡng độ hỗ trợ cho trước Kí hiệu các tập này là FI
Định nghĩa 7: Một tập mục X được gọi là đóng (closed) nếu không có tập cha nào của
X có cùng độ hỗ trợ với nó, tức là không tồn tại một tập mục X’ nào mà X’X và t(X) = t(X’)
Trang 339
(với t(X) và t(X’) tương ứng là tập các giao chứa tập mục X và X’) Ký hiệu tập phổ biến đóng là FCI
Khai phá luật kết hợp là công việc phát hiện ra (tìm ra, khám phá, phát hiện) các luật kết
hợp thỏa mãn các ngưỡng độ hỗ trợ () và ngưỡng độ tin cậy () cho trước Bài toán khai phá
luật kết hợp được chia thành hai bài toán nhỏ, hay như người ta thường nói, việc giải bài toán trải qua hai pha:
Pha 1: Tìm tất cả các tập phổ biến (tìm FI) trong CSDL T
Pha 2: Sử dụng tập FI tìm được ở pha 1 để sinh ra các luật tin cậy (interesting rules) Ý tưởng chung là nếu gọi ABCD và AB là các tập mục phổ biến, thì chúng
ta có thể xác định luật AB →CD với tỷ lệ độ tin cậy:
conf =supp(ABCD)
𝑠𝑢𝑝𝑝(𝐴𝐵)
Nếu conf minconf thì luật được giữ lại (và thỏa mãn độ hỗ trợ tối thiểu vì ABCD là
phổ biến)
1.4 Các công trình nghiên cứu
Khai phá luật kết hợp là một kỹ thuật quan trọng trong lĩnh vực khai phá dữ liệu Mục tiêu khai phá là phát hiện những mối liên hệ giữa các giá trị dữ liệu trong các dữ liệu giao dịch Mô hình đầu tiên của bài toán khai phá luật kết hợp là mô hình nhị phân hay còn gọi là
mô hình cơ bản (Agrawal et al., 1993) [1], phân tích dữ liệu giao dịch, phát hiện các mối liên
hệ giữa các tập mục hàng hoá đã bán được tại các siêu thị Từ đó, doanh nghiệp có kế hoạch
bố trí, sắp xếp, kinh doanh hợp lý, đồng thời tổ chức sắp xếp các quầy gần nhau để có doanh thu trong các phiên giao dịch là lớn nhất
Bài toán khai phá luật kết hợp là bài toán khai phá các luật kết hợp có độ hỗ trợ (support) cũng như độ tin cậy (confidence) lớn hơn hoặc bằng một ngưỡng hỗ trợ tối thiểu (minsup) và ngưỡng tin cậy tối thiểu (minconf)
Các thuật toán được đề xuất để khai phá luật kết hợp bao gồm 2 giai đoạn [1] [3]:
(Agrawal et al., 1993, 1994; Han.J et al., 2000)
Giai đoạn 1: Tìm tất cả các tập mục phổ biến từ dữ liệu giao dịch thoả minsupp Giai đoạn 2: Sinh các luật tin cậy kết hợp từ tập mục phổ biến tìm thấy ở giai đoạn thứ nhất
Trang 3410
Giai đoạn thứ nhất chiếm hầu hết thời gian cho quá trình khai phá luật kết hợp Giá trị ngưỡng phổ biến tối thiểu minsup là yếu tố quan trọng trong quá trình rút gọn không gian tìm kiếm cũng như giới hạn các luật sinh trong giai đoạn thứ hai Các thuật toán khai phá luật kết hợp truyền thống chỉ dùng một giá trị ngưỡng hỗ trợ tối thiểu ‘minsupp’ với ngầm định là các mục hàng có cùng tính chất và tần số trong dữ liệu, điều này không thực tế Trong kinh doanh bán lẻ, thông thường các mặt hàng thiết yếu, hàng tiêu dùng và các sản phẩm giá rẻ được mua nhiều hơn, trong khi các mặt hàng xa xỉ và các sản phẩm giá trị cao lại ít được mua Nếu chọn minsupp quá cao thì các mặt hàng được khai phá thông thường có giá thành thấp và mang lại lợi nhuận không cao cho doanh nghiệp Ngược lại, nếu chọn minsupp quá thấp thì các mặt hàng được khai phá quá lớn, điều này làm cho doanh nghiệp khó khăn khi ra quyết định kinh doanh Vì vậy, Liu et al (1999) đã mở rộng bài toán khai phá luật kết hợp với nhiều ngưỡng phổ biến tối thiểu (mỗi mục hàng có một ngưỡng phổ biến tối thiểu riêng) tương ứng mỗi mục hàng khác nhau có tính chất khác nhau và tần số giao dịch khác nhau Nhóm tác giả này
đã đề xuất thuật toán MSApriori – khai phá luật kết hợp khác nhau thỏa ngưỡng phổ biến tối
thiểu khác nhau phụ thuộc vào các mục hàng có trong luật
Một số thuật toán điển hình khai phá tập phổ biến với nhiều ngưỡng phổ biến tối thiểu:
Thuật toán growth++ (Kiran et al., 2011) đã đề xuất cải tiến thuật toán
CFP-growth bằng cách rút gọn không gian tìm kiếm và xây dựng MIStree nhỏ gọn dựa trên tree Thuật toán đề xuất bốn kỹ thuật rút gọn không gian tìm kiếm : ngưỡng phổ biến tối thiểu thấp nhất, ngưỡng phổ biến tối thiểu có điều kiện, tính chất bao đóng có điều kiện và tỉa các nút lá không phổ biến Thuật toán cải thiện hiệu suất đáng kể so với thuật toán CFP-growth
MIS-Các thuật toán trên chưa đáp ứng thực tế, khi cần khai phá luật kết hợp thì người dùng
có thể yêu cầu thực hiện khai phá luật kết hợp thỏa nhiều ngưỡng phổ biến tối thiểu trong nhiều chuỗi thao tác liên tiếp khác nhau (xây dựng lại MIS-tree và rút gọn không gian từ đầu
Thuật toán Apriori
Thuật toán dựa trên một nhận xét khá đơn giản là bất kỳ tập hợp con nào của tập xuất hiện
thường xuyên cũng là tập xuất hiện – thường xuyên Do đó, trong quá trình đi tìm các tập ứng cử viên, nó chỉ cần dùng đến các tập ứng cử viên vừa xuất hiện ở bước ngay trước
đó, chứ không cần dùng đến tất cả các tập ứng cử viên (cho đến thời điểm đó) Nhờ vậy, bộ nhớ được giải phóng đáng kể
Trang 35 Bước 3: Với chủ ý đã nêu (về tính chất tăng dần của các tập hợp – thường xuyên), ta tiến hành tìm các ứng cử viên có 3 phần tử (lấy từ L1) Gọi nó là tập C3 Lưu ý là nếu {A, B, C} muốn là “ứng cử viên” thì các tập 2 phần tử {A, B},{B,C},{C, A } đều phải
là – thường xuyên, tức là chúng đều là phần tử của tập L2 Ta đi “kiểm tra tư cách đại biểu” trong tập C3 và lọc ra được tập các tập hợp – thường xuyên có 3 phần tử Tập hợp này được ký hiệu là L3
Bước 4: Ta tiến hành tìm các ứng cử viên có n phần tử Gọi tập của chúng là tập Cn
và từ đây, lọc ra Ln là tập các tập hợp – thường xuyên có n phần tử
Mã giả thuật toán Apriori
Dữ liệu vào: Tập các giao dịch D, ngưỡng hỗ trợ minsup
Dữ liệu ra: Tập trả lời bao gồm các tập mục phổ biến trên D
Trang 3612
Cốt lõi của thuật toán Apriori là hàm apriori_gen() do Agrawal đề nghị năm 1994 [1]
Hàm này hoạt động theo 2 bước, bước 1- tập hợp Lk-1 tự kết nối (join) với chính nó để tạo
ra tập ứng cử viên Ck Sau đó hàm apriori_gen() loại bỏ các tập hợp có một hợp con (k-1)
phần tử không nằm trong Lk-1 (vì chúng không thể là tập hợp xuất hiện – thường xuyên, theo như nhận xét ban đầu)
Thuật toán Apriori-TID
Thuật toán Apriori-TID là phần mở rộng theo hướng tiếp cận cơ bản của thuật toán Apriori Thay vì dựa vào cơ sở dữ liệu thô thuật toán Apriori- TID biểu diễn bên trong mỗi giao dịch bởi các ứng cử viên hiện hành
Như ta đã thấy, thuật toán Apriori đòi hỏi phải quét toàn bộ cơ sở dữ liệu để tính độ hỗ trợ cho các tập hợp ứng cử viên ở mỗi bước Đây là một sự lãng phí lớn Dựa trên tư tưởng ước đoán và đánh giá độ hỗ trợ, Agrawal đề xuất cải tiến Apriori theo hướng chỉ phải quét cơ
sở dữ liệu lần đầu tiên, sau đó tính độ hỗ trợ cho các tập hợp 1 phần tử Từ bước thứ hai trở
đi, Thuật toán Apriori-TID nhờ lưu trữ song song cả ID của giao dịch và các ứng cử viên, có thể đánh giá, ước lượng độ hỗ trợ mà khỏi phải quét lại toàn bộ cơ sở dữ liệu
Sự khác nhau giữa Apriori và AprioriTID là: cơ sở dữ liệu không được sử dụng để đếm các support sau lần đầu tiên quét qua cơ sở dữ liệu Vì sau lần quét đầu tiên các 1- itemset đã được sinh (các L1), các L1 này được dùng để lọc ra các giao dịch của cơ sở dữ liệu bất kỳ
item nào là không phổ biến và những giao dịch trong C1 chỉ chứa những item không phổ biến Kết quả đó được đưa vào C2 và sử dụng lần quét đó Vì vậy kích thước của C2 là khá nhỏ hơn
so với C1 Sự giống nhau của hai thuật toán này là đều sử dụng bước cắt tỉa trong hàm
Apriori_gen()
Thuật toán FP-Growth
Đề xuất bởi J.Han năm 2000 [3] , là một thuật toánbiểu diễn dữ liệu các giao dịch bằng một cấu trúc dữ liệu gọi là FP-Tree
FP-Growth sử dụng FP-Tree để xác định trực tiếp các tập hạng mục phổ biến (không sinh các tập hạng mục ứng viên từ các tập hạng mục ứng viên trước)
Khi một FP-Tree đã được xây dựng, FP-Growth sử dụng cách tiếp cận chia để trị đệ quy
để khai phá các tập phổ biến Với mỗi giao dịch, FP-Tree xây dựng một đường đi (path) trong cây Hai giao dịch có chứa cùng một số các mục, thì đường đi của chúng sẽ có phần (đoạn)
Trang 38Khác với phân cụm dữ liệu, phân lớp dữ liệu được xem là một quá trình “học có giám sát” Sau khi được xây dựng, mô hình phân lớp có thể được sử dụng để phân lớp các dữ liệu mới Mỗi bản ghi trong tập dữ liệu huấn luyện có một thuộc tính gọi là nhãn lớp (Class label)
để chỉ ra bản ghi đó thuộc lớp nào Mục đích: để dự đoán những nhãn dùng để phân lớp cho các bộ dữ liệu hay mẫu mới
Đầu vào là một tập các mẫu dữ liệu huấn luyện với một nhãn phân lớp cho mỗi mẫu dữ liệu Trong khi đó, đầu ra là một mô hình hay còn gọi là bộ phân lớp dựa trên tập huấn luyện
và những nhãn phân lớp
Trong phân lớp kết hợp, trọng tâm là trình bày các luật kết hợp chỉ có một thuộc tính
cụ thể trong hệ quả Những luật kết hợp được chọn lọc sau khi kiểm tra độ hỗ trợ (support)
và độ tin cậy (confident)
Có các kỹ thuật khai phá dữ liệu khác nhau bao gồm phân lớp giám sát, khai phá luật kết hợp hoặc phân tích thị trường, phân cụm không giám sát, khai phá dữ liệu web và hồi quy tuyến tính Một kỹ thuật liên quan đến khai phá dữ liệu là phân lớp Mục đích của phân lớp
là xây dựng một mô hình dữ liệu đào tạo có thể dự đoán chính xác lớp của các đối tượng chưa được xác định hoặc là những dữ liệu thử nghiệm Đầu vào của quá trình huấn luyện này là một tập hợp các đối tượng cùng với các lớp (dữ liệu đào tạo có giám sát)
Khi một mô hình dự đoán được xây dựng, nó có thể được sử dụng để dự đoán lớp của các đối tượng trong các trường hợp thử nghiệm mà các lớp đó không được biết đến Để đo lường độ chính xác của mô hình, bộ dữ liệu có sẵn được chia thành quá trình huấn luyện và
Trang 39dữ liệu (dataset) Độ support và confidence được tận dụng để tìm ra các luật quan trọng Đưa ra một bộ luật chứa các luật cho mỗi lớp, bằng cách sử dụng các luật k tốt nhất của mỗi lớp để dự đoán, với quy trình sau:
(1) Chọn tất cả các luật thỏa mãn bằng các ví dụ;
(2) Từ các luật được chọn trong bước (1), chọn k luật tốt nhất cho mỗi lớp;
(3) So sánh độ chính xác của các k luật tốt nhất của mỗi lớp và chọn lớp có độ chính xác cao nhất để làm lớp dự đoán
Lý do sử dụng nhiều luật trong dự đoán vì:
Độ chính xác của các luật không thể được ước tính chính xác
Không thể mong đợi rằng bất kỳ luật nào có thể hoàn hảo dự đoán được nhãn lớp của mọi ví dụ
Hơn nữa, sử dụng các k luật tốt nhất thay vì tất cả các luật vì có số lượng luật khác nhau cho các lớp khác nhau và không muốn sử dụng thứ hạng thấp hơn luật trong dự đoán khi đã có đủ luật để đưa ra dự đoán
Một luật kết hợp dựa trên lớp là một luật trong đó hệ quả của luật luôn là nhãn lớp Sự khác biệt chính giữa khai phá luật kết hợp và bài toán phân lớp là kết quả của các luật được tạo ra
Việc tìm kiếm các luật trong bài toán phân lớp hướng tới là lớp, trong khi đó khai phá luật kết hợp không được hướng tới bất kỳ thuộc tính cụ thể
Mục đích của phân lớp là xây dựng một mô hình dữ liệu đào tạo có thể dự đoán chính xác lớp của các đối tượng không nhìn thấy hoặc thử nghiệm
Trang 4016
2.3 Các khái niệm cơ bản trong bài toán phân lớp dựa trên luật kết hợp
Phân lớp dựa trên khai phá luật kết hợp (Classification based on Association Rules (CBA)) là tìm một tập con của các luật kết hợp có trong cơ sở dữ liệu Mỗi luật trong tập con này chứa vế phải là giá trị của lớp Bài toán được phát biểu như sau:
Cho cơ sở dữ liệu D, I là tập tất cả các item trong D Y là tập các nhãn lớp Luật phân lớp kết hợp là một biểu thức có dạng X y trong đó X I và y Y Độ tin cậy của luật là c
nếu c% mẫu trong D chứa X được gán nhãn là lớp y Độ phổ biến của luật là s nếu có s% mẫu
trong D chứa X được gán nhãn là lớp y Trong đó, mứ c đô ̣ mà ta ̣i đó kết quả không thay đổi theo thời gian và đại diện chính xác cho tổng thể được nghiên cứu được gọi là độ tin cậy và nếu kết quả nghiên cứu có thể được sao chép theo phương pháp luận tương tự, khi đó, công
cụ nghiên cứu được xem là đáng tin cậy Và độ hỗ trợ đã được định nghĩa ở chương 1 Các bước thực hiện phân lớp dựa vào luật kết hợp là:
(1) Tìm các tập mục phổ biến dựa vào minsupp và luật kết hợp dựa vào minconf
(2) Phát sinh luật, xây dụng mô hình phân lớp
(3) Tiến hành phân lớp
Cho D là một CSDL huấn luyện với n thuộc tính A1, A2, …, An, mỗi thuộc tính có một tập các giá trị tương ứng C là lớp chứa k giá trị khác nhau C1, C2, …, Ck đại diện các lớp trong D
Chẳng hạn, cho D là CSDL huấn luyện được cho trong bảng 1, với 8 dòng dữ liệu (|D| = 8), trong đó A = {A, B, C}, lớp là thuộc tính quyết định, chẳng hạn Class = {y, n}, là