Tải bản đầy đủ (.doc) (52 trang)

giáo trình khai phá dữ liệu

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (386.18 KB, 52 trang )

Bài giảng Khai phá dữ liệu
MỤC LỤC
MỤC LỤC 1
CHƯƠNG I. TỔNG QUAN 3
1. Các Khái Niệm Cơ Bản 3
1.1. Khai phá dữ liệu (Data Mining) 3
1.2. Lịch sử phát triển KPDL 4
1.3. Tại sao dùng khai phá dữ liệu 5
2. Các Công Đoạn Khám Phá Tri Thức Từ Cơ Sở Dữ Liệu 6
2.1. Chọn lọc dữ liệu 7
2.2. Làm sạch dữ liệu 7
2.3. Mã hóa dữ liệu 8
2.4. Khai phá dữ liệu 8
2.5. Trình diễn dữ liệu 8
3. Ứng Dụng Của Khai Phá Dữ Liệu 8
3.1. Ngân hàng 8
3.2. Thương mại điện tử 8
3.3. Công nghệ sinh học và dược phẩm 8
3.4. Nhân sự 9
4. Khái Quát Các Kỹ Thuật Khai Phá Dữ Liệu 9
4.1.Khai thác tập phổ biến và luật kết hợp 9
4.2. Khai thác mẫu tuần tự 9
4.3. Phân lớp dữ liệu 9
4.4. Khai thác cụm 10
5. Những Thách Thức Trong Khai Phá Dữ Liệu 10
CHƯƠNG II. TẬP PHỔ BIẾN VÀ LUẬT KẾT HỢP 11
1. Bài Toán Khai Thác Tập Phổ Biến 11
1.1. Các khái niệm cơ bản 11
1.2. Phát biểu bài toán và độ phức tạp 13
2. Phát Triển Thuật Giải Không Tăng Cường Để Tìm Tập Phổ Biến 13
2.1. Các khái niệm cơ bản 13


2.2. Phát triển thuật toán không tăng cường để tìm tập phổ biến 15
3. Tìm Tập Phổ Biến Tối Đại 18
3.1. Tìm tập phổ biến tối đại bằng đồ thị liên kết các tập phổ biến 18
3.2. Quan hệ giữa bao đóng và tập phổ biến tối đại 19
3.3. Dùng bao đóng để giảm số lượng ứng viên cần tính độ phổ biến 19
1
Bài giảng Khai phá dữ liệu
4. Phát Triển Thuật Giải Tăng Cường Để Tìm Tập Phổ Biến 22
4.1. Các khái niệm cơ bản 22
4.2. Dùng thuật toán tạo dàn khái niệm để tìm tập phổ biến 25
4.3. Duyệt dàn khái niệm tìm tập phổ biến bị đóng 28
4.4. Tìm các tập không phổ biến từ dàn khái niệm 28
5. Phát Triển Thuật Giải Tìm Luật Kết Hợp 29
5.1. Các khái niệm cơ bản 29
5.2. Phát biểu bài toán tìm luật kết hợp 29
CHƯƠNG III. DÃY PHỔ BIẾN 33
1. Dãy Phổ Biến Trong Một Chuỗi 33
1.1. Các khái niệm cơ bản 33
1.2. Dãy phổ biến trong một chuỗi 33
1.3. Các loại episode 33
1.4. Tiếp cận WINEPI 34
1.5. Tần suất 35
1.6. Luật Episode 35
1.7. Thuật toán WINEPI 35
2. Dãy Phổ Biến Trong Nhiều Chuỗi 38
2.1. Bài toán tìm dãy phổ biến trong nhiều chuỗi 38
2.2. Thuật toán AprioriAll 39
CHƯƠNG IV. PHÂN LỚP DỮ LIỆU 43
1. Phân Lớp Quy Nạp Trên Cây Quyết Định 43
2. Phương Pháp Phân Lớp Bayes 47

2.1. Sự phân hoạch và công thức Bayes 47
2.2. Bộ phân lớp Naïve Bayes 47
3. Các Phương Pháp Phân Lớp Khác 49
3.1. Phân lớp bằng mạng nơron lan truyền ngược 49
3.2. Phân lớp dựa trên luật kết hợp 50
3.3. Thuật giải di truyền 50
3.4. Tiếp cận tập thô 50
TÀI LIỆU THAM KHẢO 52
2
Bài giảng Khai phá dữ liệu
CHƯƠNG I. TỔNG QUAN
Nội dung chương này gồm:
• Các khái niệm cơ bản về khai phá dữ liệu.
• Các công đoạn khám phá tri thức từ cơ sở dữ liệu.
• Ứng dụng và các kỹ thuật của khai phá dữ liệu.
1. Các Khái Niệm Cơ Bản
1.1. Khai phá dữ liệu (Data Mining)
Công nghệ thông tin, Internet, Intranet, kho dữ liệu, cùng với công nghệ lưu
trữ tiên tiến hiện nay đã tạo điều kiện cho các doanh nghiệp, các tổ chức thu thập và
sở hữu được khối lượng thông tin khổng lồ. Để khai thác hiệu quả nguồn thông tin từ
các CSDL lớn đó để hỗ trợ cho tiến trình ra quyết định, bên cạnh các phương pháp
khai thác thông tin truyền thống, các nhà nghiên cứu đã phát triển các phương pháp,
kỹ thuật và phần mềm mới để hỗ trợ tiến trình khám phá, phân tích và tổng hợp
thông tin.
Theo đánh giá của IBM, các phương pháp khai thác thông tin truyền thống chỉ
thu được khoảng 80% thông tin từ CSDL, phần còn lại bao gồm các thông tin mang
tính khái quát, thông tin có quy luật vẫn đang còn tiềm ẩn bên trong dữ liệu. Lượng
thông tin này tuy nhỏ nhưng là thông tin cốt lõi và cần thiết cho tiến trình ra quyết
định.
Khai phá dữ liệu (KPDL) là tiến trình khám phá tri thức tiềm ẩn trong CSDL.

Cụ thể hơn, đó là tiến trình trích 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 hữu ích từ các CSDL lớn.
KPDL là tiến trình khái quát các sự kiện rời rạc trong dữ liệu thành các tri
thức mang tính khái quát, tính quy luật hỗ trợ tích cực cho các tiến trình ra quyết
định.
Nguồn dữ liệu phục vụ cho KPDL có thể là các CSDL lớn hay các kho dữ
liệu có hoặc không có cấu trúc. Nói như vậy không có nghĩa là KPDL không thể
thực hiện ở các CSDL nhỏ. KPDL chỉ thực sự phát huy tác dụng trên các CSDL lớn,
nơi mà khả năng diễn dịch và trực giác của con người cũng như các kỹ thuật truyền
thống không thể thực hiện nổi hoặc nếu thực hiện được thì hiệu quả không cao.
Có thể chia KPDL thành 2 dạng chính:
3
Bài giảng Khai phá dữ liệu
- KPDL theo hướng kiểm tra: người dùng đề xuất giả thiết, hệ thống kiểm
tra tính đúng đắn của giả thiết (bao gồm: truy vấn, báo cáo, phân tích đa chiều, phân
tích thống kê …).
- KPDL theo hướng khám phá: tìm kiếm các tri thức tiềm ẩn trong CSDL
bằng cách tiến hành xem xét tất cả các giả thiết khả dĩ. Do không gian tìm kiếm lớn,
nên rất nhiều heuristic đã được đề xuất nhằm nâng cao hiệu suất của các thuật giải
tìm kiếm.
Tri thức được rút ra có thể được dùng để:
- Giải thích dữ liệu: Cung cấp sự hiểu biết sâu sắc và rất hữu ích về hành vi
của các đối tượng, giúp cho các doanh nghiệp hiểu rõ hơn những khách hàng của họ.
- Dự báo: dự đoán giá trị của những đối tượng mới.
• Khuynh hướng mua hàng của khách hàng.
• Xác định rủi ro tín dụng đối với một khách hàng.
• Định hướng tập trung nguồn lực của doanh nghiệp.
Ngày nay, khi công cụ thu thập dữ liệu tự động và công nghệ lưu trữ dữ liệu
ngày càng hoàn thiện giúp con người tạo lập và quản lý một lượng dữ liệu khổng lồ
trong các CSDL, kho dữ liệu (data warehouse) thì nhu cầu nắm bắt dữ liệu, trích rút

