Phần lớn các thuật toán khai phá luật kết hợp gồm có hai giai đoạn: tìm tất cả tập phổ biến, sau đó từ các tập phổ biến này sinh ra các luật kết hợp với độ tin cậy thỏa ngưỡng tin cậy yê
Trang 1TRƯỜNG ĐẠI HỌC BÁCH KHOA
Trang 2CÔNG TRÌNH ĐƯỢC HOÀN THÀNH TẠI TRƯỜNG ĐẠI HỌC BÁCH KHOA – ĐHQG TP HCM
Cán bộ hướng dẫn khoa học: PGS TS Quản Thành Thơ
Cán bộ chấm nhận xét 1: TS Võ Thị Ngọc Châu
Cán bộ chấm nhận xét 2: PGS TS Hồ Bảo Quốc
Luận văn thạc sĩ được bảo vệ tại: Trường đại học Bách Khoa – ĐHQG TP.HCM, ngày 28 tháng 12 năm 2017
Thành phần hội đồng đánh giá luận văn thạc sỹ gồm:
1 PGS.TS Dương Tuấn Anh – Chủ tịch
2 TS Nguyễn Đức Dũng – Thư ký
3 TS Võ Thị Ngọc Châu – Phản biện 1
4 PGS TS Hồ Bảo Quốc – Phản biện 2
5 TS Trần Tuấn Anh – Ủy viên
Xác nhận của chủ tịch hội đồng đánh giá luận văn và Trưởng khoa quản lý chuyên ngành sau khi luận văn đã được sữa chữa (nếu có)
Trang 3TRƯỜNG ĐẠI HỌC BÁCH KHOA Độc lập - Tự do - Hạnh phúc
NHIỆM VỤ LUẬN VĂN THẠC SĨ Họ tên học viên: Đặng Ngọc Vũ MSHV:7140845
Ngày, tháng, năm sinh: 24/09/1990 Nơi sinh: Quảng Ngãi Ngành: Khoa học máy tính Mã số : 60.48.01.01 I TÊN ĐỀ TÀI: Khai phá luật kết hợp với đa ngưỡng hỗ trợ tối thiểu
II NHIỆM VỤ VÀ NỘI DUNG: Đề tài nghiên cứu bài toán khai phá luật kết hợp sử dụng đa ngưỡng hỗ trợ tối thiểu Xây dựng hệ thống, tiến hành thực nghiệm, so sánh và đánh giá kết quả thu được III NGÀY GIAO NHIỆM VỤ : 10/07/2017
IV NGÀY HOÀN THÀNH NHIỆM VỤ:03/12/2017
V CÁN BỘ HƯỚNG DẪN: PGS.TS QUẢN THÀNH THƠ
Tp HCM, ngày 03 tháng 12 năm 2017.
CÁN BỘ HƯỚNG DẪN
(Họ tên và chữ ký)
TRƯỞNG KHOA KH & KTMT (Họ tên và chữ ký)
Trang 4LỜI CẢM ƠN
Tôi xin gửi lời cảm ơn chân thành và sâu sắc nhất đến Thầy PGS.TS Quản Thành Thơ, khoa Khoa Học và Kỹ Thuật Máy Tính - Đại Học Bách Khoa TPHCM Trong suốt quá trình thực hiện đề cương và luận văn cao học, Thầy đã tận tình hướng dẫn và giúp đỡ, tạo mọi điều kiện để tôi có thể hoàn thành tốt luận văn này
Tôi xin gửi lời cảm ơn chân thành đến các Thầy Cô trường Đại Học Bách Khoa TPHCM Các Thầy Cô đã tận tình chỉ dạy, trang bị cho tôi những kiến thức quý báu trong suốt thời gian tôi học cao học tại trường
Tôi xin gửi lời cảm ơn đến gia đình, bạn bè và các đồng nghiệp đã động viên tinh thần, tạo mọi điều kiện thuận lợi giúp tôi hoàn thành luận văn
Tp HCM, ngày 25 tháng 11 năm 2017
Học viên
Đặng Ngọc Vũ
Trang 5TÓM TẮT LUẬN VĂN
Khai phá tri thức cũng như khai phá dữ liệu được ứng dụng rộng rãi trong nhiều lĩnh vực như thương mại, y tế, giáo dục Một trong những kỹ thuật khai phá dữ liệu quan trọng và then chốt trong các lĩnh vực trên là kỹ thuật khai phá luật kết hợp
Phần lớn các thuật toán khai phá luật kết hợp gồm có hai giai đoạn: tìm tất cả tập phổ biến, sau đó từ các tập phổ biến này sinh ra các luật kết hợp với độ tin cậy thỏa ngưỡng tin cậy yêu cầu Nếu đặt ngưỡng hỗ trợ tối thiểu quá cao khi đó có thể sẽ dẫn đến việc bỏ qua các tập phần tử hiếm Để vừa phát hiện các tập phổ biến cũng như các tập phần tử hiếm, giá trị ngưỡng hỗ trợ phải thiết lập rất thấp, khi đó gặp phải một vấn
đề đó là khi đặt ngưỡng hỗ trợ tối thiểu thấp, lúc này trong giai đoạn tìm tất cả các tập phổ biến các tập phổ biến sẽ được sinh ra là khá lớn, điều này làm cho chi phí cho việc tìm kiếm sẽ tăng lên
Trong luận văn này sẽ dựa trên hướng tiếp cận sử dụng đa ngưỡng hỗ trợ tối thiểu trong vấn đề tìm luật kết hợp Luận văn cũng đề xuất hướng xử lý song song hóa trong giai đoạn tìm các tập phổ biến trong việc phát hiện luật kết hợp sử dụng đa ngưỡng hỗ trợ tối thiểu
Trang 6ABSTRACT
Mining knowledge as well as data mining is widely used in many fields such as trade,
health, education etc One of the important data mining techniques which plays a key
role in these fields is association rule mining
Association rule generation is usually split up into two separate steps: a minimum
support threshold is applied to find all frequent itemsets in a database, then a
minimum confidence constraint is applied to these frequent itemsets in order to form
rules If minimum support is set too high, rules that involve rare items will not be
found To find rules that involve both frequent and rare items, minsup has to be set
very low This may cause combinatorial explosion because those frequent items will
be associated with one another in all possible ways, this makes the cost of searching
increased
This thesis bases on the approach of using multiple minimum support thresholds in the
mining for association rules The thesis also proposes a parallelization approach for
finding frequent itemsets in mining association rule using multiple minimum supports
Trang 7LỜI CAM ĐOAN
Tôi cam đoan rằng, ngoại trừ các kết quả tham khảo từ các công trình khác như đã ghi
rõ trong luận văn, các công việc trình bày trong luận văn là do chính tôi thực hiện và chưa có phần nội dung nào của luận văn này được nộp để lấy một bằng cấp ở trường này hoặc trường khác
Tp HCM, ngày 25 tháng 11 năm 2017
Học viên
Đặng Ngọc Vũ
Trang 8MỤC LỤC
CHƯƠNG 1: GIỚI THIỆU 1
1.1 Lý do chọn đề tài 1
1.2 Mục tiêu và giới hạn của đề tài 2
1.3 Cấu trúc luận văn 2
CHƯƠNG 2: KIẾN THỨC NỀN TẢNG 3
2.1 Một số khái niệm cơ bản 3
2.1.1 Phát hiện tri thức và khai phá dữ liệu 3
2.1.2 Các kỹ thuật và hướng tiếp cận chính trong khai phá dữ liệu 3
2.1.3 Phân loại các hệ thống khai phá dữ liệu 4
2.2 Khai phá luật kết hợp 5
2.2.1 Các tính chất của luật kết hợp 7
2.2.2 Một số hướng tiếp cận luật kết hợp 8
2.3 Lập trình song song trên hệ thống đa nhân 9
2.3.1 Xử lý song song 9
2.3.2 Parallel Extensions trong Net Framework 10
CHƯƠNG 3: TỔNG THUẬT CÁC CÔNG TRÌNH LIÊN QUAN 13
3.1 Phát hiện luật kết hợp sử dụng đơn ngưỡng hỗ trợ tối thiểu 13
3.2 Phát hiện luật kết hợp sử dụng đa ngưỡng hỗ trợ tối thiểu 18
CHƯƠNG 4: PHƯƠNG PHÁP GIẢI QUYẾT VẤN ĐỀ 20
4.1 Phương pháp tìm các tập phổ biến sử dụng đa ngưỡng hỗ trợ tối thiểu 20
4.2 Song song hóa trong giai đoạn tìm tập phổ biến 24
4.3 Giai đoạn sinh các luật kết hợp 25
4.3.1 Giải thuật sinh luật kết hợp 25
4.3.2 Tính toán độ tin cậy của luật khi sử dụng đa ngưỡng hỗ trợ tối thiểu 26
CHƯƠNG 5: THỰC NGHIỆM 28
5.1 Thực nghiệm 1: Tìm các tập phổ biến 28
5.1.1 Tập dữ liệu MUSHROOMS 8124 giao dịch 28
5.1.2 Tập dữ liệu C20D10K 10000 giao dịch 31
5.1.3 Tập dữ liệu BMS-POS 515597 giao dịch 35
Trang 9CHƯƠNG 6: KẾT LUẬN 42
6.1 Tổng kết 42
6.2 Hướng phát triển 42
TÀI LIỆU THAM KHẢO………43
BẢNG ĐỐI CHIẾU THUẬT NGỮ ANH VIỆT……….45
Trang 10DANH MỤC HÌNH
Hình 2.1 Minh họa giải thuật tuần tự và song song với sự hỗ trợ của thư viện TPL 10
Hình 3.1 Sinh các tập ứng viên và tập phổ biến với ngưỡng hỗ trợ tối thiểu bằng 2 16
Hình 3.2 Ví dụ cây MIS Tree 19
Hình 5.1 So sánh thời gian thực thi giải thuật trên tập dữ liệu MUSHROOMS với LS = 0.2 30 Hình 5.2 So sánh thời gian thực thi giải thuật trên tập dữ liệu MUSHROOMS với LS = 0.15 30
Hình 5.3 So sánh thời gian thực thi giải thuật trên tập dữ liệu MUSHROOMS với LS = 0.1 31 Hình 5.4 So sánh thời gian thực thi giải thuật trên tập dữ liệu C20D10K với LS = 0.15 33
Hình 5.5 So sánh thời gian thực thi giải thuật trên tập dữ liệu C20D10K với LS = 0.1 34
Hình 5.6 So sánh thời gian thực thi giải thuật trên tập dữ liệu C20D10K với LS = 0.05 34
Hình 5.7 So sánh thời gian thực thi giải thuật trên tập dữ liệu BMS-POS với LS = 0.01 37
Hình 5.8 So sánh thời gian thực thi giải thuật trên tập dữ liệu BMS-POS với LS = 0.006 37
Hình 5.9 So sánh thời gian thực thi giải thuật trên tập dữ liệu BMS-POS với LS = 0.001 38
Trang 11DANH MỤC BẢNG
Bảng 2.1 Ví dụ cơ sở dữ liệu giao dịch 5
Bảng 5.1 Mô tả các tập dữ liệu trong quá trình thực nghiệm hệ thống 28
Bảng 5.2 Số lượng tập phổ biến và thời gian thực thi với tập dữ liệu MUSHROOMS 29
Bảng 5.3 Số lượng tập phổ biến và thời gian thực thi với tập dữ liệu C20D10K 32
Bảng 5.4 Số lượng tập phổ biến và thời gian thực thi với tập dữ liệu BMS-POS 36
Bảng 5.5 Kết quả thực nghiệm với tập dữ liệu MUSHROOMS 39
Bảng 5.6 Kết quả thực nghiệm với tập dữ liệu C20D10K 40
Bảng 5.7 Kết quả thực nghiệm với tập dữ liệu BMS-POS 41
Trang 12CHƯƠNG 1: GIỚI THIỆU
1.1 Lý do chọn đề tài
Hiện nay với sự phát triển như vũ bão của công nghệ thông tin và việc ứng dụng công nghệ thông tin trong nhiều lĩnh vực của đời sống, kinh tế xã hội, trong nhiều năm qua lượng thông tin của nhân loại được lưu trữ trong các hệ thống cơ sở dữ liệu ngày một tăng, sự tích lũy dữ liệu này xảy ra với một tốc độ bùng nổ Lượng dữ liệu khổng lồ này thực sự là một nguồn “tài nguyên” rất giá trị bởi thông tin là yếu tố then chốt trong nhiều lĩnh vực Khai phá dữ liệu (data mining) đã giúp người sử dụng thu được những tri thức hữu ích từ những cơ sở dữ liệu và các kho dữ liệu khổng lồ
Hiện nay lĩnh vực khai phá dữ liệu đã và đang được ứng dụng rộng rãi trong rất nhiều lĩnh vực Trong lĩnh vực khai phá dữ liệu, luật kết hợp (association rule) được dùng để chỉ sự kết hợp hay tương quan giữa các phần tử dữ liệu "điều kiện → hệ quả" giữa các phần tử dữ liệu (chẳng hạn, sự xuất hiện của tập mặt hàng này "kéo theo" sự xuất hiện của tập mặt hàng khác) trong một tập bao gồm nhiều đối tượng
dữ liệu (chẳng hạn, tập các giao dịch mua hàng) Phát hiện luật kết hợp là phát hiện các mối quan hệ đó trong phạm vi của một tập dữ liệu đã cho
Lý thuyết luật kết hợp được Rakesh Agrawal và cộng sự giới thiệu lần đầu tiên vào năm 1993 [1] và đã trở thành một trong những hướng nghiên cứu khai phá dữ liệu quan trọng, đặc biệt trong những năm gần đây Phát hiện luật kết hợp đã được ứng dụng thành công trong nhiều lĩnh vực kinh tế - xã hội khác nhau như thương mại, y tế, sinh học, tài chính-ngân hàng…
Trong các nghiên cứu liên quan đến phát hiện luật kết hợp trong [1, 2, 12, 16] các tác giả với hướng tiếp cận sử dụng một ngưỡng hỗ trợ trong việc phát hiện các luật kết hợp Tuy nhiên việc sử dụng một ngưỡng hỗ trợ dẫn đến vấn đề liên quan đến phần tử hiếm (Rare item problem) [10] Luật kết hợp liên quan đến phần tử hiếm mặc dù tần suất xảy ra thấp nhưng trong nhiều trường hợp chúng lại là các luật rất có giá trị, chẳng hạn như trong công trình nghiên cứu [17] đã chỉ ra luật kết hợp rất có ý nghĩa là luật kết hợp hiếm “ăn chay”→ “bệnh tim mạch” trong cơ sở dữ liệu điều trị bệnh nhân của một bệnh viện tại Pháp
Trang 131.2 Mục tiêu và giới hạn của đề tài
Trong phương pháp phát hiện luật kết hợp sử dụng một ngưỡng hỗ trợ sẽ gặp vấn
đề đó là nếu đặt ngưỡng hỗ trợ tối thiểu nhỏ khi đó các tập phổ biến sẽ được sinh ra khá lớn điều này làm cho chi phí cho việc tìm kiếm sẽ tăng lên Tuy nhiên, nếu đặt ngưỡng hỗ trợ lớn khi đó có thể sẽ dẫn đến việc bỏ qua các tập phần tử hiếm
Đề tài luận văn này tập trung nghiên cứu, xây dựng hệ thống và đánh giá phương pháp khai phá luật kết hợp sử dụng đa ngưỡng hỗ trợ tối thiểu nhằm tìm ra các luật kết hợp liên quan trên tập các tập dữ liệu kiểm nghiệm
1.3 Cấu trúc luận văn
Chương 1, Giới thiệu: giới thiệu tổng quan về đề tài, mục tiêu nghiên cứu và giới hạn của đề tài
Chương 2, Kiến thức nền tảng: trình bày tổng quan các khái niệm cơ bản về khai phá luật kết hợp, lập trình song song, các công trình nghiên cứu liên quan trong vấn đề khai phá luật kết hợp
Chương 3, Tổng thuật các công trình liên quan: khảo sát các công trình nghiên cứu
đã đăng tải liên quan
Chương 4, Phương pháp giải quyết vấn đề: trình bày phương pháp khai phá luật kết hợp sử dụng đa ngưỡng hỗ trợ tối thiểu, hướng tiếp cận song song trong giai đoạn tìm tập phổ biến
Chương 5, Thực nghiệm: chạy thực nghiệm, trình bày các kết quả thực nghiệm, so sánh và đánh giá hệ thống trên các tập dữ liệu khác nhau
Chương 6, Kết luận: đưa ra kết luận và hướng phát triển tiếp theo của đề tài trong tương lai
Trang 14CHƯƠNG 2: KIẾN THỨC NỀN TẢNG
2.1 Một số khái niệm cơ bản
2.1.1 Phát hiện tri thức và khai phá dữ liệu
Quá trình khai phá tri thức thường gồm có các bước chính sau:
Trích chọn dữ liệu (data selection): là bước trích chọn những tập dữ liệu cần được khai phá từ các tập dữ liệu lớn (databases, data warehouses, data repositories) ban đầu theo một số tiêu chí nhất định
Tiền xử lý dữ liệu (data preprocessing): là bước làm sạch dữ liệu (xử lý với dữ liệu không đầy đủ, dữ liệu nhiễu, dữ liệu không nhất quán, v.v.), rút gọn dữ liệu (sử dụng hàm nhóm và tính tổng, các phương pháp nén dữ liệu, sử dụng histograms, lấy mẫu, v.v.), rời rạc hóa dữ liệu (rời rạc hóa dựa vào histograms, dựa vào entropy, dựa vào phân khoảng, v.v.) Sau bước này, dữ liệu sẽ nhất quán, đầy đủ, được rút gọn, và được rời rạc hóa
Biến đổi dữ liệu (data transformation): đây 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 các kỹ thuật khai phá ở bước sau
Khai phá dữ liệu (data mining): đây là bước áp dụng những kỹ thuật khai phá (phần nhiều là các kỹ thuật của machine learning) để khai phá, trích chọn được những mẫu (patterns) thông tin, những mối liên hệ (relationships) đặc biệt trong dữ liệu Đây được xem là bước quan trọng và tốn nhiều thời gian nhất của toàn quá trình KDD
Biểu diễn và đánh giá tri thức (knowledge representation and evaluation): những mẫu thông tin và mối liên hệ trong dữ liệu đã được khai phá ở bước trên được chuyển dạng và biểu diễn ở một dạng gần gũi với người sử dụng như đồ thị, cây, bảng biểu, luật, v.v Đồng thời bước này cũng đánh giá những tri thức khám phá được theo những tiêu chí nhất định
2.1.2 Các kỹ thuật và hướng tiếp cận chính trong khai phá dữ liệu
Các hướng tiếp cận của KPDL có thể được phân chia theo chức năng hay lớp các bài toán khác nhau Sau đây là một số hướng tiếp cận chính:
Trang 15- Phân lớp và dự đoán (classification & prediction): xếp một đối tượng vào một
trong những lớp đã biết trước Ví dụ: phân lớp vùng địa lý theo dữ liệu thời tiết
Hướng tiếp cận này thường sử dụng một số kỹ thuật của machine learning như
cây quyết định (decision tree), mạng nơ ron nhân tạo (neural network), v.v
Phân lớp còn được gọi là học có giám sát (supervised learning)
- Luật kết hợp (association rules): là dạng luật biểu diễn tri thức ở dạng khá đơn
giản Ví dụ: “60 % nam giới vào siêu thị nếu mua bia thì có tới 80% trong số
họ sẽ mua thêm thịt bò khô” Luật kết hợp được ứng dụng nhiều trong lĩnh vực kinh doanh, y học, tin-sinh, tài chính & thị trường chứng khoán, v.v
- Khai phá chuỗi theo thời gian (sequential/temporal patterns): tương tự như
khai phá luật kết hợp nhưng có thêm tính thứ tự và tính thời gian Hướng tiếp cận này được ứng dụng nhiều trong lĩnh vực tài chính và thị trường chứng khoán vì nó có tính dự báo cao
- Phân cụm (clustering/segmentation): xếp các đối tượng theo từng cụm (số lượng cũng như tên của cụm chưa được biết trước Phân cụm còn được gọi là
học không giám sát (unsupervised learning)
2.1.3 Phân loại các hệ thống khai phá dữ liệu
Khai phá dữ liệu là một công nghệ tri thức liên quan đến nhiều lĩnh vực nghiên cứu khác nhau như cơ sở dữ liệu, máy học (machine learning), giải thuật, trực quan hóa (visualization), v.v Có thể phân loại các hệ thống khai phá dữ liệu dựa trên các tiêu chí khác nhau
- Phân loại dựa trên kiểu dữ liệu được khai phá: cơ sở dữ liệu (CSDL) giao dịch (transactional database), CSDL quan hệ (relational database), kho dữ liệu (data warehouse), CSDL hướng đối tượng, CSDL không gian (spatial database), CSDL đa phương tiện (multimedia database), CSDL Text và WWW, v.v
- Phân loại dựa trên dạng tri thức được khám phá: tóm tắt và mô, luật kết hợp, phân lớp (classification), phân cụm, khai phá chuỗi , v.v
- Phân loại dựa trên kỹ thuật được áp dụng: hướng CSDL (database oriented), phân tích trực tuyến (OnLine Analytical Processing – OLAP), machine learning (cây quyết định, mạng nơ ron nhân tạo, k-min, giải thuật di truyền, máy vectơ hỗ trợ - SVM, tập thô, tập mờ, v.v.), trực quan hóa visualization), v.v
Trang 16- Phân loại dựa trên lĩnh vực được áp dụng: kinh doanh bán lẻ, tài chính và thị trường chứng khoán, truyền thông, tin sinh học, y học, ,web mining, v.v
Bảng 2.1 Ví dụ cơ sở dữ liệu giao dịch
Định nghĩa luật kết hợp: Cho tập phần tử I = {I1,I2,…, In} Một luật kết hợp là một phép kéo theo, dạng AB, trong đó: AI, BI, và AB =
Độ hỗ trợ:
Cho tập phần tử A, A I Độ hỗ trợ (support) của tập phần tử A trong CSDL giao dịch D, được ký hiệu là sup(A), là tỷ lệ phần trăm số giao dịch trong CSDL có chứa A trên tổng số các giao dịch trong D:
Trang 17support(XY) = P(XY)
Ta có: 0 ≤ sup(XY) ≤ 1
Luật XY có trong tập giao dịch D với độ hỗ trợ s (support) là tỷ lệ các giao dịch trong D mà có chứa cả X và Y, tức là phép hợp XY, so với tổng số giao dịch trong
D Tỷ lệ này tương đương với xác suất P(XY) Chẳng hạn, độ hỗ trợ s = 1% nghĩa
là có 1% số giao dịch trên tổng số giao dịch trong CSDL thể hiện X và Y cùng có mặt
Độ tin cậy:
Luật kết hợp có dạng X cY , trong đó X, Y là các tập phần tử thỏa mãn điều
kiện X Y =, X được gọi là tiền đề, Y được gọi là kết quả của luật, c là độ tin cậy (confidence) của luật
Luật XY có độ tin cậy c trong tập giao tác D, với c là tỷ lệ các giao dịch trong D chứa X và cũng chứa cả Y, so với tổng số giao dịch có chứa X
Trang 18Độ tin cậy (confidence) của luật kết hợp XY, ký hiệu là conf(XY), là tỷ lệ phần trăm giữa số giao dịch chứa XY và số giao dịch chứa X trong CSDL giao dịch
Khi đó độ tin cậy của luật XY được biểu diễn bằng:
hỗ trợ mỗi X hoặc Y, khi đó luật XYZ có độ hỗ trợ 0%
Tương tự : XY XZ thì không nhất thiết XYZ là đúng
- Tính chất 2: Không tách luật
Nếu XYZ thì XZ và YZ chưa chắc đã xảy ra
Trang 19Ví dụ trường hợp Z có mặt trong một giao dịch chỉ khi cả hai X và Y cũng có mặt, tức là sup(XY) = sup(Z), nếu độ hỗ trợ của X và Y thỏa mãn s(X) > s(XY) và s(Y)
> s(XY) thì hai luật riêng biệt sẽ không đủ độ tin cậy
- Tính chất 3: Các luật kết hợp không có tính bắc cầu
Nếu XY và YZ thì không thể suy ra XZ
2.2.2 Một số hướng tiếp cận luật kết hợp
Luật kết hợp cho đến nay đã được nghiên cứu và phát triển theo nhiều hướng khác nhau Dưới đây là một số hướng chính:
- Luật kết hợp nhị phân (Binary association rule hay Boolean association rule):
là hướng nghiên cứu đầu tiên của luật kết hợp Theo luật này, các phần tử chỉ quan tâm là xuất hiện hay không trong cơ sở dữ liệu giao dịch Thuật toán tiêu biểu nhất của khai phá dạng luật này là thuật toán Apriori [2] và các biến thể của thuật toán này
Ví dụ luật: “Mua bánh mì = ‘yes’ mua đường= ‘yes’ => mua sữa = ‘yes’ mua bơ
= ‘yes’, với độ hỗ trợ 20% và độ tin cậy 80%”
- Luật kết hợp có thuộc tính số và thuộc tính hạng mục (Quantitative and
categorial association rule): các cơ sở dữ liệu thực tế thường có thuộc tính đa dạng như nhị phân, số, mục (categorial) Vì vậy để khai phá luật kết hợp với các cơ sở dữ liệu 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ó [13] Một ví dụ
Trang 20về dạng luật này là: “Tuổi ‘30 39’ Thu nhập ‘42000 48000’=> Mua tivi có độ phân giải cao”
- Luật kết hợp tiếp cận theo hướng tập thô (mining association rule base on
rough set): tìm kiếm luật kết hợp dựa trên lí thuyết tập thô
- Luật kết hợp nhiều mức (multi-level association rules): ngoài các dạng luật
trên, các nhà nghiên cứu còn đề xuất một hướng nghiên cứu nữa về luật kết hợp là luật
kết hợp nhiều mức [7] [15] Luật kết hợp nhiều mức liên quan đến các phần tử, thuộc
tính ở các mức trừu tượng khác nhau, ví dụ như các luật:
Tuổi(X, “30 39”) → Mua(X, “laptop computer”)
ƒ Tuổi(X, “30 39”) → Mua(X, “computer”)
- Luật kết hợp mờ (fuzzy association rule): Với những khó khăn gặp phải khi rời
rạc hóa các thuộc tính số, các nhà nghiên cứu đã đề xuất luật kết hợp mờ nhằm khắc phục những hạn chế trên và chuyển luật kết hợp về một dạng tự nhiên hơn, gần gũi
hơn với người sử dụng [3][4] Một ví dụ về dạng luật này: “Ho khan =
‘yes’ sốt cao đau cơ = ‘yes’ khó thở = ‘yes’ => Bị nhiễm SARS = ‘yes’, với độ
hỗ trợ 4% và độ tin cậy 85%” Trong luật này, điều kiện sốt cao ở vế trái của luật là
một thuộc tính đã được mờ hóa
2.3 Lập trình song song trên hệ thống đa nhân
2.3.1 Xử lý song song
Xử lý song song hay tính toán song song là quá trình xử lý thông tin trong đó nhấn mạnh việc nhiều đơn vị dữ liệu được xử lý đồng thời bởi một hay nhiều bộ xử lý để giải quyết một bài toán Trái ngược với xử lý tuần tự, đòi hỏi phải xử lý các công việc theo thứ tự tuần tự
Có hai kiểu song song đó là:
Song song về dữ liệu (data parallelism): là cơ chế sử dụng nhiều đơn vị xử lý thực hiện cùng một thao tác trên nhiều đơn vị dữ liệu
Song song lệnh (control parallelism): là cơ chế trong đó nhiều thao tác khác nhau tác động lên nhiều đơn vị dữ liệu khác nhau một cách đồng thời
Ngày nay, các bộ vi xử lý đa nhân (multi-core) cho phép nhiều luồng xử lý (thread) ngày càng phổ biến Khi lập trình song song người lập trình tập trung vào mô
Trang 21hệ thống Có rất nhiều mô hình lập trình song song như mô hình dùng bộ nhớ chia sẻ (như Pthreads và OpenMP), mô hình lập trình truyền thông điệp (như Message Passing Interface (MPI)) Những mô hình này cung cấp công cụ mạnh mẽ cho lập trình song song, chẳng hạn như mô hình truyền thông điệp là một trong những mô hình lâu đời và được ứng dụng rộng rãi trong lập trình song song Tuy nhiên đối với
mô hình lập trình chia sẻ bộ nhớ cổ điển, chương trình được song song hóa cho các luồng, người lập trình phải quản lý công việc tạo ra các luồng và phân công công việc cho các luồng, quản lý sự tồn tại các luồng, bên cạnh đó cần hiểu rõ về mặt kiến trúc vật lý (chẳng hạn như có bao nhiều lõi của bộ xử lý là đang sẵn sàng) để có thể đạt được những cải tiến về mặt hiệu năng
2.3.2 Parallel Extensions trong Net Framework
Parallel Extensions là một sự bổ sung cho các thư viện của Microsoft bắt đầu từ nền tảng NET Framework 4.0 Parallel Extensions gồm có Task Parallel Library (TPL), Parallel LINQ và nhiều lớp hỗ trợ khác cho việc lập trình xử lý song song trên nền tảng Net Những tính năng này giúp đơn giản hóa việc phát triển lập trình song song, loại bỏ sự phức tạp khi viết mã song song của các nhà phát triển để giúp họ tập trung vào giải quyết các vấn đề chính yếu về mặt nghiệp vụ
Lớp Parallel cung cấp các phương thức Parallel.For and Parallel.Foreach cho phép song song hóa các tác vụ vòng lặp truyền thống Với chương trình tuần tự, các vòng lặp for, foreach sẽ thực hiện tuần tự từng vòng lặp cho đến khi kết thúc, trong trường hợp CPU rỗi thì vẫn phải chờ sau khi thực hiện xong một vòng lặp rồi mới thực hiện vòng lặp tiếp theo Khi sử dụng các vòng lặp song song sẽ khắc phục được nhược điểm của lập trình tuần tự, các vòng lặp sẽ được thực thi đồng thời giúp tăng hiệu năng tính toán
Hình 2.1 Minh họa giải thuật tuần tự và song song với sự hỗ trợ của thư viện
TPL
Trang 22Xét ví dụ nhân hai ma trận sau đây:
Giải thuật nhân ma trận A và B với giải thuật tuần tự như sau:
void MultiplyMatricesSequential(double[,] matA, double[,] matB, double[,] result){
for (int i = 0; i < matARows; i++)
Trang 23}
Trong chương 4 chúng tôi sẽ trình bày hướng tiếp cận song song hóa trong giai đoạn tìm các tập phổ biến dựa vào thư viện TPL của Net Framework
Trang 24CHƯƠNG 3: TỔNG THUẬT CÁC CÔNG
TRÌNH LIÊN QUAN
Trong chương này sẽ trình bày một số nghiên cứu liên quan đến việc tìm luật kết hợp trong lĩnh vực khai phá dữ liệu cũng như các vấn đề mà đề tài luận văn quan tâm
3.1 Phát hiện luật kết hợp sử dụng đơn ngưỡng hỗ trợ tối thiểu
Trong hướng tiếp cận tìm tất cả các tập phổ biến để từ đó phát hiện ra các luật kết hợp từ các tập phổ biến, công trình nghiên cứu [2] đã đề xuất thuật toán Apriori để tìm tất cả các tập phổ biến từ cơ sở dữ liệu, đây là thuật toán tìm tập phổ biến nổi tiếng
Thuật toán Apriori:
Input: Tập các giao dịch D, giá trị ngưỡng support tối thiểu minsup
Output: L- tập phần tử phổ biến trong D
Thuật toán:
L1={large 1-itemset (tập 1- mục phổ biến)}
begin
Ck=apriori-gen(Lk-1); //sinh ra tập ứng cử viên từ Lk-1
begin
CT = subset(Ck, T); //lấy tập con của T là ứng cử viên trong Ck
Trang 25c.count++; //tăng bộ đếm tần suất thêm 1 đơn vị
phần tử mà giá trị độ hỗ trợ của nó lớn hơn hoặc bằng minsup
Trong các giai đoạn thứ k sau đó (k > 1), mỗi giai đoạn gồm có 2 pha Trước hết các large(k-1)-itemset (tập k-1- phần tử phổ biến) trong tập Lk-1 được sử dụng để sinh
ra các tập ứng cử viên (candidate itemset) Ck, bằng cách thực hiện hàm Apriori_gen Hàm Apriori_gen với đối số là Lk-1 (tập các large(k-1)-itemset) sẽ cho lại kết quả là một superset, tập của tất cả các large k – itemset
Trong giải thuật Apriori, bước loại bỏ (prunning) dựa trên độ hỗ trợ được dựa theo nguyên tắc sau:
Nếu một tập phần tử là thường xuyên, thì tất cả các tập con (subsets) của nó đều là các tập phần tử thường xuyên
Nếu một tập phần tử là không thường xuyên (not frequent) thì tất cả các tập cha (supersets) của nó đều là các tập mục không thường xuyên
Trang 26Ví dụ: Xét cơ sở dữ liệu chứa các giao dịch sau:
T1 T2 T3 T4 T5 T6 T7 T8 T9
I1, I2, I5 I2, I4 I2, I3 I1, I2, I4 I1, I3 I2, I3 I1, I3 I1, I2, I3, I5 I1, I2, I3
Trong bước lặp đầu tiên, mỗi phần tử của tập dữ liệu đều được xem là ứng viên tập
1 phần tử C1 Giải thuật sẽ duyệt qua tất cả các giao dịch để đếm số lần xuất hiện của mỗi phần tử này
Giả sử ngưỡng hỗ trợ tối thiểu được thiết lập là 2 (tức min_sup = 2) Tập phổ biến
L1 được xác định từ tập C1, trong ví dụ này tất cả các phần tử trong tập ứng viên C1đều thỏa ngưỡng hỗ trợ tối thiểu
Tiếp theo để tìm tập phổ biến 2 phần tử L2, giải thuật sẽ thực hiện phép nối
L1L1 để sinh ra các tập ứng viên C2 Không có ứng viên nào trong tập C2 bị loại
bỏ trong giai đoạn cắt vì mỗi tập con của ứng viên trong C2 đều là tập phổ biến
Độ hỗ trợ của các ứng viên trong tập C2 sẽ được tính toán, bước tiếp theo sẽ thu được tập phổ biến L2 từ các ứng viên trong C2 mà thỏa điều kiện ngưỡng hỗ trợ tối thiểu
Trang 27Duyệt D tìm
số lần xuất hiện của mỗi ứng viên
So sánh độ hỗ trợ của các ứng viên với ngưỡng hỗ trợ tối thiểu
Sinh tập
ứng viên
C 3 từ L 2
Duyệt D tìm số lần xuất hiện của mỗi ứng viên
So sánh độ hỗ trợ của các ứng viên với ngưỡng hỗ trợ tối thiểu
Hình 3.1 Sinh các tập ứng viên và tập phổ biến với ngưỡng hỗ trợ tối thiểu bằng
2
Tập phần tử Số lần
xuất hiện {I1}
{I1, I2, I5}
2
2
Tập phần tử Số lần
xuất hiện {I1, I2, I3}
{I1, I2, I5}
2
2
Tập phần tử
{I1, I2, I3}
{I1, I2, I5}
C 3
C 3
Trang 28Quá trình sinh tập ứng viên C3 được mô tả như sau:
a) Thực hiện phép nối L2L2 ta thu được
L2L2 = {{I1, I2}, {I1, I3}, {I1, I5}, {I2, I3}, {I2, I4}, {I2, I5}}
{{I1, I2}, {I1, I3}, {I1, I5}, {I2, I3}, {I2, I4}, {I2, I5}}
b) Thực hiện bước cắt theo tính chất Apriori: Tất cả các tập con không rỗng của một tập phổ biến thì phải là tập phổ biến
Các tập con 2 phần tử của {I1, I2, I3} là {I1, I2}, {I1, I3} và {I2, I3} Tất cả các tập con này đều thuộc L2 do đó sẽ giữ {I1, I2, I3} trong C3
Các tập con 2 phần tử của {I1, I2, I5} là {I1, I2}, {I1, I5} và {I2, I5} Tất cả các tập con này đều thuộc L2 do đó sẽ giữ {I1, I2, I5} trong C3
Các tập con 2 phần tử của {I1, I3, I5} là {I1, I3}, {I1, I5} và {I3, I5} {I3, I5} không thuộc L2 do đó nó không phải là tập phổ biến vì vậy {I1, I3, I5} sẽ bị loại khỏi C3
Các tập con 2 phần tử của {I2, I3, I4} là {I2, I3}, {I2, I4} và {I3, I4} {I3, I4} không thuộc L2 do đó nó không phải là tập phổ biến vì vậy {I2, I3, I4} sẽ bị loại khỏi C3
Các tập con 2 phần tử của {I2, I3, I5} là {I2, I5}, {I2, I5} và {I3, I5} {I3, I5} không thuộc L2 do đó nó không phải là tập phổ biến vì vậy {I2, I3, I5} sẽ bị loại khỏi C3
Các tập con 2 phần tử của {I2, I4, I5} là {I2, I4}, {I2, I5} và {I4, I5} {I4, I5} không thuộc L2 do đó nó không phải là tập phổ biến vì vậy {I2, I4, I5} sẽ bị loại khỏi C3
c) Do đó ta thu được C 3 = {{I1, I2, I3}, {I1, I2, I5}} sau giai đoạn cắt
Duyệt qua cơ sở dữ liệu D để tìm số lần xuất hiện của các phần tử trong tập ứng viên C3 và so sánh với ngưỡng hỗ trợ tối thiểu ta thu được tập L3= {{I1, I2, I3}, {I1, I2, I5}}
Giải thuật tiếp tục thực hiện phép nối L3L3 để sinh ra tập ứng viên 4 phần tử
C4 Kết quả của phép nối thu được tập phần tử { I1, I2, I3, I5}, tập phần tử này bị loại
vì tập con của tập này là {I2, I3, I5} không phải là tập phổ biến Do đó C4 = vì vậy