Mục tiêu của luận văn Tìm hiểu khái quát về khai phá dữ liệu Đi sâu tìm hiểu về các luật kết hợp Nghiên cứu Data mining trong hệ quản trị cơ sở dữ liệu SQL Server Thử nghiệm kha
Trang 1ĐẠI HỌC QUỐC GIA HÀ NỘI
Trang 2ĐẠI HỌC QUỐC GIA HÀ NỘI
TRƯỜNG ĐẠI HỌC CÔNG NGHỆ
NGUYỄN ĐỨC TOẢN
NGHIÊN CỨU LUẬT KẾT HỢP, THỬ NGHIỆM KHAI PHÁ CƠ SỞ DỮ LIỆU XUẤT NHẬP KHẨU
Ngành: Công nghệ thông tin
Chuyên ngành: Hệ thống thông tin
Mã số: 60.48.01.04
LUẬN VĂN THẠC SĨ HỆ THỐNG THÔNG TIN
NGƯỜI HƯỚNG DẪN KHOA HỌC: TS PHÙNG VĂN ỔN
Hà Nội - 2015
Trang 3LỜI CAM ĐOAN
Tôi cam đoan đây là công trình nghiên cứu của tôi 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 công bố trong bất kỳ công trình nào khác
Học viên
Nguyễn Đức Toản
Trang 4LỜI CẢM ƠN
Để có được kết quả như ngày hôm nay, tôi muốn gửi lời cảm ơn đến các thầy cô giáo trường Đại học Công nghệ, Đại học Quốc gia Hà Nội đã quan tâm
tổ chức chỉ đạo và trực tiếp giảng dạy khoá cao học của chúng tôi
Đặc biệt, tôi xin gửi lời cảm ơn sâu sắc đến thầy giáo hướng dẫn TS Phùng Văn Ổn, người đã tận tình chỉ bảo và góp ý về mặt chuyên môn cho tôi trong suốt quá trình làm luận văn Nếu không có sự giúp đỡ của thầy thì tôi khó
có thể hoàn thành được luận văn này
Cũng qua đây, tôi xin gửi lời cảm ơn đến các Anh/Chị/Em trong Trung tâm phần mềm Hải quan thuộc công ty Hệ thống thông tin FPT, nơi tôi đang công tác, đã tạo mọi điều kiện thuận lợi cho tôi trong thời gian hoàn thành các môn học cũng như trong suốt quá trình làm luận văn tốt nghiệp
Cuối cùng, tôi xin cảm ơn bố mẹ, bạn bè, đồng nghiệp đã luôn ủng hộ,
động viên để tôi yên tâm nghiên cứu và hoàn thành luận văn
Trang 5MỤC LỤC
MỞ ĐẦU 1
CHƯƠNG 1: TỔNG QUAN VỀ KHAI PHÁ DỮ LIỆU 3
1.1 Khai phá dữ liệu 3
1.1.1 Khái niệm Khai phá dữ liệu 3
1.1.2 Quá trình khai phá dữ liệu 4
1.1.3 Kiến trúc của một hệ thống khai phá dữ liệu 5
1.1.4 Nhiệm vụ chính trong khai phá dữ liệu 7
1.1.5 Các phương pháp khai phá dữ liệu 9
1.1.6 Các cơ sở dữ liệu có thể khai phá 14
1.2 Ứng dụng của khai phá dữ liệu 15
1.3 Một số khó khăn và thách thức trong khai phá dữ liệu 16
1.3.1 Các vấn đề về cơ sở dữ liệu 16
1.3.2 Một số vấn đề khác 19
1.4 Kết luận 20
CHƯƠNG 2: LUẬT KẾT HỢP TRONG KHAI PHÁ DỮ LIỆU 21
2.1 Bài toán kinh điển dẫn đến việc khai phá luật kết hợp 21
2.2 Lý thuyết về luật kết hợp 21
2.2.1 Luật kết hợp 22
2.2.2 Một số tính chất của luật kết hợp 25
2.3 Đặc tả bài toán khai phá luật kết hợp 26
2.4 Một số thuật toán khai phá luật kết hợp 27
2.4.1 Tìm tập mục phổ biến (Pha 1) 27
2.4.2 Sinh các luật từ các tập mục phổ biến 36
2.5 Một số hướng tiếp cận trong khai phá luật kết hợp 38
2.5.1 Luật kết hợp nhị phân (binary association rule hoặc boolean association rule) 38
2.5.2 Luật kết hợp có thuộc tính số và thuộc tính danh mục (quantitative and categorial association rule) 38
Trang 62.5.3 Luật kết hợp tiếp cận theo hướng tập thô (mining association rules
base on rough set) 38
2.5.4 Luật kết hợp nhiều mức (multi-level association rules) 38
2.5.5 Luật kết hợp mờ (fuzzy association rule) 39
2.5.6 Luật kết với thuộc tính được đánh trọng số (association rule with weighted items) 39
2.5.7 Luật kết hợp song song (parallel mining of association rules) 39
2.6 Một số giải pháp triển khai khai phá luật kết hợp 40
2.6.1 Xây dựng chương trình dựa thuật toán Apriori 40
2.6.2 Sử dụng công cụ Weka 42
2.6.3 Sử dụng công cụ Business Intelligence Development Studio (BIDS)45 2.7 Kết luận 46
CHƯƠNG 3: THỬ NGHIỆM KHAI PHÁ LUẬT KẾT HỢP CHO CƠ SỞ DỮ LIỆU XUẤT NHẬP KHẨU 47
3.1 Giới thiệu bài toán 47
3.2 Mô tả dữ liệu 48
3.2.1 Mô hình dữ liệu 49
3.2.2 Danh sách các bảng và mô tả 50
3.3 Phân tích dữ liệu 61
3.4 Lựa chọn giải pháp 62
3.5 Tiền xử lý dữ liệu 62
3.6 Khai phá cơ sở dữ liệu xuất nhập khẩu với BIDS 63
3.6.1 Tạo một Mining Model structure 63
3.6.2 Hiệu chỉnh tham số cho mô hình 65
3.6.3 Khám phá Mining Models 65
3.7 Đánh giá kết quả 71
3.8 Kết luận 71
KẾT LUẬN 72
TÀI LIỆU THAM KHẢO 74
Trang 7DANH MỤC CÁC KÝ HIỆU VÀ CHỮ VIẾT TẮT
Công cụ khai thác dữ liệu của Micosoft
X Y Luật kết hợp (Với X là tiền đề, Y là hệ quả)
Trang 8DANH MỤC CÁC BẢNG
Bảng 2.1 Ví dụ về một cơ sở dữ liệu dạng giao dịch - D 23
Bảng 2.2 Các tập phổ biến trong CSDL ở bảng 1 với độ hỗ trợ tối thiểu 50% 23
Bảng 2.3 Một số ký hiệu dùng trong thuật toán Apriori 28
Bảng 3.1 Danh sách các bảng và mô tả 50
Bảng 3.2 Thông tin tờ khai 51
Bảng 3.3 Thông tin hàng hóa 52
Bảng 3.4 Thông tin hàng hóa chi tiết 53
Bảng 3.5 Thông tin chung tờ khai trị giá 53
Bảng 3.6 Thông tin tờ khai trị giá phương pháp 1 54
Bảng 3.7 Thông tin chi tiết tờ khai trị giá phương pháp 1 55
Bảng 3.8 Thông tin tờ khai trị giá phương pháp 2 hoặc 3 56
Bảng 3.9 Thông tin tờ khai trị giá phương pháp 4 56
Bảng 3.10 Thông tin tờ khai trị giá phương pháp 5 57
Bảng 3.11 Thông tin tờ khai trị giá phương pháp 6 58
Bảng 3.12 Thông tin kiểm tra hồ sơ tờ khai 58
Bảng 3.13 Thông tin kiểm hóa tờ khai 58
Bảng 3.14 Thông tin chứng nhận xuất xứ hàng hóa 59
Bảng 3.15 Thông tin chi tiết chứng nhận xuất xứ hàng hóa 59
Bảng 3.16 Thông tin chứng từ đính kèm tờ khai 59
Bảng 3.17 Thông tin cấp số tờ khai 60
Bảng 3.18 Danh sách các bảng dữ liệu khai phá 61
Bảng 3.19 Thông tin chi tiết mã HS 70
Trang 9DANH MỤC CÁC HÌNH VẼ
Hình 1.1 Quá trình khai phá dữ liệu 4
Hình 1.2 Kiến trúc hệ thống khai phá dữ liệu 6
Hình 2.1 Minh họa thuật toán Apriori tìm tập mục phổ biến 33
Hình 2.2 Sinh luật từ tập mục phổ biến 36
Hình 2.3 Sinh luật từ tập mục phổ biến 40
Hình 2.4 Sinh luật từ tập mục phổ biến 41
Hình 2.5 Giao diện chương trình Weka 42
Hình 2.6 Giao diện môi trường Explorer 43
Hình 2.7 Ví dụ tập dữ liệu có khuôn dạng ARFF 44
Hình 3.1 Mô hình dữ liệu bài toán 49
Hình 3.2 Danh sách các bảng danh mục 60
Hình 3.3 Thông tin quản lý mã HS 61
Hình 3.4 Mô hình quan hệ các bảng dữ liệu khai phá 62
Hình 3.5 View dữ liệu tiền xử lý 63
Hình 3.6 Cấu hình Case và Nested cho mô hình 64
Hình 3.7 Màn hình Mining Models 64
Hình 3.8 Cấu hình tham số Mining Models 65
Hình 3.9 Danh sách tập phổ biến 66
Hình 3.10 Danh sách luật 67
Hình 3.11 Mạng phụ thuộc 68
Hình 3.12 Chi tiết node trong mạng phụ thuộc 68
Trang 10MỞ ĐẦU
1 Đặt vấn đề
Ngày nay, con người đang sở hữu kho dữ liệu phong phú, đa dạng và khổng lồ Đặc biệt sự phát triển 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 đã làm cho kho dữ liệu đó tăng lên nhanh chóng Sự bùng nổ này đã dẫn tới một yêu cầu cấp thiết là cần có những kỹ thuật
và công cụ mới để tự động chuyển đổi lượng dữ liệu khổng lồ kia thành các tri thức có ích
Mặt khác, trong môi trường cạnh tranh thì người ta ngày càng cần có thông tin với tốc độ nhanh để giúp cho việc ra quyết định Hơn nữa ngày càng
có nhiều câu hỏi mang tính chất định tính cần phải trả lời dựa trên khối lượng dữ liệu khổng lồ đã có
Tiến hành các công việc như vậy chính là quá trình phát hiện tri thức trong cơ sở dữ liệu, trong đó kỹ thuật khai phá dữ liệu cho phép phát hiện tri thức tiềm ẩn Từ đó, các kỹ thuật khai phá dữ liệu đã trở thành một lĩnh vực thời
sự của nền Công nghệ thông tin thế giới hiện nay nói chung và Việt Nam nói riêng Rất nhiều tổ chức và công ty lớn trên thế giới đã áp dụng kỹ thuật khai phá dữ liệu vào các hoạt động sản xuất kinh doanh của mình và thu được những lợi ích to lớn
Từ những vấn đề nêu trên, tôi chọn đề tài “Nghiên cứu luật kết hợp, thử
nghiệm khai phá cơ sở dữ liệu xuất nhập khẩu” để làm luận văn tốt nghiệp
2 Mục tiêu của luận văn
Tìm hiểu khái quát về khai phá dữ liệu
Đi sâu tìm hiểu về các luật kết hợp
Nghiên cứu Data mining trong hệ quản trị cơ sở dữ liệu SQL Server
Thử nghiệm khai phá luật kết hợp trong cơ sở dữ liệu xuất nhập khẩu
Trang 113 Bố cục luận văn
Luận văn chia làm 3 chương:
Chương 1: Tổng quan về khai phá dữ liệu
Chương này giới thiệu quá trình khai phá dữ liệu và phát hiện tri thức, phương pháp khai phá dữ liệu, ứng dụng và một số khó khăn trong khai phá dữ liệu
Chương 2: Luật kết hợp trong khai phá dữ liệu
Chương này trình bày tóm tắt luật kết hợp, mô hình của bài toán khai phá luật kết hợp, các khái niệm cơ bản luật kết hợp, các phương pháp khai phá các luật kết hợp, các giải pháp triển khai khai phá luật kết hợp
Chương 3: Thử nghiệm khai phá luật kết hợp cho cơ sở dữ liệu xuất nhập
khẩu
Chương này nêu ra bài toán để thử nghiệm, phân tích và cài đặt thử nghiệm thử nghiệm với công cụ Business Intelligence Development Studio (BIDS) của Microsoft
Trang 12CHƯƠNG 1: TỔNG QUAN VỀ KHAI PHÁ DỮ LIỆU
1.1 Khai phá dữ liệu
1.1.1 Khái niệm Khai phá dữ liệu
Khai phá dữ liệu là một khái niệm ra đời vào những năm cuối của thập kỷ
80, nó là quá trình tìm kiếm, khám phá dưới nhiều góc độ khác nhau nhằm phát hiện các mối liên hệ, quan hệ giữa các dữ liệu, đối tượng bên trong CSDL, kết quả của việc khai phá là xác định các mẫu hay các mô hình tồn tại bên trong nhưng chúng nằm ẩn ở các CSDL Về bản chất nó là giai đoạn duy nhất rút trích
và tìm ra được các mẫu, các mô hình hay thông tin mới, tri thức tiềm ẩn có trong CSDL chủ yếu phục vụ cho mô tả và dự đoán Đây là giai đoạn quan trọng nhất trong quá trình phát hiện tri thức từ CSDL, các tri thức này hỗ trợ trong việc ra quyết định, điều hành trong khoa học và kinh doanh
Sau đây là một số định nghĩa của nhiều tác giả về khai phá dữ liệu:
Định nghĩa của Ferruzza: “Khai phá dữ liệu là tập hợp các phương pháp
được dùng trong tiến trình khám phá tri thức để chỉ ra sự khác biệt các mối quan
hệ và các mẫu chưa biết bên trong dữ liệu”
Định nghĩa của Parsaye: “Khai phá dữ liệu là quá trình trợ giúp quyết
định, trong đó chúng ta tìm kiếm các mẫu thông tin chưa biết và bất ngờ trong CSDL lớn”
Định nghĩa của Fayyad: “Khai phá tri thức là một quá trình không tầm
thường nhận ra những mẫu dữ liệu có giá trị, mới, hữu ích, tiềm năng và có thể hiểu được”
Định nghĩa của Tom Mitchell: “KPDL là việc sử dụng dữ liệu lịch sử để
khám phá những qui tắc và cải thiện những quyết định trong tương lai”
Tóm lại: Khai phá dữ liệu là tiến trình khám phá tri thức tiềm ẩn trong
các CSDL, cụ thể hơn, đó là tiến trình lọc, sản sinh những tri thức hoặc các mẫu tiềm ẩn, chưa biết những thông tin hữu ích từ các CSDL lớn
Trang 131.1.2 Quá trình khai phá dữ liệu
Quá trình khai phá dữ liệu sẽ tiến hành qua 6 giai đoạn như hình 1.1:
Hình 1.1 Quá trình khai phá dữ liệu
Bắt đầu của quá trình là kho dữ liệu thô và kết thúc với tri thức được chiết xuất ra Về lý thuyết thì có vẽ rất đơn giản nhưng thực sự đây là một quá trình rất khó khăn gặp phải rất nhiều vướng mắc như: quản lý các tập dữ liệu, phải lặp
đi lặp lại toàn bộ quá trình,.v.v
Tập hợp dữ liệu là bước đầu tiên trong quá trình khai phá dữ liệu Đây là bước được khai thác trong một cơ sở dữ liệu, một kho dữ liệu và thậm chí các dữ liệu
Data Cleansed
Preprocessed Preparated
Data
Target Data Gathering
Data Mining
Selection
Transformation
Cleansing Pre-processing Preparation
Envalution of Rule
Internet
Trang 14Giai đoan thứ ba này là giai đoạn hay bị sao lãng, nhưng thực tế nó là một bước rất quan trọng trong quá trình khai phá dữ liệu Một số lỗi thường mắc phải trong khi gom dữ liệu là tính không đủ chặt chẽ, logic Vì vậy, dữ liệu thường chứa các giá trị vô nghĩa và không có khả năng kết nối dữ liệu
Ví dụ: tuổi = 673 Giai đoạn này sẽ tiến hành xử lý những dạng dữ liệu không chặt chẽ nói trên Những dữ liệu dạng này được xem như thông tin dư thừa, không có giá trị Bởi vậy, đây là một quá trình rất quan trọng vì dữ liệu này nếu không được “làm sạch - tiền xử lý - chuẩn bị trước” thì sẽ gây nên những kết quả sai lệch nghiêm trọng
4 Chuyển đổi dữ liệu (Transformation)
Tiếp theo là giai đoạn chuyển đổi dữ liệu, dữ liệu đưa ra có thể được sử dụng và điều khiển bởi việc tổ chức lại nó Dữ liệu đã được chuyển đổi phù hợp với mục đích khai thác
5 Phát hiện và trích mẫu dữ liệu (Pattern Extraction and Discovery)
Đây là bước mang tính tư duy trong khai phá dữ liệu Ở giai đoạn này nhiều thuật toán khác nhau đã được sử dụng để trích ra các mẫu từ dữ liệu Thuật toán thường dùng là nguyên tắc phân loại, nguyên tắc kết hợp hoặc các
mô hình dữ liệu tuần tự, v.v
6 Đánh giá kết quả mẫu (Evaluation of Result)
Đây là giai đoạn cuối trong quá trình khai phá dữ liệu Ở giai đoạn này, các mẫu dữ liệu được chiết xuất ra bởi phần mềm khai phá dữ liệu Không phải bất cứ mẫu dữ liệu nào cũng đều hữu ích, đôi khi nó còn bị sai lệch Vì vậy, cần phải ưu tiên những tiêu chuẩn đánh giá để chiết xuất ra các tri thức (Knowledge) cần chiết xuất ra
Trên đây là 6 giai đoạn trong quá trình khai phá dữ liệu, trong đó giai
đoạn 5 là giai đoạn được quan tâm nhiều nhất hay còn gọi đó là Data Mining
1.1.3 Kiến trúc của một hệ thống khai phá dữ liệu
Gồm các thành phần như hình sau
Trang 15Hình 1.2 Kiến trúc hệ thống khai phá dữ liệu
2 Cơ sở tri thức (Knowledge base)
Đây là miền tri thức được dùng để tìm kiếm hay đánh giá độ quan trọng của các hình mẫu kết quả
3 Máy khai phá dữ liệu (Data mining engine)
Một hệ thống khai phá dữ liệu cần phải có một tập các modul chức năng để thực hiện công việc, chẳng hạn như đặc trưng hóa, kết hợp, phân lớp, phân cụm, phân tích sự tiến hoá…
4 Modul đánh giá mẫu (Pattern evaluation)
Bộ phận này tương tác với các modul khai phá dữ liệu để tập trung vào việc duyệt tìm các mẫu đáng được quan tâm Cũng có thể modul đánh giá mâu được tích hợp vào modul khai phá tuỳ theo sự cài đặt của phương pháp khai phá được dùng
Đánh giá mẫu Giao diện đồ họa cho người dùng
Lọc dữ liệu
Trang 165 Giao diện đồ họa cho người dùng (Graphical user interface)
Thông qua giao diện này, người dùng tương tác với hệ thống bằng cách đặc tả một yêu cầu khai phá hay một nhiệm vụ, cung cấp thông tin trợ giúp cho việc tìm kiếm và thực hiện khai phá thăm dò trên các kết quả khai phá trung gian
1.1.4 Nhiệm vụ chính trong khai phá dữ liệu
Quá trình khai phá dữ liệu là quá trình phát hiện ra mẫu thông tin Trong
đó, giải thuật khai phá tìm kiếm các mẫu đáng quan tâm theo dạng xác định như các luật, phân lớp, hồi quy, cây quyết định,
1.1.4.1 Phân lớp (phân loại - classification)
Là việc xác định một hàm ánh xạ từ một mẫu dữ liệu vào một trong số các lớp đã được biết trước đó Mục tiêu của thuật toán phân lớp là tìm ra mối quan
hệ nào đó giữa thuộc tính dự báo và thuộc tính phân lớp Như thế quá trình phân lớp có thể sử dụng mối quan hệ này để dự báo cho các mục mới Các kiến thức
được phát hiện biểu diễn dưới dạng các luật theo cách sau: “Nếu các thuộc tính
dự báo của một mục thoả mãn điều kiện của các tiền đề thì mục nằm trong lớp chỉ ra trong kết luận”
Ví dụ: Một mục biểu diễn thông tin về nhân viên có các thuộc tính dự báo là: họ tên, tuổi, giới tính, trình độ học vấn, … và thuộc tính phân loại là trình độ lãnh đạo của nhân viên
1.1.4.2 Hồi qui (regression)
Là việc học một hàm ánh xạ từ một mẫu dữ liệu thành một biến dự đoán
có giá trị thực Nhiệm vụ của hồi quy tương tự như phân lớp, điểm khác nhau chính là ở chỗ thuộc tính để dự báo là liên tục chứ không phải rời rạc Việc dự báo các giá trị số thường được làm bởi các phương pháp thống kê cổ điển, chẳng hạn như hồi quy tuyến tính Tuy nhiên, phương pháp mô hình hoá cũng được sử dụng, ví dụ: cây quyết định
Ứng dụng của hồi quy là rất nhiều, ví dụ: dự đoán số lượng sinh vật phát quang hiện thời trong khu rừng bằng cách dò tìm vi sóng bằng các thiết bị cảm biến từ xa; ước lượng xác xuất người bệnh có thể chết bằng cách kiểm tra các triệu chứng; dự báo nhu cầu của người dùng đối với một sản phẩm, …
Trang 17dữ liệu, hàm mật độ xác suất đa biến/ các trường trong CSDL
1.1.4.4 Tổng hợp (summarization)
Là công việc liên quan đến các phương pháp tìm kiếm một mô tả tập con
dữ liệu Kỹ thuật tổng hợp thường áp dụng trong việc phân tích dữ liệu có tính thăm dò và báo cáo tự động Nhiệm vụ chính là sản sinh ra các mô tả đặc trưng cho một lớp Mô tả loại này là một kiểu tổng hợp, tóm tắt các đặc tính chung của tất cả hay hầu hết các mục của một lớp Các mô tả đặc trưng thể hiện theo luật
có dạng sau: “Nếu một mục thuộc về lớp đã chỉ trong tiền đề thì mục đó có tất
cả các thuộc tính đã nêu trong kết luận” Lưu ý rằng luật dạng này có các khác biệt so với luật phân lớp Luật phát hiện đặc trưng cho lớp chỉ sản sinh khi các mục đã thuộc về lớp đó
1.1.4.5 Mô hình hoá sự phụ thuộc (dependency modeling)
Là việc tìm kiếm một mô hình mô tả sự phụ thuộc giữa các biến, thuộc
tính theo hai mức: Mức cấu trúc của mô hình mô tả (thường dưới dạng đồ thị) Trong đó, các biến phụ thuộc bộ phận vào các biến khác Mức định lượng mô hình mô tả mức độ phụ thuộc Những phụ thuộc này thường được biểu thị dưới dạng theo luật “nếu - thì” (nếu tiền đề là đúng thì kết luận đúng) Về nguyên tắc,
cả tiền đề và kết luận đều có thể là sự kết hợp logic của các giá trị thuộc tính Trên thực tế, tiền đề thường là nhóm các giá trị thuộc tính và kết luận chỉ là một thuộc tính Hơn nữa hệ thống có thể phát hiện các luật phân lớp trong đó tất cả các luật cần phải có cùng một thuộc tính do người dùng chỉ ra trong kết luận
Quan hệ phụ thuộc cũng có thể biểu diễn dưới dạng mạng tin cậy Bayes
Đó là đồ thị có hướng, không chu trình Các nút biểu diễn thuộc tính và trọng số của liên kết phụ thuộc giữa các nút đó
1.1.4.6 Phát hiện sự biến đổi và độ lệch (change and deviation dectection)
Nhiệm vụ này tập trung vào khám phá hầu hết sự thay đổi có nghĩa dưới dạng độ đo đã biết trước hoặc giá trị chuẩn, phát hiện độ lệch đáng kể giữa nội
Trang 18dung của tập con dữ liệu thực và nội dung mong đợi Hai mô hình độ lệch hay
dùng là lệch theo thời gian hay lệch theo nhóm Độ lệch theo thời gian là sự thay
đổi có ý nghĩa của dữ liệu theo thời gian Độ lệch theo nhóm là sự khác nhau của giữa dữ liệu trong hai tập con dữ liệu, ở đây tính cả trường hợp tập con dữ liệu này thuộc tập con kia, nghĩa xác định dữ liệu trong một nhóm con của đối tượng có khác đáng kể so với toàn bộ đối tượng không? Theo cách này, sai sót
dữ liệu hay sai lệch so với giá trị thông thường được phát hiện
Vì những nhiệm vụ này yêu cầu số lượng và các dạng thông tin rất khác nhau nên chúng thường ảnh hưởng đến việc thiết kế và chọn phương pháp khai phá dữ liệu khác nhau Ví dụ như phương pháp cây quyết định (sẽ được trình bày dưới đây) tạo ra được một mô tả phân biệt được các mẫu giữa các lớp nhưng không có tính chất và đặc điểm của lớp
1.1.5 Các phương pháp khai phá dữ liệu
Khai phá dữ liệu là lĩnh vực mà con người luôn tìm cách đạt được mực đích sử dụng thông tin của mình Quá trình khai phá dữ liệu là quá trình phát hiện mẫu, trong đó phương pháp khai phá dữ liệu để tìm kiếm các mẫu đáng quan tâm theo dạng xác định Có thể kể ra đây một vài phương pháp như: sử dụng công cụ truy vấn, xây dựng cây quyết định, dựa theo khoảng cách (K-láng giềng gần), giá trị trung bình, phát hiện luật kết hợp, … Các phương pháp trên
có thể được phỏng theo và được tích hợp vào các hệ thống lai để khai phá dữ liệu theo thống kê trong nhiều năm nghiên cứu Tuy nhiên, với dữ liệu rất lớn trong kho dữ liệu thì các phương pháp này cũng đối diện với thách thức về mặt hiệu quả và quy mô
1.1.5.1 Các thành phần của giải thuật khai phá dữ liệu
Giải thuật khai phá dữ liệu bao gồm 3 thành phần chính như sau: biểu diễn mô hình, kiểm định mô hình và phương pháp tìm kiếm
1 Biểu diễn mô hình
Mô hình được biểu diễn theo một ngôn ngữ L nào đó để miêu tả các mẫu
có thể khai thác được Mô tả mô hình rõ ràng thì học máy sẽ tạo ra mẫu có mô hình chính xác cho dữ liệu Tuy nhiên, nếu mô hình quá lớn thì khả năng dự đoán của học máy sẽ bị hạn chế Như thế sẽ làm cho việc tìm kiếm phức tạp hơn cũng như hiểu được mô hình là không đơn giản hoặc sẽ không thể có các mẫu tạo ra được một mô hình chính xác cho dữ liệu Ví dụ mô tả cây quyết định sử dụng phân chia các nút theo 1 trường dữ liệu, chia không gian đầu vào thành các
Trang 19vậy không thể khai phá được dữ liệu dạng công thức X = Y dù cho tập học có quy mô lớn thế nào đi nữa Vì vậy, việc quan trọng là người phân tích dữ liệu cần phải hiểu đầy đủ các giả thiết miêu tả Một điều cũng khá quan trọng là người thiết kế giải thuật cũng phải diễn tả được các giả thiết mô tả nào được tạo
ra bởi giải thuật nào Khả năng miêu tả mô hình càng lớn thì càng làm tăng mức
độ nguy hiểm do bị học quá và làm giảm đi khả năng dự đoán các dữ liệu chưa biết Hơn nữa, việc tìm kiếm sẽ càng trở lên phức tạp hơn và việc giải thích mô hình cũng khó khăn hơn
Mô hình ban đầu được xác định bằng cách kết hợp biến đầu ra (phụ thuộc) với các biến độc lập mà biến đầu ra phụ thuộc vào Sau đó phải tìm những tham số mà bài toán cần tập trung giải quyết Việc tìm kiếm mô hình sẽ đưa ra được một mô hình phù hợp với tham số được xác định dựa trên dữ liệu (trong một số trường hợp khác thì mô hình và các tham số lại thay đổi để phù hợp với dữ liệu) Trong một số trường hợp, tập các dữ liệu được chia thành tập
dữ liệu học và tập dữ liệu thử Tập dữ liệu học được dùng để làm cho tham số của mô hình phù hợp với dữ liệu Mô hình sau đó sẽ được đánh giá bằng cách đưa các dữ liệu thử vào mô hình và thay đổi các tham số cho phù hợp nếu cần
Mô hình lựa chọn có thể là phương pháp thống kê như SASS, … một số giải thuật học máy (ví dụ như cây quyết định và các quyết định học có thầy khác), mạng neuron, suy diễn hướng tình huống (case based reasoning), các kỹ thuật phân lớp
2 Kiểm định mô hình (model evaluation)
Là việc đánh giá, ước lượng các mô hình chi tiết, chuẩn trong quá trình xử
lý và phát hiện tri thức với sự ước lượng có dự báo chính xác hay không và có thoả mãn cơ sở logic hay không? Ước lượng phải được đánh giá chéo (cross validation) với việc mô tả đặc điểm bao gồm dự báo chính xác, tính mới lạ, tính hữu ích, tính hiểu được phù hợp với các mô hình Hai phương pháp logic và thống kê chuẩn có thể sử dụng trong mô hình kiểm định
3 Phương pháp tìm kiếm
Phương pháp này bao gồm hai thành phần: tìm kiếm tham số và tìm kiếm
mô hình Trong tìm kiếm tham số, giải thuật cần tìm kiếm các tham số để tối ưu hóa các tiêu chuẩn đánh giá mô hình với các dữ liệu quan sát được và với một
mô tả mô hình đã định Việc tìm kiếm không cần thiết đối với một số bài toán khá đơn giản: các đánh giá tham số tối ưu có thể đạt được bằng các cách đơn giản hơn Đối với các mô hình chung thì không có các cách này, khi đó giải
Trang 20thuật “tham lam” thường được sử dụng lặp đi lặp lại Ví dụ như phương pháp giảm gradient trong giải thuật lan truyền ngược (backpropagation) cho các mạng neuron Tìm kiếm mô hình xảy ra giống như một vòng lặp qua phương pháp tìm kiếm tham số: mô tả mô hình bị thay đổi tạo nên một họ các mô hình Với mỗi một mô tả mô hình, phương pháp tìm kiếm tham số được áp dụng để đánh giá chất lượng mô hình Các phương pháp tìm kiếm mô hình thường sử dụng các kỹ thuật tìm kiếm heuristic vì kích thước của không gian các mô hình có thể thường ngăn cản các tìm kiếm tổng thể, hơn nữa các giải pháp đơn giản (closed form) không dễ đạt được
1.1.5.2 Phương pháp suy diễn / quy nạp
Một cơ sở dữ liệu là một kho thông tin, nhưng các thông tin quan trọng hơn cũng có thể được suy diễn từ kho thông tin đó Có hai kỹ thuật chính để thực hiện việc này là suy diễn và quy nạp
Phương pháp suy diễn: Nhằm rút ra thông tin là kết quả logic của các
thông tin trong cơ sở dữ liệu Ví dụ như toán tử liên kết áp dụng cho bảng quan
hệ, bảng đầu chứa thông tin về các nhân viên và phòng ban, bảng thứ hai chứa các thông tin về các phòng ban và các trưởng phòng Như vậy sẽ suy ra được mối quan hệ giữa các nhân viên và các trưởng phòng Phương pháp suy diễn dựa trên các sự kiện chính xác để suy ra các tri thức mới từ các thông tin cũ Mẫu chiết xuất được bằng cách sử dụng phương pháp này thường là các luật suy diễn
Phương pháp quy nạp: phương pháp quy nạp suy ra các thông tin được
sinh ra từ cơ sở dữ liệu Có nghĩa là nó tự tìm kiếm, tạo mẫu và sinh ra tri thức chứ không phải bắt đầu với các tri thức đã biết trước Các thông tin mà phương pháp này đem lại là các thông tin hay các tri thức cấp cao diễn tả về các đối tượng trong cơ sở dữ liệu Phương pháp này liên quan đến việc tìm kiếm các mẫu trong CSDL Trong khai phá dữ liệu, quy nạp được sử dụng trong cây quyết định và tạo luật
1.1.5.3 Phương pháp ứng dụng K-láng giềng gần
Sự miêu tả các bản ghi trong tập dữ liệu khi trỏ vào không gian nhiều chiều là rất có ích đối với việc phân tích dữ liệu Việc dùng các miêu tả này, nội dung của vùng lân cận được xác định, trong đó các bản ghi gần nhau trong không gian được xem xét thuộc về lân cận (hàng xóm – láng giềng) của nhau
Khái niệm này được dùng trong khoa học kỹ thuật với tên gọi K-láng giềng gần,
trong đó K là số láng giềng được sử dụng Phương pháp này rất hiệu quả nhưng
Trang 21lại đơn giản Ý tưởng thuật toán học K-láng giềng gần là “thực hiện như các láng giềng gần của bạn đã làm”
Ví dụ: Để dự đoán hoạt động của cá thể xác định, K-láng giềng tốt nhất của cá thể được xem xét, và trung bình các hoạt động của các láng giềng gần đưa ra được dự đoán về hoạt động của cá thể đó
Kỹ thuật K-láng giềng gần là một phương pháp tìm kiếm đơn giản Tuy nhiên, nó có một số mặt hạn chế giới là hạn phạm vi ứng dụng của nó, ví dụ như
độ phức tạp tính toán là luỹ thừa bậc 2 theo số bản ghi của tập dữ liệu
Vấn đề chính liên quan đến thuộc tính của bản ghi Một bản ghi gồm nhiều thuộc tính độc lập, nó bằng một điểm trong không gian tìm kiếm có số chiều lớn Trong các không gian có số chiều lớn, giữa hai điểm bất kỳ hầu như
có cùng khoảng cách Vì thế mà kỹ thuật K-láng giềng không cho ta thêm một thông tin có ích nào, khi tất cả các cặp điểm đều là các láng giềng Cuối cùng, phương pháp K-láng giềng không đưa ra lý thuyết để hiểu cấu trúc dữ liệu Hạn
chế đó có thể được khắc phục bằng kỹ thuật cây quyết định
1.1.5.4 Phương pháp sử dụng cây quyết định và luật
Với kỹ thuật phân lớp dựa trên cây quyết định, kết quả của quá trình xây dựng mô hình sẽ cho ra một cây quyết định Cây này được sử dụng trong quá trình phân lớp các đối tượng dữ liệu chưa biết hoặc đánh giá độ chính xác của
mô hình Tương ứng với hai giai đoạn trong quá trình phân lớp là quá trình xây dựng và sử dụng cây quyết định
Quá trình xây dựng cây quyết định bắt đầu từ một nút đơn biểu diễn tất cả các mẫu dữ liệu Sau đó, các mẫu sẽ được phân chia một cách đệ quy dựa vào việc lựa chọn các thuộc tính Nếu các mẫu có cùng một lớp thì nút sẽ trở thành
lá, ngược lại ta sử dụng một độ đo thuộc tính để chọn ra thuộc tính tiếp theo làm
cơ sở để phân chia các mẫu ra các lớp Theo từng giá trị của thuộc tính vừa chọn, ta tạo ra các nhánh tương ứng và phân chia các mẫu vào các nhánh đã tạo Lặp lại quá trình trên cho tới khi tạo ra được cây quyết định, tất cả các nút triển khai thành lá và được gán nhãn
Quá trình đệ quy sẽ dừng lại khi một trong các điều kiện sau được thỏa mãn:
- Tất cả các mẫu thuộc cùng một nút
- Không còn một thuộc tính nào để lựa chọn
Trang 22- Nhánh không chứa mẫu nào
Phần lớn các giải thuật sinh cây quyết định đều có hạn chế chung là sử dụng nhiều bộ nhớ Lượng bộ nhớ sử dụng tỷ lệ thuận với kích thước của mẫu
dữ liệu huấn luyện Một chương trình sinh cây quyết định có hỗ trợ sử dụng bộ nhớ ngoài song lại có nhược điểm về tốc độ thực thi Do vậy, vấn đề tỉa bớt cây quyết định trở nên quan trọng Các nút lá không ổn định trong cây quyết định sẽ được tỉa bớt
Kỹ thuật tỉa trước là việc dừng sinh cây quyết định khi chia dữ liệu không
có ý nghĩa
1.1.5.5 Phương pháp phát hiện luật kết hợp
Phương pháp này nhằm phát hiện ra các luật kết hợp giữa các thành phần
dữ liệu trong cơ sở dữ liệu Mẫu đầu ra của giải thuật khai phá dữ liệu là tập luật kết hợp tìm được Ta có thể lấy một ví dụ đơn giản về luật kết hợp như sau: Sự kết hợp giữa hai thành phần A và B có nghĩa là sự xuất hiện của A trong bản ghi kéo theo sự xuất hiện của B trong cùng bản ghi đó: A => B
về các mặt hàng bán trong siêu thị, các dòng tương ứng với các ngày bán hàng, các cột tương ứng với các mặt hàng thì giá trị 1 tại ô (20/10, bánh mì) xác định
rằng bánh mì đã bán ngày hôm đó cũng kéo theo sự xuất hiện giá trị 1 tại ô (20/10, bơ)
Cho W R, đặt s(W,r) là tần số xuất hiện của W trong r được tính bằng
tỷ lệ của các hàng trong r có giá trị 1 tại mỗi cột thuộc W Tần số xuất hiện của luật X=>B trong r được định nghĩa là s(X {B}, r) còn gọi là độ hỗ trợ của luật, độ tin cậy của luật là s(X {B}, r)/s(X, r) Ở đây X có thể gồm nhiều thuộc tính, B là giá trị không cố định Nhờ vậy mà không xảy ra việc tạo ra các luật không mong muốn trước khi quá trình tìm kiếm bắt đầu Điều đó cũng cho thấy không gian tìm kiếm có kích thước tăng theo hàm mũ của số lượng các thuộc tính ở đầu vào Do vậy cần phải chú ý khi thiết kế dữ liệu cho việc tìm kiếm các luật kết hợp
Trang 23Nhiệm vụ của việc phát hiện các luật kết hợp là phải tìm tất cả các luật X=>B sao cho tần số của luật không nhỏ hơn ngưỡng σ cho trước và độ tin cậy của luật không nhỏ hơn ngưỡng θ cho trước Từ một cơ sở dữ liệu ta có thể tìm được hàng nghìn và thậm chí hàng trăm nghìn các luật kết hợp
Ta gọi một tập con X R là thường xuyên trong r nếu thỏa mãn điều kiện s(X, r)≥σ Nếu biết tất cả các tập thường xuyên trong r thì việc tìm kiếm các luật rất dễ dàng Vì vậy, giải thuật tìm kiếm các luật kết hợp trước tiên đi tìm tất cả các tập thường xuyên này, sau đó tạo dựng dần các luật kết hợp bằng cách ghép dần các tập thuộc tính dựa trên mức độ thường xuyên
Các luật kết hợp có thể là một cách hình thức hóa đơn giản Chúng rất thích hợp cho việc tạo ra các kết quả có dữ liệu dạng nhị phân Giới hạn cơ bản của phương pháp này là ở chỗ các quan hệ cần phải thưa theo nghĩa không có tập thường xuyên nào chứa nhiều hơn 15 thuộc tính Giải thuật tìm kiếm các luật kết hợp tạo ra số luật ít nhất phải bằng với số các tập phổ biến và nếu như một tập phổ biến có kích thước K thì phải có ít nhất là 2K tập phổ biến Thông tin về các tập phổ biến được sử dụng để ước lượng độ tin cậy của các tập luật kết hợp
1.1.6 Các cơ sở dữ liệu có thể khai phá
KPDL được ứng dụng rộng rãi nên có rất nhiều dạng dữ liệu khác nhau có thể khai phá Sau đây là một số dữ liệu điển hình:
Cơ sở dữ liệu quan hệ (Relational databases): Là cơ sở dữ liệu tác nghiệp
được tổ chức theo mô hình quan hệ, có cấu trúc cao, dữ liệu được mô tả bởi một tập những thuộc tính và lưu trong những bảng Khai phá dữ liệu trên cơ sở dữ liệu quan hệ chủ yếu tập trung khai phá mẫu Hầu hết các hệ quản trị CSDL hiện nay đều hỗ trợ dạng CSDL này như SQL Server, Oracle, DB2, MySQL, MS Access
Cơ sở dữ liệu giao tác (Transaction databases): Cơ sở dữ liệu giao tác là
tập hợp những bản ghi giao dịch, trong đa số các trường hợp chúng là những bản ghi các dữ liệu hoạt động của doanh nghiệp, tổ chức Với tính phổ biến của máy tính và thương mại điện tử, ngày nay có rất nhiều cơ sở dữ liệu giao tác Khai phá dữ liệu trên cơ sở dữ liệu giao tác tập trung vào khai phá luật kết hợp, tìm mối tương quan giữa những mục dữ liệu của bản ghi giao dịch
CSDL đa chiều (Multidimentional structures, data warehouses, data smart): Là các kho dữ liệu được tập hợp, chọn lọc từ nhiều nguồn khác nhau
CSDL đa chiều có mang tính lịch sử (mang tính thời gian) và chủ yếu phục vụ
Trang 24cho quá trình phân tích cũng như khai phá tri thức nhằm hỗ trợ quá trình ra quyết định
CSDL hướng đối tượng (Object databases): Dữ liệu cũng được lưu trữ
trong các bảng dữ liệu nhưng các bảng có bổ sung thêm các tính năng hướng đối tượng như lưu trữ thêm các hành vi, nhằm thể hiện hành vi của đối tượng Mỗi bảng xem như một lớp dữ liệu, một dòng dữ liệu trong bảng là một đối tượng Các hệ quản trị có hỗ trợ cơ sở dữ liệu quan hệ như: MS SQL server, Oracle, Postgres
CSDL không gian (Spatial databases): Bao gồm hai phần: Phần thứ nhất
là dữ liệu quan hệ hay giao tác, phần thứ hai là thông tin định vị hoặc thông tin địa lý Những luật kết hợp trên cơ sở dữ liệu không gian mô tả mối quan hệ giữa các đặc trưng trong cơ sở dữ liệu không gian Dạng của luật kết hợp không gian
có dạng X Y, với X, Y là tập hợp những vị từ không gian Những thuật toán khai phá luật kết hợp không gian tương tự như khai phá luật kết hợp nhưng thêm những vị từ về không gian
CSDL có yếu tố thời gian (Time – series databases): Giống như cơ sở dữ
liệu không gian, cơ sở dữ liệu có yếu tố thời gian bao gồm hai phần: Phần thứ nhất là dữ liệu quan hệ hay giao tác, phần thứ hai là thông tin về thời gian xuất hiện dữ liệu ở phần thứ nhất Những luật kết hợp có yếu tố thời gian có nhiều thông tin hơn những luật kết hợp cơ bản
CSDL đa phương tiện (Multimedia databases): CSDL được tích hợp gồm
nhiều dạng khác nhau như: âm thanh, hình ảnh, văn bản
1.2 Ứng dụng của khai phá dữ liệu
Khai phá dữ liệu được vận dụng trong nhiều lĩnh vực khác nhau, nhằm khai thác nguồn dữ liệu phong phú được lưu trữ trong các hệ thống thông tin Tùy theo bản chất của từng lĩnh vực, việc vận dụng khai phá dữ liệu có những cách tiếp cận khác nhau
Ngân hàng: Xây dựng mô hình dự báo rủi ro tín dụng; tìm kiếm tri thức,
quy luật của thị trường chứng khoán và đầu tư bất động sản
Trang 25Thương mại điện tử: Tìm hiểu, định hướng thúc đẩy, giao tiếp với khách
hàng; Phân tích hành vi mua sắm trên mạng và cho biết thông tin tiếp thị phù hợp với nhiềuloại khách hàng
Marketing: Phân tích nhu cầu khách hàng dựa trên mẫu dữ liệu mua bán
hang từ đó xác định chiến lược kinh doanh, quảng cáo, kế hoạch sản xuất …
Khai phá dữ liệu cũng được vận dụng hiệu quả để giải quyết các bài toán phức tạp trong các ngành đòi hỏi kỹ thuật cao, như tìm kiếm mỏ dầu từ ảnh viễn thám, cảnh báo hỏng hóc trong các hệ thống sản xuất, … Các kỹ thuật khai phá
dữ liệu đã được áp dụng thành công trong việc dự đoán tải sử dụng điện năng cho các công ty cung cấp điện, lưu lượng viễn thông cho các công ty điện thoại, mức độ tiêu thụ sản phẩm cho các nhà sản xuất, giá trị của sản phẩm trên thị trường cho các công ty tài chính…
Ngoài ra, khai phá dữ liệu còn được áp dụng cho các vấn đề xã hội như phân tích các kết quả phòng chống và điều trị một số loại bệnh, phân tích tác hại của ma tuý, phát hiện tội phạm hay tăng cường an ninh xã hội Việc vận dụng thành công đã mang lại những hiệu quả thiết thực cho các hoạt động diễn ra hàng ngày trong đời sống
1.3 Một số khó khăn và thách thức trong khai phá dữ liệu
Ở đây, ta đưa ra một số khó khăn trong việc nghiên cứu và ứng dụng kỹ thuật khai phá dữ liệu Tuy nhiên, thế không có nghĩa là việc giải quyết là hoàn toàn bế tắc mà chỉ muốn nêu lên rằng để khai phá được dữ liệu không phải đơn giản, mà phải xem xét cũng như tìm cách giải quyết những vấn đề này Ta có thể liệt kê một số khó khăn như sau:
1.3.1 Các vấn đề về cơ sở dữ liệu
Đầu vào chủ yếu của một hệ thống khai thác tri thức là các dữ liệu thô; cơ
sở phát sinh trong khai phá dữ liệu chính là từ đây Các dữ liệu trong thực tế thường động, không đầy đủ, lớn và bị nhiễu Trong những trường hợp khác, người ta không biết cơ sở dữ liệu có chứa các thông tin cần thiết cho việc khai
Trang 26thác hay không và làm thế nào để giải quyết với sự dư thừa những thông tin không thích hợp này
Dữ liệu lớn: Cho đến nay, các cơ sở dữ liệu với hàng trăm trường và
bảng, hàng triệu bản ghi và với kích thước đến gigabytes đã là chuyện bình thường Hiện nay đã bắt đầu xuất hiện các cơ sở dữ liệu có kích thước tới terabytes Các phương pháp giải quyết hiện nay là đưa ra một ngưỡng cho cơ sở
dữ liệu, lấu mẫu, các phương pháp xấp xỉ, xử lý song song (Agrawal et al, Holsheimer et al)
Kích thước lớn: Không chỉ có số lượng bản ghi lớn mà số các trường
trong cơ sở dữ liệu cũng nhiều Vì vậy mà kích thước của bài toán trở nên lớn hơn Một tập dữ liệu có kích thước lớn sinh ra vấn đề làm tăng không gian tìm kiếm mô hình suy diễn Hơn nữa, nó cũng làm tăng khả năng một giải thuật khai phá dữ liệu có thể tìm thấy các mẫu giả Biện pháp khắc phục là làm giảm kích thước tác động của bài toán và sử dụng các tri thức biết trước để xác định các biến không phù hợp
Dữ liệu động: Đặc điểm cơ bản của hầu hết các cơ sở dữ liệu là nội dung
của chúng thay đổi liên tục Dữ liệu có thể thay đổi theo thời gian và việc khai phá dữ liệu cũng bị ảnh hưởng bởi thời điểm quan sát dữ liệu Ví dụ trong cơ sở
dữ liệu về tình trạng bệnh nhân, một số giá trị dữ liệu là hằng số, một số khác lại thay đổi liên tục theo thời gian (ví dụ cân nặng và chiều cao), một số khác lại thay đổi tùy thuộc vào tình huống và chỉ có giá trị được quan sát mới nhất là đủ (ví dụ nhịp đập của mạch) Vậy thay đổi dữ liệu nhanh chóng có thể làm cho các mẫu khai thác được trước đó mất giá trị Hơn nữa, các biến trong cơ sở dữ liệu của ứng dụng đã cho cũng có thể bị thay đổi, bị xóa hoặc là tăng lên theo thời gian Vấn đề này được giải quyết bằng các giải pháp tăng trưởng để nâng cấp các mẫu và coi những thay đổi như là cơ hội để khai thác bằng cách sử dụng nó
để tìm kiếm các mẫu bị thay đổi
Các trường không phù hợp: Một đặc điểm quan trọng khác là tính không
thích hợp của dữ liệu, nghĩa là mục dữ liệu trở thành không thích hợp với trọng tâm hiện tại của việc khai thác Một khía cạnh khác đôi khi cũng liên quan đến
độ phù hợp là tính ứng dụng của một thuộc tính đối với một tập con của cơ sở
dữ liệu Ví dụ trường số tài khoản Nostro không áp dụng cho các tác nhân
Các giá trị bị thiếu: Sự có mặt hay vắng mặt của giá trị các thuộc tính dữ
liệu phù hợp có thể ảnh hưởng đến việc khai phá dữ liệu Trong hệ thống tương
Trang 27nó hoặc kiểm tra để xác định giá trị của nó Hoặc cũng có thể sự vắng mặt của
dữ liệu được coi như một điều kiện, thuộc tính bị mất có thể được coi như một giá trị trung gian và là giá trị không biết
Các trường bị thiếu: Một quan sát không đầy đủ cơ sở dữ liệu có thể làm
cho các dữ liệu có giá trị bị xem như có lỗi Việc quan sát cơ sở dữ liệu phải phát hiện được toàn bộ các thuộc tính có thể dùng để giải thuật khai phá dữ liệu
có thể áp dụng nhằm giải quyết bài toán Giả sử ta có các thuộc tính để phân biệt các tình huống đáng quan tâm Nếu chúng không làm được điều đó thì có nghĩa
là đã có lỗi trong dữ liệu Đối với một hệ thống học để chuẩn đoán bệnh sốt rét
từ một cơ sở dữ liệu bệnh nhân, thì trường hợp các bản ghi của bệnh nhân có triệu chứng giống nhau nhưng lại có các chẩn đoán khác nhau là do trong dữ liệu
đã bị lỗi Đây cũng là vấn đề thường xảy ra trong cơ sở dữ liệu kinh doanh Các thuộc tính quan trọng có thể sẽ bị thiếu nếu dữ liệu không được chuẩn bị cho việc khai phá dữ liệu
Độ nhiễu và không chắc chắn: Đối với các thuộc tính đã thích hợp, độ
nghiêm trọng của lỗi phụ thuộc vào kiểu dữ liệu của các giá trị cho phép Các giá trị của các thuộc tính khác nhau có thể là các số thực, số nguyên, chuỗi và có thể thuộc vào tập các giá trị định danh Các giá trị định danh này có thể sắp xếp theo thứ tự từng phần hoặc đầy đủ, thậm chí có thể có cấu trúc ngữ nghĩa Một yếu tố khác của độ không chắc chắn chính là tính kế thừa hoặc độ chính xác mà
dữ liệu cần có, nói cách khác là độ nhiễu trên các phép đo và phân tích có ưu tiên, mô hình thống kê mô tả tính ngẫu nhiên được tạo ra và được sử dụng để định nghĩa độ mong muốn và độ dung sai của dữ liệu Thường thì các mô hình thống kê được áp dụng theo cách đặc biệt để xác định một cách chủ quan các thuộc tính, đạt được các thống kê và đánh giá khả năng chấp nhận của các (hay
tổ hợp các) giá trị thuộc tính Đặc biệt là với dữ liệu kiểu số, sự đúng đắn của dữ liệu có thể là một yếu tố trong việc khai phá Ví dụ như trong việc đo nhiệt độ cơ thể, ta thường cho phép chênh lệch 0.1 độ Nhưng việc phân tích theo xu hướng nhạy cảm nhiệt độ của cơ thể lại yêu cầu độ chính xác cao hơn Để một hệ thống khai thác có thể liên hệ đến xu hướng này để chuẩn đoán thì lại cần có một độ nhiễu trong dữ liệu đầu vào
Mối quan hệ phức tạp giữa các trường: Các thuộc tính hoặc các giá trị có
cấu trúc phân cấp, các mối quan hệ giữa các thuộc tính và các phương tiện phức tạp để diễn tả tri thức về nội dung của cơ sở dữ liệu yêu cầu các giải thuật phải
có khả năng sử dụng một cách hiệu quả các thông tin này Ban đầu, kỹ thuật khai phá dữ liệu chỉ được phát triển cho các bản ghi có giá trị thuộc tính đơn
Trang 28giản Tuy nhiên, ngày nay người ta đang tìm cách phát triển các kỹ thuật nhằm rút ra mối quan hệ giữa các biến này
1.3.2 Một số vấn đề khác
“Quá phù hợp” (Overfitting): Khi một giải thuật tìm kiếm các tham số tốt
nhất cho đó sử dụng một tập dữ liệu hữu hạn, nó có thể sẽ bị tình trạng “quá độ”
dữ liệu (nghĩa là tìm kiếm quá mức cần thiết gây ra hiện tượng chỉ phù hợp với các dữ liệu đó mà không có khả năng đáp ứng cho các dữ liệu lạ), làm cho mô hình hoạt động rất kém đối với các dữ liệu thử Các giải pháp khắc phục bao gồm đánh giá chéo (cross-validation), thực hiện theo nguyên tắc nào đó hoặc sử dụng các biện pháp thống kê khác
Đánh giá tầm quan trọng thống kê: Vấn đề (liên quan đến overfitting) xảy
ra khi một hệ thống tìm kiếm qua nhiều mô hình Ví dụ như nếu một hệ thống kiểm tra N mô hình ở mức độ quan trọng 0,001 thì với dữ liệu ngẫu nhiên trung bình sẽ có N/1000 mô hình được chấp nhận là quan trọng Để xử lý vấn đề này,
ta có thể sử dụng phương pháp điều chỉnh thống kê trong kiểm tra như một hàm tìm kiếm, ví dụ như điều chỉnh Bonferroni đối với các kiểm tra độc lập
Khả năng biểu đạt của mẫu: Trong rất nhiều ứng dụng, điều quan trọng là
những điều khai thác được phải cáng dễ hiểu với con người càng tốt Vì vậy, các giải pháp thường bao gồm việc diễn tả dưới dạng đồ họa, xây dựng cấu trúc luật với các đồ thị có hướng (Gaines), biểu diễn bằng ngôn ngữ tự nhiên (Matheus et al.) và các kỹ thuật khác nhằm biểu diễn tri thức và dữ liệu
Sự tương tác với người sử dụng và các tri thức sẵn có: Rất nhiều công cụ
và phương pháp khai phá dữ liệu không thực sự tương tác với người dùng và không dễ dàng kết hợp cùng với các tri thức đã biết trước đó Việc sử dụng tri thức miền là rất quan trọng trong khai phá dữ liệu Đã có nhiều biện pháp nhằm khắc phục vấn đề này như sử dụng cơ sở dữ liệu suy diễn để phát hiện tri thức, những tri thức này sau đó được sử dụng để hướng dẫn cho việc tìm kiếm khai phá dữ liệu hoặc sử dụng sự phân bố và xác suất dữ liệu trước đó như một dạng
mã hóa tri thức có sẵn
Trang 29dữ liệu, khai phá các luật kết hợp là một trong những lĩnh vực đang đƣợc quan tâm và nghiên cứu rộng rãi
Trang 30CHƯƠNG 2: LUẬT KẾT HỢP TRONG KHAI PHÁ DỮ LIỆU
2
2.1 Bài toán kinh điển dẫn đến việc khai phá luật kết hợp
Bài toán giỏ mua hàng trong siêu thị: 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ác đồng thời Nhiệm vụ chính của khai phá luật kết hợp là phát hiện ra các tập con cùng xuất hiện trong một khối lượng giao dịch lớn của một cơ sở dữ liệu cho trước
2.2 Lý thuyết về luật kết hợp
Từ khi nó được giới thiệu từ năm 1993, bài toán khai thác luật kết hợp nhận được rất nhiều sự quan tâm của nhiều nhà khoa học Ngày nay việc khai thác các luật như thế vẫn là một trong những phương pháp khai thác mẫu phổ biến nhất trong việc khám phá tri thức và khai thác dữ liệu (KDD: Knowledge Discovery and Data Mining)
Một cách ngắn gọn, một luật kết hợp là một biểu thức có dạng: X => Y, trong đó X và Y là tập các trường gọi là item
Trong phần này, chúng ta xem xét một số định nghĩa, tính chất có liên quan đến luật và luật kết hợp Đồng thời chúng ta tìm hiểu ý nghĩa của luật kết hợp
Trang 312.2.1 Luật kết hợp
2.2.1.1 Ý nghĩa
Luật kết hợp là một lĩnh vực quan trọng trong khai thác dữ liệu Luật kết
hợp giúp chúng ta tìm được các mối liên hệ giữa các mục dữ liệu (items) của cơ
sở dữ liệu
2.2.1.2 Định nghĩa
Cho một tập I = {I1, I2, ,Im} là tập gồm m khoản mục (item), còn được gọi là các thuộc tính (attribute) Các phần tử trong I là phân biệt nhau X I được gọi là tập mục (itemset) Nếu lực lượng của X bằng k (tức là |X| = k) thì X được gọi là k-itemset
Một giao dịch (transaction) T được định nghĩa như một tập con (subset) của các khoản mục trong I (T I) Tương tự như khái niệm tập hợp, các giao dịch không được trùng lặp, nhưng có thể nới rộng tính chất này của tập hợp và trong các thuật toán sau này, người ta đều giả thiết rằng các khoản mục trong một giao dịch và trong tất cả các tập mục (item set) khác, có thể coi chúng đã được sắp xếp theo thứ tự từ điển của các item
Gọi D là CSDL của n giao dịch và mỗi giao dịch được đánh nhãn với một định danh duy nhất (Unique Transasction IDentifier-TID) Nói rằng, một giao dịch T D hỗ trợ (support) cho một tập X I nếu nó chứa tất cả các item của
X, nghĩa là X T, trong một số trường hợp người ta dùng ký hiệu T(X) để chỉ tập các giao dịch hỗ trợ cho X Kí hiệu support(X) (hoặc supp(X), s(X)) là tỷ lệ phần trăm của các giao dịch hỗ trợ X trên tổng các giao dịch trong D, nghĩa là:
D
T X D
%
Ví dụ về cơ sở dữ liệu D (dạng giao dịch): I = {A, B, C, D, E}, T = {1, 2,
3, 4, 5, 6} Thông tin về các giao dịch cho ở bảng sau:
Trang 32Tập phổ biến (frequent itemset):
Support tối thiểu minsup ( 0, 1] (Minimum Support) là một giá trị cho
trước bởi người sử dụng Nếu tập mục X I có supp(X) minsup thì ta nói X là một tập phổ biến-frequent itemset (hoặc large itemset) Một frequent itemset được sử dụng như một tập đáng quan tâm trong các thuật toán, ngược lại, những tập không phải frequent itemset là những tập không đáng quan tâm Trong các trình bày sau này, ta sẽ sử dụng những cụm từ khác như “X có support tối thiểu”, hay “X không có support tối thiểu” cũng để nói lên rằng X thỏa mãn hay không thỏa mãn support(X) minsupp
Ví dụ: Với cơ sở dữ liệu D cho ở bảng 1, và giá trị ngưỡng minsupp =
50% sẽ liệt kê tất cả các tập phổ biến (frequent-itemset) như sau:
tương ứng
A, C, D, AB, AE, BC, BD, ABE 67% (4/6)
AD, CE, DE, ABD, ADE, BCE, BDE 50% (3/6)
Bảng 2.2 Các tập phổ biến trong CSDL ở bảng 1 với độ hỗ trợ tối thiểu 50%
Trang 33Một số tính chất (TC) liên quan đến các frequent itemset:
TC1 support cho tất cả các subset: Nếu A B, A, B là các itemset thì
supp(A) supp(B) vì tất cả các giao dịch của D support B thì cũng support A
TC2 Nếu một item A không có support tối thiểu trên D nghĩa là
support(A) < minsupp thì một superset B của A sẽ không phải là một frequent vì support(B) support(A) < minsup
TC3 Nếu item B là frequent trên D, nghĩa là support(B) minsup thì mọi
subset A của B là frequent trên D vì support(A) support(B) > minsup
Định nghĩa luật kết hợp:
Một luật kết hợp có dạng R: X Y, trong đó X, Y là các itemset, X, Y
I và X Y = X được gọi là tiên đề và Y được gọi là hệ quả của luật
Luật X Y tồn tại một độ hỗ trợ support - supp Supp(X Y) được định nghĩa là khả năng mà tập giao dịch hỗ trợ cho các thuộc tính có trong cả X lẫn Y, nghĩa là:
Support(XY) = support(XY)
Luật X Y tồn tại một độ tin cậy c (confidence - conf) Conf c được định nghĩa là khả năng giao dịch T hỗ trợ X thì cũng hỗ trợ Y Nói cách khác c biểu thị số phần trăm giao dịch có chứa luôn A trong số những giao dịch có chứa
X
Ta có công thức tính conf c như sau:
conf(X Y) = p(Y T| X T) =
) ( sup
) (
sup )
(
) T X (
X p
Y X p T
X p
T Y
Ta nói rằng, luật X Y là thoả trên D nếu với một support tối thiểu
minsup và một ngưỡng confidence tối thiểu minconf cho trước nào đó mà:
Support(X Y) ≥ minsup và confidence(X Y) ≥ minconf Chú ý rằng, nếu luật XY mà thoả trên D thì cả X và Y đều phải là các Frequent Itemset trên D và khi xét một luật có thoả hay không, thì cả support và
confidence của nó đều phải quan tâm, vì một luật có thể có confidence = 100%
> minconf nhưng có thể là nó không đạt support tối thiểu minsup
Trang 341) Nếu X Z và YZ là thoả trên D, thì không nhất thiết là XYZ
Để ý đến trường hợp X Y = và các giao dịch trên D hỗ trợ Z nếu và chỉ nếu chúng hỗ trợ X hoặc hỗ trợ Y Khi đó, support(XY) = 0 và cofidence(XY) = 0
Tương tự ta cũng có: Nếu XY và XZ không thể suy ra XYZ 2) Nếu luật XYZ là thoả trên D thì XZ và YZ có thể không thoả trên D
Chẳng hạn, khi Z là có mặt trong một giao dịch chỉ nếu cả X và Y đều có mặt trong giao dịch đó, nghĩa là support(XY)=support(Z) Nếu support cho X
và Y lớn hơn support(XY), thì 2 luật trên sẽ không có confidence yêu cầu Tuy nhiên, nếu XYZ là thoả trên D thì có thể suy ra XY và XZ cũng thoả trên D Vì support(XY) ≥ support(XYZ) và support(XZ) ≥ support(XYZ)
3) Nếu XY và YZ là thoả trên D thì không thể khẳng định rằng
XZ cũng giữ được trên D
Giả sử T(X)T(Y) T(Z) và confidence(XY) = confidence(YZ) = minconf Khi đó ta có confidence(XZ) = minconf2 < minconf vì minconf <1, nghĩa là luật XZ không có confidence tối thiểu
4) Nếu luật A (L-A) không có confidence tối thiểu thì cũng không có luật nào trong các luật B (L-B) có confidence tối thiểu trong đó L-A, B là các intemset và BA
Thật vậy, theo tính chất TC1, vì BA Nên support(B) ≥ support(A) và theo định nghĩa của confidence, ta có:
confidence(B (L-B)) =
) ( sup
) ( sup
B port
L port
) ( sup
) ( sup
A port L port <minconf
Trang 35Cũng vậy, nếu luật (L-C) C là thoả trên D, thì các luật (L-K) K với
KC và K cũng thoả trên D
Bài toán khai phá luật kết hợp:
Có thể diễn đạt một bài toán khai phá luật kết hợp như sau:
Cho một tập các item I, một cơ sở dữ liệu giao dịch D, ngưỡng support tối thiểu minsup, ngưỡng confidence tối thiểu minconf, tìm tất cả các luật kết hợp
XY trên D sao cho support(XY) minsup và confidence(XY)
minconf
2.3 Đặc tả bài toán khai phá luật kết hợp
Với các định nghĩa trên, ta có thể mô tả cấu trúc cơ bản của một thuật toán khai phá luật kết hợp Mặc dù, trong thực tế, các thuật toán có thể có sự khác nhau về một số vấn đề, nhưng về cơ bản thì chúng tuân theo một lược đồ chung
Có thể tóm tắt lược đồ qua 2 giai đoạn chính sau:
Pha 1: Khai phá tất cả các tập phổ biến-Frequent itemset (Large itemset) Như đã lưu ý trước đây, số lượng các tập frequent có khả năng tương đương với kích thước mũ của tập các item, trong đó hàm mũ tăng theo số các item Phương pháp cơ bản trong mỗi thuật toán là tạo một tập các itemset gọi là candidate với
hi vọng rằng nó là frequent
Điều mà bất kì thuật toán nào cũng phải quan tâm là làm sao để tập các candidate này càng nhỏ càng tốt vì nó liên quan chi phí bộ nhớ để lưu trữ các tập candidate này chi phí thời gian cho việc kiểm tra nó là một Frequent itemset hay không
Để tìm ra những candidate itemset là frequent với các support cụ thể của
nó là bao nhiêu thì support của mỗi tập candidate phải được đếm bởi mỗi giai đoạn trên CSDL (tức là thực hiện một phép duyệt trên từng giao dịch của cơ sở
dữ liệu để tính giao dịch support cho mỗi candidate itemset)
Công việc khai phá các Frequent Itemset được thực hiện lặp đi lặp lại qua một giai đoạn (pass) nhằm mục đích nhận được kết quả cuối cùng là mỗi Frequen Itemset biểu thị tốt nhất sự tương quan giữa các item trong cơ sở dữ liệu giao dịch D
Pha 2: Khai phá luật kết hợp (sinh ra các luật kết hợp mạnh từ các tập mục phổ biến)
Trang 36Sau khi xác định được tập Frequent Itemset cuối cùng, người ta thực hiện tiếp thuật toán sinh ra các luật dựa trên mỗi frequent itemset này đồng thời xác định luôn confidence của chúng trên cơ sở các số đếm support của mỗi frequent itemset và subset của mỗi frequent itemset Với mỗi frequent itemset X, mỗi subset riêng biệt của nó là được chọn như là tiền đề của luật và các item còn lại thì được đưa vào hệ quả của luật, do X chính nó là một frequent, và tất cả các
subset của nó cũng là Frequent (theo tính chất TC3 mục 2.2.1.2) Mỗi luật được
sinh ra như trên có được chấp nhận hay không chấp nhận còn phụ thuộc vào mức confidence tối thiểu (minconf) mà người sử dụng chỉ ra Một luật sẽ được coi là chấp nhận nếu confidence của nó lớn hơn hoặc bằng cofidence tối thiểu này Theo tính chất TC4, mục 1.2, nếu một luật là không được chấp nhận thì không có một subset nào của tiền tố của nó là có thể cân nhắc để sinh thêm các luật khác
Nói chung thì tư tưởng sinh ra luật kết hợp có thể mô tả như sau:
Nếu ABCD và AB là các frequent itemset thì ta có thể xác định xem luật
ABCD có được xem là chấp nhận hay không bằng cách tính confidence của
nó theo định nghĩa conf =
) ( sup
) (
sup
AB port
ABCD port Nếu conf minconf thì luật được coi
là chấp nhận được (để ý rằng luật là thoả mãn yếu tố support vì support (ABCD) = support(ABCD) minsup)
2.4 Một số thuật toán khai phá luật kết hợp
2.4.1 Tìm tập mục phổ biến (Pha 1)
Phát hiện tập mục phổ biến là bước quan trọng và mất nhiều thời gian nhất trong quá trình khai phá luật kết hợp trong cơ sở dữ liệu
2.4.1.1 Thuật toán Apriori
Apriori là thuật toán được Rakesh Agrawal, Tomasz Imielinski, Arun Swami đề xuất lần đầu vào năm 1993
Trang 37Một số ký hiệu dùng trong thuật toán được mô tả trong bảng sau:
k-itemset Tập mục có k mục
Lk Tập các k-mục phổ biến (large k-itemset) (tức tập các itemset
có độ hỗ trợ lớn hơn hoặc bằng minsup và có lực lượng bằng k) Mỗi phần tử của tập này có hai trường:
- Tập mục (itemset)
- Độ hỗ trợ tương ứng (support-count (SC))
Ck Tập các tập k-itemset ứng cử viên (gọi là tập các tập phổ biến
tiềm năng) Mỗi phần tử của tập này có hai trường:
- Tập mục (itemset)
- Đỗ hỗ trợ tương ứng (support-count (SC))
Bảng 2.3 Một số ký hiệu dùng trong thuật toán Apriori
Nội dung thuật toán Apriori được trình bày như sau:
Dữ liệu vào: Tập các giao dịch D, ngưỡng support tối thiểu minsup
Dữ liệu ra: L- tập mục phổ biến trong D
Phương pháp:
L1={large 1-itemset} //tìm tất cả các tập mục phổ biến: nhận được L1
for (k=2; Lk-1 ; k++) do
begin
Ck=apriori-gen(Lk-1); //sinh ra tập ứng cử viên từ Lk-1
for (mỗi một giao dịch TD) do
Trang 38c.count++; //tăng bộ đếm tần xuất 1 đơn vị
support-các item mà độ hỗ trợ của nó lớn hơn hoặc bằng minsup
Trong mỗi giai đoạn tiếp theo, người ta bắt đầu với tập các tập phổ biến
đã tìm được trong giai đoạn trước để lại sinh ra tập các tập mục có khả năng là phổ biến mới (gọi là tập các ứng cử viên - candidate itemset) và thực hiện đếm support-count cho mỗi tập các ứng cử viên trong tập này bằng một phép duyệt trên cơ sở dữ liệu Tại điểm kết của mỗi giai đoạn, người ta xác định xem trong các tập ứng viên này, tập nào là phổ biến và lập thành tập các tập phổ biến cho giai đoạn tiếp theo Cụ thể là, 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 (k-1)-itemset trong tập Lk-1 được sử dụng để sinh ra các ứng viên Ck, bằng cách thực hiện hàm apriori_gen Tiếp theo cơ sở
dữ liệu D sẽ được quét để tính độ hỗ trợ cho mỗi ứng viên trong Ck Để việc đếm được nhanh, cần phải có một giải pháp hiệu quả để xác định các ứng viên trong
Ck là có mặt trong một giao dịch T cho trước Tiến trình này sẽ được tiếp tục cho đến khi không tìm được một tập phổ biến nào mới hơn nữa
Để tìm hiểu các thuật toán, ta giả sử rằng, các item trong mỗi giao dịch
đã được sắp xếp theo thứ tự từ điển (người ta sử dụng khái niệm từ điển ở đây
để diễn đạt một thứ tự quy ước nào đó trên các item của cơ sở dữ liệu) Mỗi bản ghi - record của cơ sở dữ liệu D có thể coi như là một cặp <TID, itemset> trong
đó TID là định danh cho giao dịch Các item trong một itemset cũng được lưu theo thứ tự từ điển, nghĩa là nếu kí hiệu k item cử một k-itemset c là c[1], c[2],
…, c[k], thì c[1] < c[2] < … < c[k] Nếu c = X.Y và Y là một m-itemset thì Y cũng được gọi là m-extension (mở rộng) của X Trong lưu trữ, mỗi itemset có một trường support-count tương ứng, đây là trường chứa số đếm độ hỗ trợ cho tập mục này
Vấn đề sinh tập ứng viên (candidate) của Apriori dùng hàm apriori_gen:
Trang 39Hà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 siêu tập - superset, tức là tập của tất cả các large k–itemset Sơ đồ sau là thuật toán cho hàm này:
Dữ liệu vào: tập mục phổ biến Lk-1 có kích thước (k-1)
Dữ liệu ra: tập ứng cử viên Ck
c = L1 L2; // kết nối L1 với L2 sinh ra ứng cử viên c
if has_infrequent_subset(c, Lk-1) then
remove (c); // bước tỉa (xoá ứng cử viên c)
else Ck = Ck {c}; //kết tập c vào Ck
end return Ck;
end
Hàm has_infrequent_subset kiểm tra tập con (k-1)-item của ứng cử viên
k-item không là tập phổ biến:
Trang 40function has_infrequent_subset(c: ứng viên k-item; Lk-1 tập phổ biến 1)-item)
(k-begin
//sử dụng tập mục phổ biến trước
if s Lk-1 then return TRUE;
Có thể mô tả hàm apriori_gen gồm 2 bước sau:
Bước nối (join step): tìm Lk là tập k-item ứng viên được sinh ra bởi việc kết nối Lk-1 với chính nó cho kết quả là Ck Giả sử L1, L2 thuộc Lk-1 Ký hiệu Lij
là mục thứ j trong Li Điều kiện là các tập mục hay các mục trong giao dịch có thứ tự Bước kết nối như sau: Các thành phần Lk-1 kết nối (nếu có chung (k-2)-item đầu tiên) tức là:
(L1[1]=L2[1]) (L1[2]=L2[2]) (L1[k-2]=L2[k-2]) (L1[k-1]=L2[k-1])
Bước tỉa (prune step): Ck là tập chứa Lk (có thể là tập phổ biến hoặc không) nhưng tất cả tập k-item phổ biến được chứa trong Ck Bước này, duyệt lần hai cơ sở dữ liệu để tính độ hỗ trợ cho mỗi ứng cử trong Ck sẽ nhận được Lk Tuy nhiên để khác phục khó khăn, giải thuật Apriori sử dụng các tính chất:
1 - Tất cả các tập con khác rỗng của một tập mục phổ biến là phổ biến;
2 - Nếu L là tập mục không phổ biến thì mọi tập chứa nó không phổ biến Trong bước này, ta cần loại bỏ tất cả các k-itemset cCk mà chúng tồn tại một (k-1)-itemset không có mặt trong Lk-1 Giải thích điều này như sau: giả sử s
là một (k-1)-itemset của c mà không có mặt trong Lk-1 Khi đó, sup(s) < minsup
Mặt khác, cs nên sup(c)< sup(s) < minsup Vậy c không thể là một tập phổ biến, nó cần phải loại bỏ khỏi Ck Việc kiểm tra các tập con (k-1)-itemset có thể được thực hiện một cách nhanh chóng bằng cách duy trì một cây băm của tất
cả các tập mục phổ biến tìm thấy