thông tin trở thành cấp thiết và có ý nghĩa. Mặt khác, với nhu cầu ngày càng cao
hơn, con người không bằng lòng với những dữ liệu đơn giản thu được từ các kỹ thuật
trước đây. Từ nhu cầu về những sự kiện rời rạc trong lĩnh vực ứng dụng, nay phát
sinh nhu cầu nắm bắt tri thức về các mối quan hệ giữa chúng, xa hơn nữa là phát
hiện những quy luật trong lĩnh vực đó. KPDL ra đời nhằm đáp ứng các nhu cầu cấp
thiết đó.
1.2. Lịch sử phát triển KPDL
- Thập niên 1960: xuất hiện CSDL theo mô hình mạng và mô hình phân cấp.
- Thập niên 1970: thiết lập nền tảng lý thuyết cho CSDL quan hệ, các hệ
quản trị CSDL quan hệ.
- Thập niên 1980: hoàn thiện lý thuyết về CSDL quan hệ và các hệ quản trị
CSDL quan hệ, xuất hiện các hệ quản trị CSDL cao cấp (hướng đối tượng, suy diễn,
…) và hệ quản trị CSDL hướng ứng dụng trong lĩnh vực không gian, khoa học, công
nghiệp, nông nghiệp, địa lý, …
- Thập niên từ 1990 đến 2000: phát triển KPDL và kho dữ liệu, CSDL đa
phương tiện và CSDL web.
4
Bài giảng Khai phá dữ liệu
KPDL là một công đoạn trong tiến trình khám phá tri thức từ CSDL
(Knowledge Discovery in Database - KDD). KPDL mang tính trực giác, cho phép
thu được những hiểu biết rõ ràng và sâu sắc hơn, vượt xa kho dữ liệu.
KPDL giúp phát hiện những xu thế phát triển từ những thông tin quá khứ,
cũng như cho phép đề xuất các dự báo mang tính thống kê, gom cụm và phân loại dữ
liệu.
Vị trí của KPDL được thể hiện qua sơ đồ:
Hình 1. Vị trí của KPDL.
1.3. Tại sao dùng khai phá dữ liệu
KPDL là cần thiết với người dùng vì những lý do sau:
- Ngày càng có nhiều dữ liệu được lưu trữ trong các CSDL, kho dữ liệu và
hình thành một “mỏ vàng dữ liệu” chứa đầy các thông tin chiến lược mà các hệ

quản trị CSDL thông thường không thể phát hiện và quản trị được chúng.
- CSDL phát triển rất nhanh cả về kích thước lẫn số lượng. Không xét những
thông tin mang tính sự kiện được lưu trữ trong CSDL, những thông tin được suy
5
Tăng khả năng hỗ trợ
quyết định kinh doanh
Ra quyết
định
Trình bày dữ liệu
Các công cụ trực quan
Data Mining
Khảo sát dữ liệu
Phân tích, thống kê, truy vấn và báo cáo
Data Warehouse / Data Marts
OLAP , MDA
Nguồn dữ liệu
Giấy tờ, tập tin, trình cung cấp thông tin, hệ thống CSDL
Người dùng
Nhà phân tích
kinh doanh
Nhà phân tích
dữ liệu
DBA
Bài giảng Khai phá dữ liệu
diễn từ nó cũng hết sức lý thú. Tuy nhiên, với các quan hệ có số lượng khổng lồ các
bản ghi và có quá nhiều trường dữ liệu, việc duyệt hàng triệu bản ghi hay hàng trăm
trường tin để tìm ra các mẫu và các quy luật là một thách thức và trở ngại thật sự đối
với các nhà phân tích dữ liệu.
- Không phải người dùng nào cũng là nhà thống kê hay nhà phân tích dữ liệu
chuyên nghiệp.

- Sử dụng cho các trường hợp tìm kiếm nhưng chưa xác lập rõ hoặc chưa mô
tả được các điều kiện tìm kiếm. Nếu người dùng biết họ đang tìm kiếm gì thì dùng
SQL, nhưng nếu người dùng chỉ có một ý tưởng không rõ ràng, hoặc một cảm nhận
nào đó thì họ nên dùng KPDL.
KPDL là một công cụ hiệu quả trong các lĩnh vực:
- Sử dụng dữ liệu để xây dựng các mô hình dự báo:
• Khả năng dự báo tiềm ẩn trong dữ liệu.
• Gợi ý về các chiều và các nhóm dữ liệu có khả năng chứa các tri
thức hữu ích.
- Tạo tóm tắt và báo cáo rõ ràng:
• Tự động tìm những phân đoạn trong dữ liệu.
• Tìm ra những phân đoạn mà nhà phân tích chưa biết hoặc có hiểu
biết nhưng chưa rõ ràng.
- Cung cấp cơ chế hỗ trợ ra quyết định:
• Dự báo.
• Mô hình hóa.
2. Các Công Đoạn Khám Phá Tri Thức Từ Cơ Sở Dữ Liệu
Tiến trình khám phá tri thức từ CSDL bao gồm 3 công đoạn:
- Chuẩn bị dữ liệu
• Chọn lọc dữ liệu.
• Làm sạch dữ liệu.
• Làm giàu dữ liệu.
• Mã hóa dữ liệu.
- Khai thác dữ liệu
- Tường trình, báo cáo kết quả
Tại mỗi công đoạn, tiến trình có thể quay lui qua một hay nhiều giai đoạn. Ví
dụ, tại giai đoạn khám phá hay mã hóa dữ liệu, tiến trình vẫn có thể quay trở về giai
đoạn xóa bỏ dữ liệu, hay có thể quay trở về giai đoạn làm giàu dữ liệu nếu như có
được các dữ liệu mới để sử dụng chúng cho việc làm giàu các tập dữ liệu có sẵn.
6

Bài giảng Khai phá dữ liệu
2.1. Chọn lọc dữ liệu
Đây là giai đoạn chọn lọc, trích rút các dữ liệu cần thiết từ CSDL tác nghiệp
vào một CSDL riêng. Chúng ta chỉ chọn ra những dữ liệu cần thiết cho các giai đoạn
sau. Tuy nhiên, công việc thu gom dữ liệu vào một CSDL thường rất khó khăn vì dữ
liệu nằm rải rác khắp nơi trong cơ quan, tổ chức. Cùng một loại thông tin nhưng
được tạo lập theo các dạng thức khác nhau, ví dụ nơi này dùng kiểu chuỗi, nơi kia lại
dùng kiểu số để khai báo một thuộc tính nào đó của khách hàng.
2.2. Làm sạch dữ liệu
Phần lớn các CSDL đều ít nhiều mang tính không nhất quán. Do vậy, khi
KPDL trên các CSDL đó thường không đảm bảo tính đúng đắn. Ví dụ, trong các
công ty bảo hiểm nhân thọ thì ngày sinh của khách hàng cần phải thật chính xác,
trong khi đó có từ 30% - 40 % thông tin về tuổi khách hàng trong CSDL ngân hàng
để trống hoặc chứa dữ liệu sai. Điều này sẽ làm cho chúng ta không thể khám phá ra
mô hình về quan hệ tuổi tác.
Do đó, trước khi bắt đầu KPDL, chúng ta phải tiến hành xóa bỏ dữ liệu không
cần thiết, nói chung nên xóa bỏ dữ liệu sai càng nhiều càng tốt. Trong thực tế, giai
đoạn này được thực hiện nhiều lần, vì chỉ tại giai đoạn KPDL mới phát hiện được
tính bất thường trong dữ liệu. Có một số loại tiến trình xóa bỏ dữ liệu được thực thi ở
mức độ cao trong khi một số loại tiến trình khác chỉ được sử dụng sau khi phát hiện
ra lỗi tại giai đoạn mã hóa hay giai đoạn tìm kiếm.
a. Chống trùng lặp
Dạng lỗi thứ nhất khá quan trọng trong thao tác xóa bỏ dữ liệu đó là xóa bỏ
thông tin trùng của các bản ghi. Thao tác này diễn ra khi có những phần thông tin bị
trùng do có sai sót trong phần nhập dữ liệu, hoặc thông tin không được cập nhật kịp
thời hoặc thông tin được cung cấp bị sai.
b. Giới hạn vùng giá trị
Dạng lỗi thứ hai thường xảy ra đó là giá trị nằm ngoài miền giá trị cho phép,
nghĩa là các thông tin chứa các giá trị không hợp lệ theo một quy tắc nào đó. Dạng
lỗi này gây tác hại khá lớn vì rất khó phát hiện, nhưng lại có ảnh hưởng lớn đến dạng

