BỘ CÔNG THƯƠNG TRƯỜNG ĐẠI HỌC CÔNG NGHIỆP TP HCM KHOA CÔNG NGHỆ THÔNG TIN KHÓA LUẬN TỐT NGHIỆP DỰ ĐOÁN HÀNH VI CỦA KHÁCH HÀNG DỰA VÀO TẬP PHỔ BIẾN GVHD TS PHẠM THỊ THIẾT SVTH NGUYỄN VĂN VƯƠNG – 170643.
BỘ CÔNG THƯƠNG TRƯỜNG ĐẠI HỌC CÔNG NGHIỆP TP.HCM KHOA CƠNG NGHỆ THƠNG TIN KHĨA LUẬN TỐT NGHIỆP DỰ ĐỐN HÀNH VI CỦA KHÁCH HÀNG DỰA VÀO TẬP PHỔ BIẾN GVHD: TS PHẠM THỊ THIẾT SVTH: NGUYỄN VĂN VƯƠNG – 17064301 NGUYỄN HỒNG THIÊN CHÍ – 17066151 TP.HỒ CHÍ MINH – 6/2021 INDUSTRIAL UNIVERSITY OF HO CHI MINH CITY FACULTY OF INFORMATION TECHNOLOGY NGUYEN VAN VUONG NGUYEN HOANG THIEN CHI PREDICTING CUSTOMER BEHAVIOR BASED ON THE FREQUENT ITEMSET Major: Computer science Supervisor: Dr Pham Thi Thiet HO CHI MINH CITY, 2021 Dự đoán hành vi khách hàng dựa vào tập phổ biến Khóa luận tốt nghiệp ABSTRACT The IT industry is growing, demanding an increasing amount of information The ability to utilize data mining to detect information rules in huge amounts of data helps to make the right decisions that provide a strong opportunity for business growth Although many data mining algorithms, such as Approri (Agrawal & Srikant, 1994), FP-Growth (Han et al., 2000), are not efficient and consistent with large amounts of data Current data Recently, Node-list (Deng & Wang, 2010) and N-list (Deng, Wang, & Jiang, 2012) are two commonly used data structures, which have proved to be very effective in stating Popular file pool The main problem with these constructs is that both algorithms must encode each node of the PPC-Tree with pre-order and post-order code This is the cause of memory loss inconvenient patch during the common file exploit Therefore, the NegNodeset (Nader ,Behrouz & Mohammad, 2018) structure is more efficient for common file mining The basis of NegNodeset is sets of nodes in a prefix tree NegNodeset employs a novel encoding model for nodes in a prefix tree based on the bitmap representation of sets Node-sets only require pre-order or post-order for each node, which in turn allows Node-sets to save half the memory compared to Node-lists and N-lists The thesis aims to investigate the NegNode-set structure and combined negFin algorithm for apply exploiting customer behavior on the database transaction Nguyễn Văn Vương, Nguyễn Hồng Thiên Chí i Dự đốn hành vi khách hàng dựa vào tập phổ biến Khóa luận tốt nghiệp LỜI CẢM ƠN Được đồng ý Cô hướng dẫn TS Phạm Thị Thiết, nhóm chúng tơi thực đề tài “Dự đoán hành vi khách hàng dựa vào tập phổ biến” Để hồn thành khố luận này, xin chân thành cảm ơn thầy tận tình hướng dẫn, giảng dạy suốt trình học tập, nghiên cứu rèn luyện trường đại học Công nghiệp TP.HCM Xin chân thành cảm ơn Cô hướng dẫn TS Phạm Thị Thiết tận tình, chu đáo hướng dẫn nhóm chúng tơi thực khố luận Mặc dù có nhiều cố gắng để thực đề tài cách hoàn chỉnh Song buổi đầu làm quen, hạn chế kiến thức kinh nghiệm nên tránh khỏi thiếu sót định mà thân chưa thấy Chúng mong góp ý q Thầy, Cơ để khố luận hồn chỉnh Chúng tơi xin chân thành cảm ơn Nguyễn Văn Vương, Nguyễn Hồng Thiên Chí ii Dự đốn hành vi khách hàng dựa vào tập phổ biến Khóa luận tốt nghiệp NHẬN XÉT VÀ ĐÁNH GIÁ CỦA GIÁO VIÊN HƯỚNG DẪN ………………………………………………………………………………… ………………………………………………………………………………… ………………………………………………………………………………… ………………………………………………………………………………… ………………………………………………………………………………… ………………………………………………………………………………… ………………………………………………………………………………… ………………………………………………………………………………… ………………………………………………………………………………… ………………………………………………………………………………… ………………………………………………………………………………… ………………………………………………………………………………… ………………………………………………………………………………… ………………………………………………………………………………… ………………………………………………………………………………… ………………………………………………………………………………… ………………………………………………………………………………… ………………………………………………………………………………… …………………………… TP Hồ Chí Minh, ngày… tháng… năm 2021 Giáo viên hướng dẫn Nguyễn Văn Vương, Nguyễn Hoàng Thiên Chí iii Dự đốn hành vi khách hàng dựa vào tập phổ biến Khóa luận tốt nghiệp ĐÁNH GIÁ VÀ NHẬN XÉT CỦA GIÁ VIÊN PHẢN BIỆN ………………………………………………………………………………… ………………………………………………………………………………… ………………………………………………………………………………… ………………………………………………………………………………… ………………………………………………………………………………… ………………………………………………………………………………… ………………………………………………………………………………… ………………………………………………………………………………… ………………………………………………………………………………… ………………………………………………………………………………… ………………………………………………………………………………… ………………………………………………………………………………… ………………………………………………………………………………… ………………………………………………………………………………… ………………………………………………………………………………… ………………………………………………………………………………… ………………………………………………………………………………… ………………………………………………………………………………… …………………………… TP Hồ Chí Minh, ngày… tháng… năm 2021 Giáo viên phản biện Nguyễn Văn Vương, Nguyễn Hồng Thiên Chí iv Dự đoán hành vi khách hàng dựa vào tập phổ biến Khóa luận tốt nghiệp ĐÁNH GIÁ VÀ NHẬN XÉT CỦA GIÁO VIÊN PHẢN BIỆN ………………………………………………………………………………… ………………………………………………………………………………… ………………………………………………………………………………… ………………………………………………………………………………… ………………………………………………………………………………… ………………………………………………………………………………… ………………………………………………………………………………… ………………………………………………………………………………… ………………………………………………………………………………… ………………………………………………………………………………… ………………………………………………………………………………… ………………………………………………………………………………… ………………………………………………………………………………… ………………………………………………………………………………… ………………………………………………………………………………… ………………………………………………………………………………… ………………………………………………………………………………… ………………………………………………………………………………… ………………………………………………………………………………… …………………………… TP Hồ Chí Minh, ngày… tháng… năm 2021 Giáo viên phản biện Nguyễn Văn Vương, Nguyễn Hồng Thiên Chí v Dự đốn hành vi khách hàng dựa vào tập phổ biến Khóa luận tốt nghiệp Mục lục CHƯƠNG 1: TỔNG QUAN 1.1 Giới thiệu khai thác liệu 1.2 Mục tiêu nghiên cứu 1.3 Nội dung nghiên cứu 1.4 Đối tượng nghiên cứu .2 1.5 Phương pháp nghiên cứu CHƯƠNG 2: TỔNG QUAN VỀ KHAI THÁC DỮ LIỆU Giới thiệu sơ lược khai thác liệu .5 2.1 2.1.1 Khai thác luật kết hợp 2.1.2 Khai thác tập phổ biến Các khái niệm sở 2.2 2.3 Các thuật toán khai thác tập phổ biến 2.3.1 Thuật toán Apriori 2.3.2 Thuật toán FP-Growth 10 CHƯƠNG 3: THUẬT TOÁN NEGFIN ĐỂ KHAI THÁC CÁC TẬP PHỔ BIẾN 13 3.1 Giới thiệu 13 3.2 Các định nghĩa 13 3.2.1 Cấu trúc liệu 13 3.2.2 Cấu trúc BMC-tree .14 3.2.3 Cấu trúc Node-set .23 3.2.4 Cấu trúc liệt kê 30 3.2.5 Thuật toán negFIN .33 CHƯƠNG 4: XÂY DỰNG ỨNG DỤNG VÀ KẾT QUẢ THỰC NGHIỆM .50 4.1 Môi trường xây dựng ứng dụng 50 4.2 Cơ sở liệu thực nghiệm .50 4.2.1 Tiền xử lý liệu .50 4.2.2 Định dạng liệu .52 4.2 Giao diện chương trình 54 CHƯƠNG 5: KẾT LUẬN VÀ HƯỚNG PHÁT TRIỂN 56 5.1 Kết luận 56 5.2 Hướng phát triển .56 Nguyễn Văn Vương, Nguyễn Hồng Thiên Chí vi Dự đốn hành vi khách hàng dựa vào tập phổ biến Khóa luận tốt nghiệp DANH MỤC CÁC BẢNG Bảng 2.1- CSDL giao dịch Bảng 2.2-Bảng thể độ hỗ trợ phần tử 1-itemset Bảng 3.1-Minh họa liệu biển diễn ma trận bit 14 Bảng 3.2-Thể L1 index item tập phổ biến ví dụ 24 Bảng 3.3-Thể bit gán cho item 25 Bảng 3.4- Bảng thể Nodeset độ hỗ trợ 1-itemset từ L1 38 Bảng 3.5- Bảng thể level, item-name, itemset Support 1-itemset từ L1 38 Bảng 4.1-Bảng liệu Sales.SalesOrderDetail 50 Bảng 4.2-Bảng liệu Producttion.Product 51 Bảng 4.3-Bảng thể liệu từ câu truy vấn 51 Bảng 4.4-Bảng thể liệu chuỗi sản phẩm 52 Bảng 4.5-Bảng liệu định dạng 52 Nguyễn Văn Vương, Nguyễn Hồng Thiên Chí vii Dự đốn hành vi khách hàng dựa vào tập phổ biến Khóa luận tốt nghiệp DANH MỤC CÁC HÌNH Hình 2.1-Thuật tốn Apriori Hình 2.4- Thuật tốn FP-growth 11 Hình 3.1-Thuật tốn BMC-tree 15 Hình 3.2-BMC-tree lấy liệu từ bảng 2.1 23 Hình 3.3-Thuật toán xây dựng liệt kê 31 Hình 3.4-Cây liệt kê xây dựng từ liệu bảng 2.1 32 Hình 3.5-Thuật tốn negFIN 33 Hình 3.6-Thuật tốn Constructing Frequent Itemset tree 37 Hình 3.7-Constructing Frequent Itemset tree xây dựng từ liệu bảng 2.1 49 Hình 4.1-Giao diện chương trình 54 Hình 4.2-Giao diện kết thực nghiệm với Minsup, Minconfidence chọn sản phẩm dự đoán 55 Nguyễn Văn Vương, Nguyễn Hồng Thiên Chí viii Dự đoán hành vi khách hàng dựa vào tập phổ biến Khóa luận tốt nghiệp ▪ Thêm childb vào d.children – list Kết thúc vòng lặp với i = b Duyệt phần tử - o Với i = a: - Khởi tạo R = iP với i = a P = d ➔ R = ad R.NegNodeset = ∅; - Duyệt qua phần tử có Nodeset(b) vịng lặp (2) ▪ Kiểm tra bit vị trị e ni dựa vào định nghĩa ▪ Nếu bit có giá trị thì: • Thêm ni vào NegNodeset R, với điều kiện bit a ni có giá trị nên R.NegNodeset ={(01011, 1).} - Kết thúc vòng lặp (2) - Khởi tạo R’.support = ∑𝑛𝑖∈ NegNodeset (𝑅) ➔ R’.support = - Khởi tạo R.support = P.support – R’.support = 3-1=2 - Vì R.support = P.support (2 ≠ 3) - Vì R.support ≥ minsup (2 ≥ 2): Khởi tạo childa chứa thông tin sau: ▪ childa.level = ▪ childa item − name = a ▪ childa itemset = da ▪ Thêm childa vào c.children – list - Kết thúc vòng lặp (1) Ta thông tin sau: ▪ c.childrent-list = {childb, childa } ▪ c.equivalent_items = {∅} - Gọi SS tập tập N.equivalent_items ➔ SS = ∅ - Gọi PSet = PSet ← {A|A = {N.item − name} ∪ A´, A´ ∈ SS}; với N.itemname = {d};SS = ∅; ➔ PSet = d - Vì FISparent rỗng nên: ▪ FISN = PSet = {d} - Gọi F tập phổ biến :F += FISN = {d} (2) - Vì d.childrent-list ≠ ∅ nên: Nguyễn Văn Vương, Nguyễn Hoàng Thiên Chí 43 Dự đốn hành vi khách hàng dựa vào tập phổ biến Khóa luận tốt nghiệp ▪ Duyệt phần tử có d.childrent-list thơng qua hàm constructing_frequent_itemset_tree (childj, d) (vòng lặp 4) o Với j = b : - P = b.itemset = db - Khởi tạo b.childrent-list = ∅ b.childrent-list = ∅ - Duyệt qua item i có L1 mà độ hỗ trợ (support) item i lớn độ hỗ trợ a Gọi I tập hợp item i đó, I=[a] - R = abd; R.NegNodeSet = ∅ - jX = abd ➔ x =bd ➔ Q= ad - Tính chất 7: NNS(abd) =NNS(ad) = {(01011, 1)} - Duyệt qua phần tử có NegNodeset(ad) vịng lặp (3) ▪ Kiểm tra bit vị trị b ni dựa vào định nghĩa ▪ Nếu bit có giá trị thì: • Thêm ni vào NegNodeset R, với điều kiện bit b ni có giá trị nên R.NegNodeset ={(01011, 1)} - Kết thúc vòng lặp (3) - Khởi tạo R’.support = ∑𝑛𝑖∈ NegNodeset (𝑅) ➔ R’.support = - Khởi tạo R.support = P.support – R’.support = 2-1=1 - Vì R.support ≠ P.support (1 ≠ ) R.support < minsup (1 < 2) ▪ Kết thúc vòng lặp với j = b - Gọi SS tập tập a.equivalent_items ➔ SS ={∅} - Khởi tạo PSet = {b} - Vì FISparent ≠ ∅ nên: ▪ 𝐹𝐼𝑆𝑁 = {𝑃′ ∣ 𝑃′ = 𝑃1 ∪𝑃2 , 𝑃1 ∈ PSet ∧ 𝑃2 ∈ 𝐹𝐼𝑆parent } = {db} ▪ Gọi F tập phổ biến: F += FISN = {db} (3) ▪ Vì b.childrent-list = ∅ Kết thúc (vịng lặp 4) Duyệt Nguyễn Văn Vương, Nguyễn Hồng Thiên Chí 44 Dự đốn hành vi khách hàng dựa vào tập phổ biến Khóa luận tốt nghiệp phần tử o Với j = a : - P = a.itemset = da - Khởi tạo a.childrent-list = ∅ a.childrent-list = ∅ - Duyệt qua item i có L1 mà độ hỗ trợ (support) item i lớn độ hỗ trợ a Gọi I tập hợp item i đó, I=[] - Vì I = ∅ kết thúc vịng lặp (1) - Gọi SS tập tập a.equivalent_items ➔ SS ={∅} - Khởi tạo PSet = {b} - Vì FISparent ≠ ∅ nên: ▪ 𝐹𝐼𝑆𝑁 = {𝑃′ ∣ 𝑃′ = 𝑃1 ∪𝑃2 , 𝑃1 ∈ PSet ∧ 𝑃2 ∈ 𝐹𝐼𝑆parent } = {da} ▪ Gọi F tập phổ biến :F += FISN = {da}(4) ▪ Vì a.childrent-list = ∅ Kết thúc (vịng lặp 4) Kết thúc hàm constructing frequent itemset tree(childi, FISparent) - với childi = d Duyệt qua childi • Với childi = c, giả sử N = c qua thuật toán có bước sau: - Khởi tạo P = c.itemset với itemset c c Vì P = c - Khởi tạo a.childrent-list = ∅ a.childrent-list = ∅ - Vì c có level NegNodeset R trích xuất từ Nodeset P( định nghĩa 10) cách duyệt tất ni (N-info) có Nodeset(P) với P = c Dựa vào bảng 3.3 ta Nodeset(c) {(11100,3)} - Duyệt qua item i có L1 mà độ hỗ trợ (support) item i lớn độ hỗ trợ N Gọi I tập hợp item i đó, I=[b,a] o Với i = b: - Khởi tạo R = iP với i = b P = c ➔ R = bc R.NegNodeset = ∅ - Duyệt qua phần tử có Nodeset(c) vòng lặp (2) ▪ Kiểm tra bit vị trị b ni dựa vào định nghĩa Nguyễn Văn Vương, Nguyễn Hồng Thiên Chí 45 Dự đốn hành vi khách hàng dựa vào tập phổ biến Khóa luận tốt nghiệp ▪ Nếu bit có giá trị thì: • Thêm ni vào NegNodeset R, với điều kiện bit b ni có giá trị nên R.NegNodeset = ∅ - Kết thúc vòng lặp (2) - Khởi tạo R’.support = ∑𝑛𝑖∈ NegNodeset (𝑅) ➔ R’.support = - Khởi tạo R.support = P.support – R’.support = 3-0=3 - Vì R.support = P.support (3 = ) nên: ▪ c.equivalent_items = {b} - Duyệt qua phần tử o Với i = a: - Khởi tạo R = iP với i = a P = c cho ➔ R = ac R.NegNodeset = ∅ - Duyệt qua phần tử có Nodeset(c) vịng lặp (2) ▪ Kiểm tra bit vị trị e ni dựa vào định nghĩa ▪ Nếu bit có giá trị thì: • Thêm ni vào NegNodeset R, với điều kiện bit a ni có giá trị nên R.NegNodeset = ∅ - Kết thúc vòng lặp (2): - Khởi tạo R’.support = ∑𝑛𝑖∈ NegNodeset (𝑅) ➔ R’.support = - Khởi tạo R.support = P.support – R’.support = 3-0=3 - Vì R.support = P.support (3 = ) nên: ▪ c.equivalent_items = {a} - Kết thúc vịng lặp (1) Ta thơng tin sau: ▪ c.childrent-list = {∅} ▪ c.equivalent_items = {a,b} - Gọi SS tập tập N.equivalent_items ➔ SS ={b,a} - Gọi PSet = PSet ← {A|A = {N.item − name} ∪ A´, A´ ∈ SS}; với N.item-name = {c};SS = {b,a}; ➔ PSet = {c, cb, ca, cab } - Vì FISparent = ∅ nên: ▪ FISN = PSet = {c, cb, ca, cab } Nguyễn Văn Vương, Nguyễn Hồng Thiên Chí 46 Dự đốn hành vi khách hàng dựa vào tập phổ biến - Khóa luận tốt nghiệp Gọi F tập phổ biến :F += FISN = {c, ca, cb, cab}(5) Vì c.childrent-list = ∅ nên kết thúc hàm constructing frequent itemset - tree(childi, FISparent) với childi = c Duyệt qua childi • Với childi = b, giả sử N = b qua thuật tốn có bước sau: - Khởi tạo P = b.itemset với itemset b b Vì P = b - Khởi tạo b.childrent-list = ∅ b.childrent-list = ∅ - Vì b có level NegNodeset R trích xuất từ Nodeset P cách duyệt tất ni (N-info) có Nodeset(P) với P = b Dựa vào bảng 3.3 ta Nodeset(b) {(01000, 1) (11000, 3)} - Duyệt qua item i có L1 mà độ hỗ trợ (support) item i lớn độ hỗ trợ b Gọi I tập hợp item i đó, I=[a] o Với i = a: - Khởi tạo R = iP với i = a P = b ➔ R = ab R.NegNodeset = ∅; - Duyệt qua phần tử có Nodeset(b) vịng lặp (2) ▪ Kiểm tra bit vị trị b ni dựa vào định nghĩa ▪ Nếu bit có giá trị thì: • Thêm ni vào NegNodeset R,với điều kiện bit a ni có giá trị nên R.NegNodeset = {(01000, 1)} - Kết thúc vòng lặp (2) - Khởi tạo R’.support = ∑𝑛𝑖∈ NegNodeset (𝑅) ➔ R’.support = - Khởi tạo R.support = P.support – R’.support = 4-1=3 - Vì R.support ≠ P.support (3 ≠ ) - Vì R.support ≥ minsup (3 ≥ 2): Khởi tạo childa chứa thông tin sau: ▪ childa.level = ▪ childa item − name = a ▪ childa itemset = ba ▪ Thêm childa vào b.children – list - Vì b.childrent-list ≠ ∅ nên: Nguyễn Văn Vương, Nguyễn Hồng Thiên Chí 47 Dự đốn hành vi khách hàng dựa vào tập phổ biến Khóa luận tốt nghiệp ▪ Duyệt phần tử có b.childrent-list thơng qua hàm constructing_frequent_itemset_tree (childj, b)(vịng lặp 4) ▪ Với j = a : • P = a.itemset = ab • Khởi tạo a.childrent-list = ∅ a.childrent-list = ∅ • Duyệt qua item i có L1 mà độ hỗ trợ (support) item i lớn độ hỗ trợ a Gọi I tập hợp item i đó, I=[] • Vì I = ∅ kết thúc vịng lặp (1) • Gọi SS tập tập a.equivalent_items ➔ SS =∅ • Khởi tạo PSet = {a} • Vì FISparent ≠ ∅ nên: • 𝐹𝐼𝑆𝑁 = {𝑃′ ∣ 𝑃′ = 𝑃1 ∪𝑃2 , 𝑃1 ∈ PSet ∧ 𝑃2 ∈ 𝐹𝐼𝑆parent } = {ba} Gọi F tập phổ biến :F += FISN = {ba}.(6) • Kết thúc vịng lặp (4) • Với childi = a, giả sử N = a qua thuật tốn có bước sau: - Khởi tạo P = a.itemset với itemset a a Vì P = a - Khởi tạo a.childrent-list = ∅ a.childrent-list = ∅ - Duyệt qua item i có L1 mà độ hỗ trợ (support) item i lớn độ hỗ trợ a Gọi I tập hợp item i đó, I=[] - Vì I = ∅ kết thúc vòng lặp (1) - Gọi SS tập tập N.equivalent_items ➔ SS = ∅ - Khởi tạo PSet = {a} - Vì FISparent rỗng nên: ▪ FISN = Pset = {a} - Gọi F tập phổ biến :F += FISN = {a} (7) Nguyễn Văn Vương, Nguyễn Hồng Thiên Chí 48 Dự đốn hành vi khách hàng dựa vào tập phổ biến Khóa luận tốt nghiệp Từ (1) (2) (3) (4) (5) (6) (7).Thu tất tập phổ biến: {e, eb, d, bd, ad, c, ca, cb, cab, b, ab, a} Hình 3.7-Constructing Frequent Itemset tree xây dựng từ liệu bảng 2.1 Nguyễn Văn Vương, Nguyễn Hoàng Thiên Chí 49 Dự đốn hành vi khách hàng dựa vào tập phổ biến Khóa luận tốt nghiệp CHƯƠNG 4: XÂY DỰNG ỨNG DỤNG VÀ KẾT QUẢ THỰC NGHIỆM 4.1 Môi trường xây dựng ứng dụng Việc thực nghiệm tiến hành máy tính có CPU AMD Ryzen 5-4600H, core @ 3GHz (chỉ chạy luồng tạo tập phổ biến) Ứng dụng thực ngôn ngữ Java, sử dụng VSCode, SQL Server Trong sở liệu sử dụng “AdventureWork” 4.2 Cơ sở liệu thực nghiệm Sử dụng sở liệu “AdventureWork” phiên OLTP cung cấp https://github.com/Microsoft/sql-serversamples/releases/download/adventureworks/ AdventureWorks2012.bak Danh sách bảng sở liệu biểu diễn Link Đây sở liệu Microsoft cung cấp để dành cho việc học tập nghiên cứu Nó hệ thống thơng tin công ty ảo sản xuất, buôn bán xe đạp phụ tùng liên quan sử dụng xe đạp như: dè xe đạp leo núi, vá xe, vỏ ruột xe đạp, nón bảo hiểm,…Trong CSDL bao gồm: 504 mặt hàng, 31465 số giao dịch 4.2.1 Tiền xử lý liệu Trong danh sách bảng, luận văn chọn bảng Sales.SalesOrderDetail Producttion.Product để khai thác, bảng mô tả liệu bán hàng online Chọn thuộc tính cần thiết từ bảng Producttion.Product mô tả sau: Bảng 4.1-Bảng liệu Sales.SalesOrderDetail SalesOrderID SalesOrderDetailID ProductID 43660 13 762 43660 14 758 43661 15 745 43661 16 747 43661 17 712 43661 18 715 43661 19 742 Nguyễn Văn Vương, Nguyễn Hồng Thiên Chí 50 Dự đốn hành vi khách hàng dựa vào tập phổ biến Khóa luận tốt nghiệp Bảng 4.2-Bảng liệu Producttion.Product ProductID Name Adjustable Race Bearing Ball BB Ball Bearing Headset Ball Bearings 316 Blade Dùng bảng Sales.SalesOrderDetail kết nối với bảng Producttion.Product để lấy tên sản phẩm (Name) ứng với mã sản phẩm (ProductID) có bảng Sales.SalesOrderDetail tạo câu truy vấn lấy thông tin từ CSDL gồm có thuộc tính: SalesOrderID, ProductID, Name Bảng 4.3-Bảng thể liệu từ câu truy vấn SalesOrderID ProductID Name 43659 711 Sport-100 Helmet, Blue 43659 712 AWC Logo Cap 43659 714 Long-Sleeve Logo Jersey, M 43659 716 Long-Sleeve Logo Jersey, XL 43659 709 Mountain Bike Socks, M 43659 771 Mountain-100 Silver, 38 43659 772 Mountain-100 Silver, 44 43659 773 Mountain-100 Silver, 48 Từ liệu bảng 4.3, luận văn xây dựng thành dạng CSDL giao dịch mặt hàng mà khách hàng mua Các bước thực sau: Nguyễn Văn Vương, Nguyễn Hồng Thiên Chí 51 Dự đốn hành vi khách hàng dựa vào tập phổ biến Khóa luận tốt nghiệp Ở bảng Sales.SaleOrderDetail, hóa đơn mua nhiều sản phẩm Xây dựng CSDL giao dịch cách gom sản phẩm SalesOrderID thành ghi Ví dụ, bảng có SalesOrderID 43659, cần xây dựng danh sách sản phẩm đơn hàng là: Bảng 4.4-Bảng thể liệu chuỗi sản phẩm SalesOrderID ProductList 43659 711,712,714, 716, 709, 773,774,778,776, 777 43660 758, 762 43661 777, 776, 716, 715, 742, 743, 747, 712, 71, 708 43662 764, 770, 730, 754, 725, 762, 768, 753, 756,763,… 43664 772, 775, 714, 716, 777, 771, 773, 778 43665 771,773, 707, 715, 777, 712, 775, 778, 709, 776 43666 764, 753, 732, 756, 768, 766 771, 772, Trong đó, dấu “,” ký hiệu khách hàng mua sản phẩm phiên giao dịch (cùng SalesOrderID bảng Sales.SalesOrderDetail) 4.2.2 Định dạng liệu Khi thực nghiệm chương trình, cần định dạng lại liệu sau: - Ứng với dấu “,” khoảng trắng “ “ Bảng 4.5-Bảng liệu định dạng SalesOrderID Product List 43659 711 712 714 716 709 771 772 773 774 778 776 777 43660 758 762 Nguyễn Văn Vương, Nguyễn Hồng Thiên Chí 52 Dự đốn hành vi khách hàng dựa vào tập phổ biến Khóa luận tốt nghiệp 43661 777 776 716 715 742 743 747 712 71 708 43662 764 770 730 754 725 762 768 753 756 763 43664 772 775 714 716 777 771 773 778 43665 771 773 707 715 777 712 775 778 709 776 43666 764 753 732 756 768 766 Bảng mô tả sở liệu xử lý để áp dụng cho việc thực nghiệm chương trình Bao gồm 21209 giao dịch tương ứng với 21209 hóa đơn mà khách hàng mua từ sản phẩm trở lên số tự nhiên chuỗi đại diện cho tên sản phẩm Nguyễn Văn Vương, Nguyễn Hồng Thiên Chí 53 Dự đoán hành vi khách hàng dựa vào tập phổ biến 4.3 Khóa luận tốt nghiệp Giao diện chương trình Hình 4.1-Giao diện chương trình Các thành phần giao diện: 1- Minsup: Ngưỡng hỗ trợ tối thiểu người dùng nhập vào, đơn vị % phải lớn Đây giá trị để lọc tập phổ biến gồm hay nhiều sản phẩm mà có % số lượng người dùng (tương đương với % giá trị Minsup) mua 2- Minconf: Ngưỡng tin cậy tối thiểu người dùng nhập vào, đơn vị % phải lớn Đây thước đo độ xác luật kết hợp tìm 3- Nút Xuất kết quả: Sau thực yêu cầu trên, người dùng chọn nút để chương trình xử lý 4- Select Product: Chọn sản phẩm để lọc sản phẩm phổ biến sau sau có nhấn nút xuất kết Mục đích để biết thói quen mua hàng người dùng sau mua sản phẩm vừa chọn mua sản phẩm Kết hiển thị bảng với chức xem luật kết hợp gồm cột: Name Confidence (%) Trong đó, Name tên sản phẩm dự đoán mua Confidence tỉ lệ xảy Nguyễn Văn Vương, Nguyễn Hồng Thiên Chí 54 Dự đoán hành vi khách hàng dựa vào tập phổ biến Khóa luận tốt nghiệp Dưới kết người dùng chọn sản phẩm từ nút “Select Product” sau thực yêu cầu: Hình 4.2-Giao diện kết thực nghiệm với Minsup, Minconfidence chọn sản phẩm dự đoán Chọn sản phẩm AWC Logo Cap, sau khách hàng mua sản phẩm “AWC Logo Cap” mua sản phẩm “Water Bottle - 30 oz với độ tin cậy 29% Nguyễn Văn Vương, Nguyễn Hồng Thiên Chí 55 Dự đốn hành vi khách hàng dựa vào tập phổ biến Khóa luận tốt nghiệp CHƯƠNG 5: KẾT LUẬN VÀ HƯỚNG PHÁT TRIỂN 5.1 Kết luận Luận văn tìm hiểu lĩnh vực khai thác liệu sở lý thuyết khai thác luật kết hợp khác thác tập phổ biến Đồng thời cung cấp nhìn chung lĩnh vực khai thác liệu Tiếp theo luận văn tìm hiểu sơ lược thuật toán khai thác tập phổ biến như:Apiori, Fp-Growth cụ thể luận văn sâu vào nghiên cứu, tìm hiểu chi tiết thuật tốn NegFin Sau đó, cài đặt sử dụng thuật tốn NegFin để dự đoán hành vi mua hàng người dùng sở liệu “AdventureWork” Từ kết dự đoán đưa hỗ trợ cho cơng ty, cửa hàng, khách hàng cách tốt 5.2 Hướng phát triển Khai thác tập phổ biến, luật kết hợp giúp khai thác tri thức tiềm ẩn nguồn liệu khổng lồ Hiện tình trạng bùng nổ liệu làm cho khối lượng liệu ngày trở nên đồ sộ, việc khai thác tập phổ biến cho hiệu tiết kiệm thời gian cách tối ưu vấn đề nóng bỏng nhân loại Do đó, luận văn hướng tới việc sử dụng kết luận văn vào sở liệu thực tế doanh nghiệp Nguyễn Văn Vương, Nguyễn Hồng Thiên Chí 56 Dự đoán hành vi khách hàng dựa vào tập phổ biến Khóa luận tốt nghiệp TÀI LIỆU THAM KHẢO Tiếng Việt [1] Bài giảng Khai phá liệu, Đại học Cơng nghiệp TP.Hồ Chí Minh, 2020 Tiếng Anh [2] A Nader, M.-B Behrouz, T Mohammad, negFIN: An efficient algorithm for fast mining frequent itemsets related, Expert Systems With Applications, 105, 129–143, 2018 [3] R.Agrawal, T.Imielinski, and A.Swami (1993), “Mining association rules between sets of items in large databases”, In Pro 1993 ACM-SIGMOD Int Conf.Management of Data, pages 207-216, Washington, D.C [4] J Han, J Pei, Y Yin, Mining frequent patterns without candidate generation, in: Proceeding of the 2000 ACM-SIGMOD International Conference on Management of Data (SIGMOD’00), Dallas, TX, pp 1–12, 2000 [5] Song, W., Yang, B Index-BitTableFI: An improved algorithm for mining frequent itemsets Knowledge-Based Systems 21: 507-513, 2008 [6] Deng, Z., Wang, Z., & Jiang, J., A new algorithm for fast mining frequent itemsets using N-lists Science China Information Sciences, 55(9), 2008–2030, 2012 [7] Z H Deng, S L Lv Fast mining frequent itemsets using Nodesets Expert Systems with Applications, 41(10) (2014): 4505–4512, 2014 Nguyễn Văn Vương, Nguyễn Hoàng Thiên Chí 57 ... Thiên Chí Dự đoán hành vi khách hàng dựa vào tập phổ biến Khóa luận tốt nghiệp mua hàng Dựa vào nhu cầu trên, luận văn lựa chọn thực đề tài ? ?Dự đoán hành vi khách hàng dựa tập phổ biến? ?? 1.2 Mục... từ tập trung vào khai thác Nguyễn Văn Vương, Nguyễn Hoàng Thiên Chí x Dự đốn hành vi khách hàng dựa vào tập phổ biến Khóa luận tốt nghiệp tập phổ biến sinh luật kết hợp để dự đoán hành vi khách. .. 31 Dự đốn hành vi khách hàng dựa vào tập phổ biến Khóa luận tốt nghiệp Hình 3.4-Cây liệt kê xây dựng từ liệu bảng 2.1 Nguyễn Văn Vương, Nguyễn Hoàng Thiên Chí 32 Dự đốn hành vi khách hàng dựa vào