thức các mẫu cần tìm khi thực hiện KPDL trên các bảng dữ liệu này. Từ đó sẽ xuất
hiện các mâu thuẫn trong các vùng dữ liệu.
Để sửa chữa mâu thuẫn, ta dùng giá trị NULL để thay thế vào những thông tin
chưa biết trong các trường của bảng và cứ tiến hành sửa chữa các mâu thuẫn.
c. Làm giàu dữ liệu
7
Bài giảng Khai phá dữ liệu
Mục đích của giai đoạn này là bổ sung thêm nhiều loại thông tin có liên quan
vào cơ sở dữ liệu gốc. Để làm được điều này, chúng ta phải có các CSDL khác ở bên
ngoài có liên quan đến CSDL gốc ban đầu, ta tiến hành bổ sung những thông tin cần
thiết, làm tăng khả năng khám phá tri thức từ CSDL.
2.3. Mã hóa dữ liệu
Mục đích của giai đoạn mã hóa là chuyển đổi kiểu dữ liệu về những dạng
thuận tiện để tiến hành các thuật toán khám phá dữ liệu. Có nhiều cách mã hóa dữ
liệu khác nhau theo từng loại dữ liệu:
- Phân vùng: với dữ liệu là giá trị chuỗi, nằm trong tập các chuỗi cố định.
- Biến đổi giá trị năm thành con số nguyên là số năm đã trôi qua so với năm
hiện hành.
- Chia giá trị số theo một hệ số để tập các giá trị nằm trong vùng nhỏ hơn.
- Chuyển đổi yes/no thành 0/1.
2.4. Khai phá dữ liệu
KPDL là tiến trình “điều chỉnh đúng” các mô hình dữ liệu. Chức năng biến
đổi dữ liệu được đưa vào bước này với mục đích để trình diễn dữ liệu.
2.5. Trình diễn dữ liệu
Là quá trình giải thích và hiển thị trực quan các kết quả KPDL để hỗ trợ việc
định giá chất lượng dữ liệu, đánh giá mô hình dữ liệu được lựa chọn có phù hợp hay
không, và thể hiện mô hình. Mỗi bước (trừ bước lưu trữ dữ liệu) cho phép tương tác
người dùng và một số bước có thể được thực hiện hoàn toàn thủ công.
3. Ứng Dụng Của Khai Phá Dữ Liệu
3.1. 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.
3.2. Thương mại điện tử
- Công cụ tìm hiểu, định hướng, thúc đẩy, giao tiếp với khách hàng.
- Phân tích khách hàng duyệt web.
- 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 loại khách hàng trong một phân khu thị trường nhất định.
3.3. Công nghệ sinh học và dược phẩm
Xây dựng công cụ KPDL trực quan cho phép phát hiện sự hiện diện của dược
chất, phân tích dữ liệu di truyền.
8
Bài giảng Khai phá dữ liệu
3.4. Nhân sự
- Giúp nhà tuyển dụng chọn ứng viên thích hợp nhất theo nhu cầu của công
ty.
- Phát hiện giả mạo thẻ trong lĩnh vực viễn thông.
- Phát hiện dùng thẻ tín dụng giả trên mạng và là công cụ hữu ích cho dịch vụ
quản lý rủi ro cho thương mại điện tử.
- Phát hiện xâm nhập mạng trái phép.
4. Khái Quát Các Kỹ Thuật Khai Phá Dữ Liệu
4.1.Khai thác tập phổ biến và luật kết hợp
Là tiến trình khám phá các tập giá trị thuộc tính xuất hiện phổ biến trong các
đối tượng dữ liệu. Từ tập phổ biến có thể tạo ra các luật kết hợp giữa các giá trị
thuộc tính nhằm phản ánh khả năng xuất hiện đồng thời các giá trị thuộc tính trong
tập các đối tượng.
Một luật kết hợp X → Y phản ánh sự xuất hiện của tập X dẫn đến sự xuất
hiện đồng thời tập Y. Ví dụ, trong CSDL bán hàng, có một luật kết hợp tiêu biểu như
sau:
“Có 67% khách hàng mua bia 333, rượu Nàng Hương thì mua bánh tôm

Cầu Tre”.
Luật kết hợp giúp các nhà hoạch định hiểu rõ xu thế bán hàng, tâm lý khách
hàng, từ đó đưa ra các chiến lược bố trí mặt hàng, kinh doanh, tiếp thị, tồn kho, …
4.2. Khai thác mẫu tuần tự
Là tiến trình khám phá các mẫu tuần tự phổ biến phản ánh mối quan hệ giữa
các biến cố trong các CSDL hướng thời gian. Một luật mô tả tuần tự có dạng tiêu
biểu X → Y phản ánh sự xuất hiện của biến cố X sẽ dẫn đến việc xuất hiện kế tiếp
biến cố Y. Một luật thể hiện mẫu tuần tự tiêu biểu:
“Có 80% khách hàng mua Áo thun Việt Tiến, mua bóng Động Lực thì sau
3 ngày mua quần Việt Tiến”.
Nhờ mẫu tuần tự, có thể khám phá các xu thế phát triển hành vi của đối
tượng.
4.3. Phân lớp dữ liệu
Là tiến trình khám phá các luật phân loại hay đặc trưng cho các tập dữ liệu đã
được xếp lớp. Tập dữ liệu học bao gồm tập đối tượng đã được xác định lớp sẽ được
dùng để tạo mô hình phân lớp dựa trên đặc trưng của đối tượng trong tập dữ liệu học.
Các luật phân lớp được sử dụng để xây dựng các bộ phân lớp dữ liệu. Phân lớp dữ
liệu có vai trò quan trọng trong tiến trình dự báo các khuynh hướng, quy luật phát
9
Bài giảng Khai phá dữ liệu
triển. Áp dụng vào tiến trình phân lớp dữ liệu khách hàng trong CSDL có thể xây
dựng các luật phân lớp khách hàng. Một luật phân lớp có dạng tiêu biểu như sau:
“Nếu khách hàng ở khu vực 1 và có doanh số năm trước > 200 triệu và có
cửa hàng ở khu thị tứ thì thuộc loại khách hàng có thể giao hàng trước trả tiền
sau”.
4.4. Khai thác cụm
Là tiến trình nhận diện các cụm tiềm ẩn trong tập các đối tượng chưa được
xếp lớp. Tiến trình khai thác cụm dựa trên mức độ tương tự giữa các đối tượng. Các
đối tượng được gom cụm sao cho mức độ tương tự giữa các đối tượng trong cùng
một cụm là cực đại và mức độ tương tự giữa các đối tượng nằm trong các cụm khác

nhau là cực tiểu. Các cụm được đặc trưng bằng các tính chất chung của tất cả các đối
tượng gom cụm. Do vậy, khảo sát các cụm sẽ giúp khái quát tổng kết nhanh chóng
nội dung của khối dữ liệu lớn.
5. Những Thách Thức Trong Khai Phá Dữ Liệu
KPDL phải làm việc với khối lượng dữ liệu lớn và do từ nhiều nguồn khác
nhau (CSDL, Internet, các loại thiết bị thu nhận tín hiệu, …) nên vấn đề tốc độ xử lý
là vấn đề cần quan tâm trước nhất. Có hai phương hướng để giải quyết vấn đề này là
nâng cao năng lực của phần cứng và cải tiến phần mềm, trong đó việc nghiên cứu đề
xuất các thuật toán hiệu quả có khả năng làm việc trên khối lượng dữ liệu lớn, và có
độ phức tạp tính toán thấp là một hướng nghiên cứu đầy tiềm năng. Từ nhu cầu thực
tế trên, gần đây đã xuất hiện nhiều ngành khoa học công nghệ hỗ trợ KPDL như tính
toán song song, máy tính tương tự, công nghệ nano, …
10
Bài giảng Khai phá dữ liệu
CHƯƠNG II. TẬP PHỔ BIẾN VÀ LUẬT KẾT HỢP
Nội dung chương này gồm:
• Các khái niệm cơ bản về luật kết hợp.
• Thuật toán Apriori, tìm tập phổ biến tối đại.
• Tìm luật kết hợp.
1. Bài Toán Khai Thác Tập Phổ Biến
1.1. Các khái niệm cơ bản
* Định nghĩa 1: Ngữ cảnh KPDL
Cho tập O là tập hữu hạn khác rỗng các hóa đơn và I là tập hữu hạn khác rỗng
các mặt hàng, R là một quan hệ hai ngôi giữa O và I sao cho với o ∈ O và i ∈ I, (o,i)
∈ R ⇔ hóa đơn o có chứa mặt hàng i. Ngữ cảnh KPDL là bộ ba (O,I,R).
Mã hóa đơn Mã hàng
o1 i1
o1 i2
o1 i3
o2 i2

o2 i3
o2 i4
o3 i2
o3 i3
o3 i4
o4 i1
o4 i2
o4 i3
o5 i3
o5 i4
Bảng 1. Một ví dụ về bảng chi tiết hóa đơn.
i1 i2 i3 i4
o1 1 1 1 0
o2 0 1 1 1
o3 0 1 1 1
o4 1 1 1 0
11
Bài giảng Khai phá dữ liệu
o5 0 0 1 1
Bảng 2. Ma trận nhị phân biểu diễn ngữ cảnh KPDL.
* Định nghĩa 2: Ma trận ngữ cảnh KPDL
Quan hệ hai ngôi R được biểu diễn bằng một ma trận nhị phân trong đó dòng
thứ i ứng với hóa đơn o
i
và cột thứ j ứng với mặt hàng i
j
. Ma trận này được gọi là ma
trận biểu diễn ngữ cảnh KPDL. (Xem bảng 2).
* Định nghĩa 3: Kết nối Galois
Cho ngữ cảnh KPDL (O,I,R), xét hai hàm ρ và λ được định nghĩa như sau:

ρ : P(I) → P(O)
λ : P(O) → P(I)
Cho S ⊆ I, ρ(S) = {o ∈ O | ∀i ∈ S , (o,i) ∈ R}
Cho X ⊆ O, λ(X) = {i ∈ I | ∀o ∈ X , (o,i) ∈ R}
Trong đó, P(X) là tập các tập con của X. Cặp hàm (ρ,λ) được định nghĩa như vậy
được gọi là kết nối Galois.
Giá trị ρ(S) biểu diễn tập các hóa đơn có chung tất cả các mặt hàng trong S.
Giá trị λ(X) biểu diễn tập các mặt hàng xuất hiện trong tất cả các hóa đơn của X.
Ví dụ: Với ngữ cảnh KPDL như trong bảng 2,
Nếu S = {i
1
, i
2
} thì ρ(S) = {o
1
, o
4
}
Nếu X = {o
1
, o
2
, o
3
} thì λ(X) = {i
2
, i
3
}
Các tính chất của cặp hàm (

ρ
,
λ
)
i) Với S1, S2 ∈ P(I), S1 ⊆ S2 ⇒ ρ(S2) ⊆ ρ(S1)
ii) Với X1, X2 ∈ P(O), X1 ⊆ X2 ⇒ λ(X2) ⊆ λ(X1)
iii) S ⊆ λ(ρ(S)) và X ⊆ ρ(λ(X))
iv) λ(ρ(λ(X))) = λ(X) và ρ(λ(ρ(S))) = ρ(S)
* Định nghĩa 4: Tập phổ biến
Cho ngữ cảnh KPDL (O,I,R) và S ⊂ I, độ phổ biến của S được định nghĩa là tỉ
số giữa số các hóa đơn có chứa S và số lượng hóa đơn trong O. Độ phổ biến của S
ký hiệu là SP(S) và được tính như sau:
SP(S) = |ρ(S)| / |O|
với |.| là lực lượng của tập hợp.
Cho S ⊂ I và minsupp ∈ (0,1] là ngưỡng phổ biến tối thiểu. S là một tập phổ
biến theo ngưỡng minsupp nếu và chỉ nếu SP(S) ≥ minsupp.
12
Bài giảng Khai phá dữ liệu
Ký hiệu FS(O,I,R,minsupp) là tập hợp các tập phổ biến theo ngưỡng minsupp
hay FS(O,I,R,minsupp) = {S ∈ P(I) | SP(S) ≥ minsupp}
Ví dụ: Với (O,I,R) ở bảng 2 và ngưỡng minsupp = 0.4, các tập mặt hàng sau đây là
các tập phổ biến theo minsupp = 0.4
Tập phổ biến Giá trị SP Tập phổ biến Giá trị SP
{i
1
} 0.4 {i
2
} 0.8
{i
3

} 1.0 {i
4
} 0.6
{i
1
, i
2
} 0.4 {i
1
, i
3
} 0.4
{i
2
, i
3
} 0.8 {i
2
, i
4
} 0.4
{i
3
, i
4
} 0.6 {i
1
, i
2
, i

3
} 0.4
{i
2
, i
3
, i
4
} 0.4
* Định nghĩa 5: Dàn (lattice) các tập mặt hàng
Cho (O,I,R), xét P(I) là tập các tập hợp con của tập mặt hàng I và quan hệ thứ
tự “⊆”, thì (P(I), ⊆) là một dàn. Do I là tập mặt hàng nên dàn (P(I), ⊆) được gọi là
dàn các tập mặt hàng. Dàn (P(I), ⊆) xác định không gian tìm kiếm lời giải của bài
toán.
* Nguyên lý Apriori:
- Mệnh đề 1: Cho S ∈ FS(O,I.,R,minsupp), nếu T ⊆ S thì T ∈ FS(O,I,R,minsupp).
- Mệnh đề 2: Cho T ∉ FS(O,I.,R,minsupp), nếu T ⊆ S thì S ∉ FS(O,I.,R,minsupp).
1.2. Phát biểu bài toán và độ phức tạp
Cho ngữ cảnh KPDL (O,I,R) và ngưỡng phổ biến tối thiểu minsupp ∈ (0,1],
tìm tất cả các tập phổ biến của (O,I,R) theo ngưỡng minsupp. Bài toán tìm các tập
phổ biến có không gian lời giải rất lớn O(m2
n
) với m = |O| và n = |I|. Với CSDL có
hàng trăm ngàn hóa đơn và tập mặt hàng có hàng chục ngàn mặt hàng sẽ khiến số
lượng tập ứng viên cần xét là rất lớn và thời gian truy cập đĩa tăng lên đáng kể lúc
tính độ phổ biến của tập ứng viên.
2. Phát Triển Thuật Giải Không Tăng Cường Để Tìm Tập Phổ Biến
2.1. Các khái niệm cơ bản
* Định nghĩa 6: Vector biểu diễn tập mặt hàng
Cho ma trận M là ma trận biểu diễn ngữ cảnh KPDL (O,I,R). Gọi m = |O| và

cho tập mặt hàng S ⊂ I, vector biểu diễn tập mặt hàng S ký hiệu là v(S) là vector nhị
phân có m thành phần, thành phần thứ i của vector v(S) có trị 1 nếu hóa đơn o
i

chứa tất cả các mặt hàng trong S hay giá trị của các phần tử nằm trên dòng i và trên
các cột ứng với các mặt hàng trong S đều có giá trị 1, ngược lại sẽ có trị 0.
13
Bài giảng Khai phá dữ liệu
Trong các phần sau, vector biểu diễn tập mặt hàng sẽ được gọi tắt là vector
biểu diễn.
Ví dụ: Với ngữ cảnh KPDL ở bảng 2 và S = {i
2
, i
3
} thì vector biểu diễn v(S) = (1 ,
1 , 1 , 1 , 0)
* Định nghĩa 7: Tích vector biểu diễn
Cho S ⊂ I và T ⊂ I, gọi v(S) = (s
1
, …, s
m
) và v(T) = (t
1
, …, t
m
) lần lượt là các
vector biểu diễn của S và T. Tích vector biểu diễn của vector v(S) và v(T) ký hiệu là
⊗ là vector biểu diễn v(Z) = (z
1
, …, z

m
) với z
k
= min(s
k
, t
k
), k = 1, …, m.
Từ vector v(Z) có thể suy ra tất cả các đối tượng có chứa S ∪ T

Tính kết hợp của tích vector biểu diễn:
v(X) ⊗ v(Y) ⊗ v(Z) = v(X) ⊗ [v(Y) ⊗ v(Z)] = [v(X) ⊗ v(Y)] ⊗ v(Z)
* Định nghĩa 8: Độ phổ biến của vector biểu diễn
Cho S ⊆ I, độ phổ biến của vector biểu diễn v(S) được ký hiệu là SPV(v(S))
là tỉ số giữa số thành phần khác 0 trong v(S) và số thành phần của v(S) hay số dòng
của ma trận biểu diễn ngữ cảnh KPDL. Có thể kiểm tra SPV(v(S)) = SP(S).
- Mệnh đề 3: Cho S ⊆ I và S
1
, …, S
k
là các tập con của S sao cho:
ta có v(S) = v(S
1
) ⊗ v(S
2
) ⊗ … ⊗ v(S
k
)
Độ phổ biến của tập mặt hàng S bằng độ phổ biến vector biểu diễn v(S), nghĩa
là SP(S) = SPV(v(S)) = SPV(v(S

1
) ⊗ v(S
2
) ⊗ … ⊗ v(S
k
))
Ví dụ: Từ bảng 2, tính SPV(v(S)) với S = {i
2
, i
3
} thì v(S) = (1, 1, 1, 1, 0) vì:
S
1
= {i
2
} thì v(S
1
) = (1, 1, 1, 1, 0) và
S
2
= {i
3
} thì v(S
2
) = (1, 1, 1, 1, 1), do vậy:
v(S) = v(S
1
) ⊗ v(S
2
) = (1, 1, 1, 1, 0) và

SP(S) = SPV(v(S)) = 0.8
i1 i2 i3 i4
o1 1 1 1 0
o2 0 1 1 1
o3 0 1 1 1
o4 1 1 1 0
o5 0 0 1 1
Thuật toán 1: Tính vector biểu diễn:
Có thể tính vector biểu diễn v(S) của S ∈ P(I) theo các cách sau:
14
i
k
i
SS
1
=
=

Bài giảng Khai phá dữ liệu
1. Tạo ma trận nhị phân biểu diễn ngữ cảnh KPDL trong bộ nhớ máy tính dưới
dạng một mảng hai chiều, ta có:
v(S) = ⊗
i

S
v({i})
với v({i}) là cột ứng với mặt hàng i trong ma trận biểu diễn ngữ cảnh.
Ma trận biểu diễn ngữ cảnh KPDL được đọc từ đĩa một lần duy nhất và lưu
vào bộ nhớ trong của máy tính. Số lần truy cập đĩa bằng tổng số bản ghi trong
CSDL. Do vậy, chỉ cần truy cập CSDL lúc tạo ma trận biểu diễn ngữ cảnh KPDL,

sau đó chỉ còn truy xuất mảng trong bộ nhớ và tính tích các cột của ma trận.
2. Nếu |S| = k và trong tiến trình xử lý có lưu lại các vector biểu diễn v(S
1
) và
v(S
2
) sao cho S = S
1
∪ S
2
, |S
1
| = k – 1, |S
2
| = k – 1 thì v(S) = v(S
1
) ⊗ v(S
2
).
Dựa vào kết quả của mệnh đề 3 để tính v(S) theo v(S
1
) và v(S
2
).
2.2. Phát triển thuật toán không tăng cường để tìm tập phổ biến
Thuật toán được xây dựng dựa trên kết quả của mệnh đề 1. Đầu tiên, thuật
toán sẽ tìm các tập phổ biến có một phần tử. Sau đó, các ứng viên của các tập phổ
biến có hai phần tử sẽ được tạo lập bằng phép hội các tập phổ biến có một phần tử.
Một cách tổng quát, các tập ứng viên của tập phổ biến có k phần tử sẽ được tạo từ
các tập phổ biến có k - 1 phần tử.

Ký hiệu: F
k
= {S ∈ P(I) | SP(S) ≥ minsupp và |S| = k} và
VS
k
= {v(S) | S ∈ F
k
}
Cấu trúc dữ liệu cây nhị phân được sử dụng để lưu các tập phổ biến, tập S
được sắp theo thứ tự nhất định sẽ là các nhãn trên con đường từ nút gốc đến nút ứng
với mặt hàng cuối cùng trong S, nút này cũng lưu vector biểu diễn v(S).
Thuật toán 2: Tìm tập phổ biến:
- Vào: (O,I,R) và ngưỡng minsupp
- Ra: FS(O,I,R,minsupp)
Các bước của thuật toán:
1. Đặt A = ∅
2. Tạo F
1
và VS
1
từ ngữ cảnh (O,I,R) bằng cách xét từng cột của ma trận biểu
diễn ngữ cảnh KPDL.
3. For (k = 2 ; F
k-1
≠ ∅ ; k++) do
Tạo F
k
từ F
k-1
A = A ∪ F

k
Endfor
4. Return A
Thuật toán 3: Tạo F
1
từ ngữ cảnh KPDL (O,I,R)
- Vào: ngữ cảnh KPDL (O,I,R), ngưỡng phổ biến tối thiểu minsupp.
15
Bài giảng Khai phá dữ liệu
- Ra: F
1
, VS
1
Các bước của thuật toán:
1. F
1
= ∅
2. VS
1
= ∅
3. For each i ∈ I do
Tính v({i})
If (SPV(v({i})) ≥ minsupp) then
F
1
= F
1
∪ {i}
VS
1

= VS
1
∪ {v({i})}
Endif
Endfor
Thuật toán 4: Tạo F
k
từ F
k-1
Dựa trên kết quả của mệnh đề 1 và 3
- Vào: F
k-1
được sắp xếp theo một thứ tự nào đó và VS
k-1
- Ra: F
k
, VS
k
Các bước của thuật toán:
1. F
k
= ∅
2. VS
k
= ∅
3. For (each X ∈ F
k-1
) do
For (each Y ∈ F
k-1

and X ≠ Y) do
S = X ∪ Y
Đọc v(X) và v(Y) từ VS
k-1
v(S) = v(X) ⊗ v(Y)
If (|S| = k and SPV(v(S) ≥ minsupp) then
F
k
= F
k
∪ {S}
VS
k
= VS
k
∪ {v(S)}
Endif
Endfor
Endfor
4. Return F
k
, VS
k
Ví dụ: Cho ngữ cảnh KPDL (O,I,R) trong bảng 2 và ngưỡng phổ biến tối thiểu
minsupp = 0.4. Tìm tập phổ biến?
i1 i2 i3 i4
o1 1 1 1 0
o2 0 1 1 1
o3 0 1 1 1
16

Bài giảng Khai phá dữ liệu
o4 1 1 1 0
o5 0 0 1 1
- F1 = { {i1} , {i2} , {i3} , {i4} } vì:
• {i1} , v({i1}) = (1, 0, 0, 1, 0)
SP({i1}) = SPV(v({i1})) = 2/5 = 0.4 (tập phổ biến)
• {i2} , v({i2}) = (1, 1, 1, 1, 0)
SP({i2}) = SPV(v({i2})) = 4/5 = 0.8 (tập phổ biến)
• {i3} , v({i3}) = (1, 1, 1, 1, 1)
SP({i3}) = SPV(v({i3})) = 5/5 = 1.0 (tập phổ biến)
• {i4} , v({i4}) = (0, 1, 1, 0, 1)
SP({i4}) = SPV(v({i4})) = 3/5 = 0.6 (tập phổ biến)
- F2 = { {i1, i2} , {i1, i3} , {i2, i3} , {i2, i4} , {i3, i4} } vì:
• {i1, i2} , v({i1, i2}) = v({i1}) ⊗ v({i2}) = (1, 0, 0, 1, 0)
SP({i1, i2}) = SPV(v({i1, i2})) = 2/5 = 0.4 (tập phổ biến)
• {i1, i3} , v({i1, i3}) = v({i1}) ⊗ v({i3}) = (1, 0, 0, 1, 0)
SP({i1, i3}) = SPV(v({i1, i3})) = 2/5 = 0.4 (tập phổ biến)
• {i1, i4} , v({i1, i4}) = v({i1}) ⊗ v({i4}) = (0, 0, 0, 0, 0)
SP({i1, i4}) = SPV(v({i1, i4})) = 0/5 = 0.0 (không phải tập phổ biến)
• {i2, i3} , v({i2, i3}) = v({i2}) ⊗ v({i3}) = (1, 1, 1, 1, 0)
SP({i2, i3}) = SPV(v({i2, i3})) = 4/5 = 0.8 (tập phổ biến)
• {i2, i4} , v({i2, i4}) = v({i12}) ⊗ v({i4}) = (0, 1, 1, 0, 0)
SP({i2, i4}) = SPV(v({i2, i4})) = 2/5 = 0.4 (tập phổ biến)
• {i3, i4} , v({i3, i4}) = v({i3}) ⊗ v({i4}) = (0, 1, 1, 0, 1)
SP({i3, i4}) = SPV(v({i3, i4})) = 3/5 = 0.6 (tập phổ biến)
- F3 = { {i1, i2, i3} , {i2, i3, i4} } vì:
• {i1, i2, i3} , v({i1, i2, i3}) = v({i1, i2}) ⊗ v({i1, i3}) = (1, 0, 0, 1, 0)
SP({i1, i2, i3}) = SPV(v({i1, i2, i3})) = 2/5 = 0.4 (tập phổ biến)
• {i1, i2, i4} , v({i1, i2, i4}) = v({i1, i2}) ⊗ v({i2, i4}) = (0, 0, 0, 0, 0)
SP({i1, i2, i4}) = SPV(v({i1, i2, i4})) = 0/5 = 0.0 (không phải tập phổ biến)

• {i1, i3, i4} , v({i1, i3, i4}) = v({i1, i3}) ⊗ v({i3, i4}) = (0, 0, 0, 0, 0)
SP({i1, i3, i4}) = SPV(v({i1, i3, i4})) = 0/5 = 0.0 (không phải tập phổ biến)
• {i2, i3, i4} , v({i2, i3, i4}) = v({i2, i3}) ⊗ v({i3, i4}) = (0, 1, 1, 0, 0)
SP({i2, i3, i4}) = SPV(v({i2, i3, i4})) = 2/5 = 0.4 (tập phổ biến)
- F4 = { {i1, i2, i3, i4} } vì:
• {i1, i2, i3, i4} , v({i1, i2, i3, i4}) = v({i1, i2, i3}) ⊗ v({i2, i3, i4}) = (0, 0, 0,
0, 0)
17
Bài giảng Khai phá dữ liệu
SP({i1, i2, i3, i4}) = SPV(v({i1, i2, i3, i4})) = 0/5 = 0.0 (không phải tập phổ
biến)
Vậy: FS(O,I,R,minsupp = 0.4) = F
1
∪ F
2
∪ F
3
= { {i1} , {i2} , {i3} , {i4} , {i1, i2} ,
{i1, i3} , {i2, i3} , {i2, i4} , {i3, i4} , {i1, i2, i3} , {i2, i3, i4} }
3. Tìm Tập Phổ Biến Tối Đại
3.1. Tìm tập phổ biến tối đại bằng đồ thị liên kết các tập phổ biến
* Định nghĩa 9: Tập phổ biến tối đại
Cho M ∈ FS(O,I,R,minsupp), M được gọi là tập phổ biến tối đại nếu không
tồn tại S ∈ FS(O,I,R,minsupp), M ≠ S, M ⊂ S.
Ký hiệu MS(O,I,R,minsupp) là tập hợp các tập phổ biến tối đại của ngữ cảnh
KPDL (O,I,R) theo ngưỡng minsupp.
Ví dụ: Với ngữ cảnh KPDL ở bảng dữ liệu 2 và ngưỡng phổ biến tối thiểu minsupp
= 0.4 sẽ có các tập phổ biến tối đại {i1, i2, i3} , {i2, i3, i4}.
* Định nghĩa 10: Đồ thị liên kết các tập phổ biến là đồ thị có hướng G(V,E), với V
là tập các tập phổ biến và E là tập các cung. Cung (X,Y) ∈ E nếu X, Y là các tập phổ

biến và X ⊂ Y, |Y| = |X| + 1.
Thuật toán 5: Tạo đồ thị liên kết
Đồ thị liên kết các tập phổ biến được tạo trong lúc tính v(S) = v(X) ⊗ v(Y)
của thuật toán 4, theo đó sẽ tạo các cung có hướng mà gốc là X và ngọn là S và cung
có hướng có gốc là Y, ngọn là S.
Thuật toán 6: Tìm tập phổ biến tối đại từ đồ thị liên kết
Thực hiện thao tác duyệt đồ thị liên kết và tìm các đỉnh không có cung ra sẽ là
các tập phổ biến tối đại.
Nhận xét: Nếu tìm được các tập phổ biến tối đại theo ngưỡng phổ biến tối thiểu
minsupp, thì theo kết quả của mệnh đề 1 có thể thu được tất cả các tập phổ biến theo
ngưỡng minsupp vì các tập con của các tập phổ biến tối đại phải là tập phổ biến theo
ngưỡng minsupp.
18
{i1} {i2} {i3} {i4}
{i1, i2} {i1, i3} {i2, i3} {i2, i4} {i3, i4}
{i1, i2, i3} {i2, i3, i4}
Hình 2. Đồ thị liên kết các tập phổ biến.
Bài giảng Khai phá dữ liệu
3.2. Quan hệ giữa bao đóng và tập phổ biến tối đại
* Định nghĩa 11: Hàm đóng
Cho tập hợp O, hàm c: P(O) → P(O) là một hàm đóng trên P(O) nếu với mọi
X, Y ∈ P(O), hàm c thỏa các tính chất sau:
i) Tính mở rộng: X ⊆ c(X)
ii) Tính đồng biến: Nếu X ⊆ Y thì c(X) ⊆ c(Y)
iii) Tính lũy đẳng: c(c(X)) = c(X)
Gọi c(X) là bao đóng của X. Một tập hợp con X của O được gọi là bị đóng
nếu c(X) = X.
Có thể kiểm tra các hàm h = λoρ là hàm đóng trên P(I) và hàm h’ = ρoλ là
hàm đóng trên P(O).
* Định nghĩa 12: Tập bị đóng

Cho ngữ cảnh KPDL (O,I,R), và S ∈ P(I), ta gọi S ⊆ I là tập bị đóng nếu và
chỉ nếu h(S) = S.
Tập S ∈ FS(O, I, R, minsupp) và S bị đóng được gọi là tập phổ biến bị đóng.
Tập M ∈ MS(O,I,R, minsupp) và S bị đóng được gọi là tập phổ biến tối đại bị đóng.
- Mệnh đề 4: Độ phổ biến của tập mặt hàng S bằng độ phổ biến của bao đóng của nó
qua hàm đóng h = λoρ, nghĩa là: SP(S) = SP(h(S)).
- Tính chất: Tập hợp các tập phổ biến tối đại chính là tập hợp các tập phổ biến tối
đại bị đóng.
3.3. Dùng bao đóng để giảm số lượng ứng viên cần tính độ phổ biến
- Mệnh đề 5: Nếu S ∈ FS(O,I,R,minsupp) và T ⊆ h(S) thì T ∈ FS(O,I,R,minsupp)
Kết quả của mệnh đề 5 được sử dụng để làm giảm tập ứng viên C
k
cho bước
tìm tập phổ biến có chiều dài bằng k và do vậy giảm thời gian quét đĩa để tính độ
phổ biến của các ứng viên. Ký hiệu CL(O,I,R, minsupp) là tập các bao đóng của
ngữ cảnh KPDL (O,I,R).
Thuật toán 7: Tính các tập phổ biến dựa trên bao đóng
- Vào: Ngữ cảnh KPDL (O,I,R) và ngưỡng minsupp ∈ (0,1]
- Ra: FS(O,I,R,minsupp)
Các bước thuật toán:
19
Bài giảng Khai phá dữ liệu
1. CL(O,I,R,minsupp) = F1 = ∅
2. For (each i ∈ I) do
If SP({i}) ≥ minsupp then
F1 = F1 ∪ {i}
Tính h({i}) và ghi h({i}) vào F
|h({i})|
và vào CL(O,I,R,minsupp)
Endif

Endfor
3. For (k = 2; F
k-1
≠ ∅; k++) do
F
k
= ∅
For (each X ∈ F
k-1
) do
For (each Y ∈ F
k-1
) do
S = X ∪ Y
If S ∉ CL(O,I,R,minsupp)
If (|S| = k) then
Tappb = False
If (∃T ∈ CL(O,I,R,minsupp) ∧ S ⊂ T) then
Tappb = True
Else
Tính SP(S)
If (SP(S) ≥ minsupp) then
Tappb = True
Endif
Endif
If Tappb = True then
F
k
= F
k

∪ {S}
Tính h(S) và ghi vào F
h(S)
Ghi h(S) vào CL(O,I,R,minsupp)
Endif
Endif
Endif
Endfor
Endfor
Endfor
Thuật toán 8: Tính bao đóng h(S) với S ∈ P(I)
- Vào: Ngữ cảnh KPDL (O,I,R) và S ∈ P(I)
- Ra: Bao đóng h(S)
Các bước thuật toán:
1. h(S) = I
2. For each o ∈ O do
20
Bài giảng Khai phá dữ liệu
If S ⊂ λ({o}) then
h(S) = h(S) ∩ λ({o})
endif
endfor
3. Return h(S)
Ví dụ: Cho (O,I,R) trong bảng 2 và ngưỡng minsupp = 0.4; tìm tập phổ biến dựa trên
bao đóng.
i1 i2 i3 i4
o1 1 1 1 0
o2 0 1 1 1
o3 0 1 1 1
o4 1 1 1 0

o5 0 0 1 1
- Lần lặp k = 1
• {i1} , SP = 0.4
Ghi bao đóng của {i1} là {i1, i2, i3} vào CL(O,I,R,minsupp) (mệnh đề 4).
• {i2} , SP = 0.8
Ghi bao đóng của {i2} là {i2, i3} vào CL(O,I,R,minsupp) (mệnh đề 4).
Ghi {i2, i3} là tập phổ biến bị đóng.
• {i3} , SP = 1.0
Ghi {i3} là tập phổ biến bị đóng.
• {i4} , SP = 0.6
Ghi bao đóng của {i4} là {i3, i4} vào CL(O,I,R,minsupp) (mệnh đề 4).
Ghi {i3, i4} là tập phổ biến bị đóng.
- Lần lặp k = 2
• Xét {i1, i2}, do đây là tập con của bao đóng {i1, i2, i3} nên là tập phổ biến
(mệnh đề 5).
Ghi {i1, i2, i3} là tập phổ biến bị đóng.
• Xét {i1, i3} là tập con của bao đóng {i1, i2, i3} nên là tập phổ biến (mệnh đề
5)
{i1, i3} , SP = 0.4
• Xét {i2, i3} , do đã là tập phổ biến lúc tính bao đóng của {i1} nên không xét.
• {i2, i4}, ghi bao đóng của {i2, i4} là {i2, i3, i4} vào CL(O,I,R,minsupp)
(mệnh đề 4).
Ghi {i2, i3, i4} là tập phổ biến.
21
Bài giảng Khai phá dữ liệu
- Lần lặp k = 3
• {i1, i2, i3} đã là tập phổ biến trong bước lặp k = 2, nên không xét.
Vậy:
- Tập phổ biến:
 {i1, i2, i3} , SP = 0.4

 {i2, i3, i4} , SP = 0.4
- Tập bị đóng:
 {i3} , SP = 1.0
 {i3, i4} , SP = 0.6
 {i2, i3} , SP = 0.8
 {i2, i3, i4} , SP = 0.4
 {i1, i2, i3} , SP = 0.4
- Tập tối đại bị đóng:
 {i1, i2, i3} , SP = 0.4
 {i2, i3, i4} , SP = 0.4
Có tổng cộng 2 tập tối đại bị đóng và cũng chính là tập phổ biến tối đại.
Trong ví dụ trên, có 3 lần sử dụng kết quả của mệnh đề 5 để giảm số lượng tập phổ
biến ứng viên cần tính độ phổ biến (giảm số lần truy cập CSDL), đó là các tập phổ
biến {i1, i2} , {i1, i3} , {i2, i3}.
4. Phát Triển Thuật Giải Tăng Cường Để Tìm Tập Phổ Biến
Phần này phát triển thuật toán tăng cường để tìm tập phổ biến từ CSDL lớn và
có nhiều biến động dựa trên dàn khái niệm. Bài toán khám phá các khái niệm hình
thức và dàn Galois được Wille (1982) đề xuất và có rất nhiều ứng dụng trong biểu
diễn và tìm kiếm tri thức.
R.Godin (1995) đã đề xuất một thuật toán tăng cường để tìm các khái niệm
hình thức và xây dựng biểu đồ Hasse cho dàn khái niệm. Phần này khảo sát quan hệ
giữa dàn khái niệm và tập phổ biến nhằm ứng dụng thuật toán tạo dàn khái niệm của
Godin để tìm các tập phổ biến trong các CSDL có nhiều biến động do thao tác cập
nhật và giảm thời gian truy cập CSDL.
4.1. Các khái niệm cơ bản
* Định nghĩa 13: Ngữ cảnh khái niệm
Cho O là một tập hữu hạn khác rỗng các đối tượng và I là tập hữu hạn khác
rỗng các thuộc tính nhị phân. Gọi R là một quan hệ hai ngôi trên O và I, R ⊆ OxI. Bộ
ba (O,I,R) là một ngữ cảnh của khái niệm. Bảng 3 là một ví dụ về ngữ cảnh khái
niệm.

i1 i2 i3 i4
22
Bài giảng Khai phá dữ liệu
o1 1 1 0 0
o2 1 1 1 0
o3 1 1 1 0
o4 1 0 1 1
Bảng 3. Một ví dụ về ngữ cảnh khái niệm
* Định nghĩa 14: Khái niệm hình thức
Cho ngữ cảnh khái niệm (O,I,R) và (ρ,λ) là các kết nối Galois được định
nghĩa tại định nghĩa 3, một cặp (X,S) với X ∈ P(O) và S ∈ P(I) sao cho X = ρ(S) và
S = λ(X) là một khái niệm hình thức của (O,I,R), trong đó X được gọi là extent và S
được gọi là intent của khái niệm (X,S).
Ký hiệu B(O,I,R) là tập các khái niệm hình thức được tạo từ (O,I,R).
Ví dụ: Các khái niệm hình thức trong ngữ cảnh khái niệm ở bảng 3 là:
C1 = ({o1, o2, o3, o4}, {i1})
C2 = ({o1, o2, o3}, {i1, i2})
C3 = ({o2, o3, o4}, {i1, i3})
C4 = ({o2, o3}, {i1, i2, i3})
C5 = ({o4}, {i1, i3, i4})
C6 = (∅, {i1, i2, i3, i4})
Tính chất: Các tập X và S trong khái niệm hình thức (X,S) là các tập bị đóng.
Thật vậy, theo định nghĩa X = ρ(S) và S = λ(X). Với h = λ o ρ và h’ = ρ o λ.
Do vậy, X = ρ(S) = ρ(λ(X)) = ρ o λ(X) = h’(X) và S = λ(X) = λ(ρ(S)) = λ o ρ(S) =
h(S).
* Định nghĩa 15: Dàn khái niệm
Cho ngữ cảnh (O,I,R) , (ρ,λ) là các kết nối Galois được định nghĩa ở trên, tập
các khái niệm hình thức B(O,I,R). Trên B(O,I,R) ta định nghĩa quan hệ thứ tự “≤”
sao cho C1 = (X1,S1) và C2 = (X2,S2) thì C1 ≤ C2 ⇔ X1 ⊆ X2.
Các định nghĩa trên dẫn đến định lý cơ bản của Wille (1982) nhằm khẳng

định (B(O,I,R), ≤) là một dàn đầy đủ.
* Định lý 1: (Wille, 1982) Cho ngữ cảnh khái niệm (O,I,R), gọi B(O,I,R) là tập hợp
tất cả các khái niệm hình thức của (O,I,R) và “≤” là quan hệ thứ tự trên các khái
niệm thì (B(O,I,R), ≤) là một dàn đầy đủ, trong đó phép nối rời (join) và phép nối
liền (meet) được định nghĩa như sau:
23
Bài giảng Khai phá dữ liệu
với J là tập các chỉ số của tất cả các khái niệm hình thức của (O,I,R).
Nếu C1 ≤ C2, ta gọi khái niệm C2 là tổ tiên của C1 và khái niệm C1 là hậu
duệ của C2. Nếu C2 là trội trực tiếp của C1, ta gọi C2 là cha của C1 và C1 là con của
C2. Có thể dùng biểu đồ Hasse để biểu diễn dàn khái niệm. Nếu C1 là con của C2 thì
sẽ có cạnh nối C1 với C2.
Ví dụ: Biểu đồ Hasse của dàn khái niệm ứng với ngữ cảnh trong bảng 3.
* Định nghĩa 16: Các khái niệm phổ biến và khái niệm phổ biến tối đại theo
intent.
Cho ngữ cảnh (O,I,R) và tập các khái niệm hình thức B(O,I,R). Khái niệm C
= (X,S) là khái niệm phổ biến theo ngưỡng phổ biến tối thiểu minsupp ∈ (0,1] nếu
và chỉ nếu |X|/|O| ≥ minsupp.
Ký hiệu FC(O,I,R,minsupp) là tập các khái niệm phổ biến theo ngưỡng
minsupp.
24
( ) ( )( )
jJjjJjjjJj
SXhSX
∈∈∈
∩∪=∨
,',
( ) ( ) ( )( )
jJjjJjjjJj
ShXSX

∈∈∈
∪∩=∧
,,
({o1, o2, o3, o4}, {i1})
C1
({o1, o2, o3}, {i1, i2}) ({o2, o3, o4}, {i1, i3})
({o2, o3}, {i1, i2, i3}) ({o4}, {i1, i3, i4})
(∅, {i1, i2, i3, i4})
C2 C3
C4 C5
C6
Hình 3. Biểu đồ Hasse của dàn khái niệm.
Bài giảng Khai phá dữ liệu
Khái niệm Cm = (Xm,Sm) ∈ FC(O,I,R,minsupp) là khái niệm phổ biến tối
đại theo intent nếu không tồn tại khái niệm Cn = (Xn,Sn) ∈ FC(O,I,R,minsupp) sao
cho Cm ≠ Cn và Sm ⊂ Sn. Nếu lấy ngưỡng minsupp = 0.5 thì C1, C2, C3, C4 là các
khái niệm phổ biến. Trong đó, C4 là khái niệm phổ biến tối đại theo intent.
4.2. Dùng thuật toán tạo dàn khái niệm để tìm tập phổ biến
Đây là ý tưởng của Godin, để xây dựng thuật toán tăng cường tạo dàn khái
niệm từ ngữ cảnh KPDL, gồm các mệnh đề sau:
- Mệnh đề 6: Nếu chèn một nút N = ({o*},λ({o*})) vào dàn L thì tất cả các nút
(X,S) trong dàn L có S ⊆ λ({o*}) đều bị cập nhật thành (X ∪ {o*} , S).
- Mệnh đề 7: Nếu (X’,S’) = inf {(X,S) ∈ L | S’ = S ∩ λ({o*})} và không tồn tại
(E,S) ∈ L thì sẽ tạo nút mới (X’,S’) được tính như trên. Phần tử (X,S) được gọi là
phần tử sinh của khái niệm mới. Phần tử sinh sẽ là con của nút mới.
- Mệnh đề 8: Cha của nút mới (X,S) là một nút mới hay một nút bị sửa đổi (X’,S’)
sao cho (X’,S’) = sup {(X’,S’) ∈ L | S’ ⊆ S}
Dựa vào các kết quả trên R.Godin (1995) đã xây dựng thuật toán tăng cường
tạo dàn khái niệm từ ngữ cảnh hình thức. Để tìm tập phổ biến, thuật toán này đã
được cải tiến trong đó khái niệm (X,S) trong thuật toán của R.Godin được biến đổi

thành (|ρ(S)|,S) với |ρ(S)| là số lượng hóa đơn có chứa tập mặt hàng S.
Thuật toán 9: Tạo dàn khái niệm để tìm tập phổ biến.
- Vào: Ngữ cảnh KPDL (O,I,R)
- Ra: Dàn khái niệm
Thủ tục InsertOrder là một thuật toán tăng cường để chèn một đối tượng o
vào dàn khái niệm. Hàm
λ
({o}) sẽ cho danh sách các mặt hàng chứa trong đối tượng
(hóa đơn o). Maxsize là kích thước lớn nhất của các tập mặt hàng, DanL là dàn các
khái niệm hình thức. Khái niệm C có kiểu khái niệm bao gồm các thành phần
C.intent(S) là intent của khái niệm C; C.Support là độ phổ biến của khái niệm C(|
ρ(S)|); C.CardIntent là số phần tử của tập hợp C.intent. Các biến DanL,
TapChuaCo, TapDaCo, TapMuck là các biến có kiểu tập hợp mà các thành phần có
kiểu khái niệm.
Procedure InsertOrder (λ({o}) ; Maxsize ; DanL)
(1) TapChuaCo = ∅ ;
(2) TapDaCo = ∅ ;
25

×