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

TIỂU LUẬN MÔN HỌC KHAI PHÁ DỮ LIỆU KHAI PHÁ LUẬT KẾT HỢP VỚI CƠ SỞ DỮ LIỆU LỚN

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 (706.46 KB, 50 trang )

ĐẠI HỌC HUẾ
TRƯỜNG ĐẠI HỌC KHOA HỌC
KHOA CÔNG NGHỆ THÔNG TIN

NHÓM 4 – CAO HỌC KHOA HỌC MÁY TÍNH B
(NĂM HỌC 2010 – 2012)
KHAI PHÁ LUẬT KẾT HỢP
VỚI CƠ SỞ DỮ LIỆU LỚN
TIỂU LUẬN MÔN HỌC
KHAI PHÁ DỮ LIỆU


Huế, tháng 9/2011
ĐẠI HỌC HUẾ
TRƯỜNG ĐẠI HỌC KHOA HỌC
KHOA CÔNG NGHỆ THÔNG TIN

NHÓM 4 – CAO HỌC KHOA HỌC MÁY TÍNH B
(NĂM HỌC 2010 – 2012)
KHAI PHÁ LUẬT KẾT HỢP
VỚI CƠ SỞ DỮ LIỆU LỚN
TIỂU LUẬN MÔN HỌC
KHAI PHÁ DỮ LIỆU
GIÁO VIÊN HƯỚNG DẪN: NHÓM HỌC VIÊN THỰC HIỆN:
TS. HOÀNG THỊ LAN GIAO TRẦN NHƯ ĐĂNG TUYÊN
LÊ BÁ MINH PHONG
NGUYỄN THỊ THANH TÂM
NGUYỄN THỊ THÀNH
NGUYỄN VŨ CÁT TƯỜNG
TRẦN THỊ MỸ NGÂN
Huế, tháng 9/2011


MỤC LỤC
LỜI NÓI ĐẦU 4
I. ĐẶT VẤN ĐỀ 5
6
II. NỘI DUNG 6
2.1 Khai phá luật kết hợp 6
2.1.1 Phân tích giỏ mua hàng 6
2.1.2 Một số khái niệm cơ bản 7
2.1.3 Khai phá luật kết hợp 8
2.2 Khai phá luật kết hợp luận lý một chiều từ tập giao tác 9
2.2.1 Thuật toán Apriori 9
2.2.2 Sinh luật kết hợp từ những tập mục phổ biến 15
2.2.3 Cải tiến hiệu suất Apriori 16
2.2.4 Khai phá tập mục phổ biến không sinh ứng cử 18
2.3 Khai phá luật kết hợp đa mức từ tập giao tác 22
2.3.1 Luật kết hợp đa mức 22
2.3.2 Phương pháp để khai phá luật kết hợp đa cấp 24
2.3.3 Kiểm tra dư thừa luật kết hợp đa cấp 28
2.4 Khai phá luật kết hợp đa chiều từ cơ sở dữ liệu quan hệ và kho dữ liệu28
2.4.1 Luật kết hợp đa chiều 28
2.4.2 Khai phá luật kết hợp đa chiều sử dụng rời rạc hóa tĩnh của thuộc tính định
lượng 30
2.4.3 Khai phá luật kết hợp định lượng 31
2.4.4 Khai phá luật kết hợp khoảng cơ sở 33
2.5 Từ khai phá sự kết hợp để phần tích sự tương quan 34
2.5.1 Các luật mạnh là không nhất thiết thích hợp 35
2.5.2 Từ phân tích kết hợp để phân tích tương quan 36
2.6 Khai phá luật kết hợp dựa trên các ràng buộc 40
2.6.1 Khai phá dựa vào ràng buộc dạng luật (metarule –guide) 40
2.6.2 Khai phá dựa vào các ràng buộc thêm về luật (rule constraints) 41

III. KẾT LUẬN 45
TÀI LIỆU THAM KHẢO 46
LỜI NÓI ĐẦU
Khai phá dữ liệu (hay Data mining) là một quá trình trích xuất thông tin
có mối quan hệ hoặc có mối tương quan nhất định từ một kho dữ liệu lớn
hoặc cực lớn nhằm mục đích dự đoán các xu thế, các hành vi trong tương lai,
hoặc tìm kiếm những tập thông tin hữu ích mà bình thường không thể nhận
diện được.
Các công cụ, kỹ thuật data mining có thể trả lời các câu hỏi mà các
công cụ truyền thống đòi hỏi rất nhiều thời gian cần thiết để có thể giải đáp
được (thậm chí các cách truyền thống không thể giải được). Nó có thể tìm
thấy được những thông tin cực kỳ hữu ích mà rất dễ bị bỏ qua hoặc không
xem xét đến để có thể dự đoán những xu thế/ hành động xảy ra trong tương
lai. Data mining là giai đoạn quan trọng nhất trong tiến trình khai phá tri thức
từ cơ sở dữ liệu, các tri thức này hỗ trợ trong việc ra quyết định trong khoa
học và kinh doanh.
Để có thể data mining một cách hiệu quả, điều đầu tiên cần phải thu
thập dữ liệu và định nghĩa lại theo các tiêu chí cần phân tích. Các kỹ thuật
data mining có thể cài đặt rất nhanh chóng trên các nền tảng phần mềm, phần
cứng phổ thông mà không cần đòi hỏi quá phức tạp, tuy vậy data mining
thường gắn liền với việc phân tích một khối lượng dữ liệu cực lớn nên cần
ứng dụng các công nghệ high performance client/server hoặc xử lý song song
(parallel programming).
Dưới sự hướng dẫn của cô giáo, TS. Hoàng Thị Lan Giao, nhóm chúng
tôi mạnh dạn tìm hiểu đề tài “Khai phá luật kết hợp trong CSDL lớn”.
Trong quá trình tìm hiểu và trình bày sẽ không tránh khỏi những thiếu sót, rất
mong cô giáo và các bạn đóng góp ý kiển để tiểu luận được hoàn thiện hơn.
NHÓM 4 – CAO HỌC KHMT B (2010 – 2012)
4
I. ĐẶT VẤN ĐỀ

Tìm kiếm, khai phá các luật kết hợp là vấn đề thú vị và có mối quan hệ
tương quan giữa các tập mục dữ liệu lớn. Với số lượng lớn các dữ liệu liên tục
được thu thập và lưu trữ, nhiều ngành công nghiệp đang quan tâm đến việc
khai phá luật kết hợp từ cơ sở dữ liệu của họ. Ví dụ như thông qua các hồ sơ
kinh doanh, hồ sơ giao dịch, qua tiếp thị, phân tích có thể giúp đưa ra các
chiến lược kinh doanh khả thi hơn.
Một ví dụ điển hình của việc khai thác luật kết hợp là phân tích thị
trường. Đây là quá trình này phân tích thói quen của khách hàng khi mua
hàng và tìm ra mối quan hệ giữa các mặt hàng với nhau khi khách hàng mua
hàng. Việc phát hiện ra các kết hợp như vậy có thể giúp các nhà bán lẻ phát
triển các chiến lược tiếp thị, biết được khách hàng thường xuyên mua các mặt
hàng nào thường đi kèm với nhau. Ví dụ, nếu khách hàng đang mua sữa, làm
thế nào họ cũng mua bánh mì đi kèm? Những thông tin này có thể giúp tăng
doanh thu bằng cách giúp các nhà bán lẻ tiếp thị, chọn lọc và lập kế hoạch cho
không gian trưng bày của họ. Ví dụ, đặt sữa và bánh mì gần nhau hơn để có
thể khuyến khích việc bán các mặt hàng này.
Làm thế nào chúng ta có thể tìm ra luật kết hợp từ một lượng lớn dữ
liệu, nơi mà các dữ liệu là giao dịch hoặc quan hệ? Làm thế nào để có thể tìm
ra các các thủ tục khai phá để khám phá các kết hợp thú vị? Cấu trúc ngôn
ngữ gì có ích trong việc định nghĩa một ngôn ngữ truy vấn dữ liệu cho việc
khai phá các luật kết hợp? Trong phần này chúng tôi sẽ lần lượt giải quyết
từng vấn đề trên.
Hình 1
5

II. NỘI DUNG
2.1 Khai phá luật kết hợp
Khai phá luật kết hợp là tìm kiếm các mối quan hệ thú vị giữa các mục
trong một tập dữ liệu nhất định. Chúng tôi bắt đầu tại phần sau bằng cách
trình bày một ví dụ về phân tích thị trường, hình thức mới nhất của khai phá

luật kết hợp. Các khái niệm cơ bản của các khai phá luật kết hợp được đưa ra
trong mục 2.1.2. Mục 2.1.3 trình bày một cách thức để phân biệt các loại luật
kết hợp
2.1.1 Phân tích giỏ mua hàng
Giả sử, là quản lý của một chi nhánh AllElectronics, bạn muốn tìm hiểu
thêm về các thói quen mua sắm khách hàng. Bạn tự hỏi: “Những nhóm các
mặt hàng nào mà khách hàng có thể mua trên cùng một chuyến đi đến siêu
thị?". Để trả lời câu hỏi của bạn, người phân tích thị trường có thể tìm hiểu
trên các hóa đơn bán lẻ của khách hàng tại cửa hàng. Các kết quả có thể được
sử dụng để lập kế hoạch tiếp thị hay quảng cáo, cũng như trong cách thiết kế
các gian hàng. Ví dụ, phân tích thị trường có thể giúp nhà quản lý thiết kế bố
trí các gian hàng với các mặt hàng thường xuyên được mua với nhau lại gần
với nhau để khuyến khích khách hàng trong việc mua sắm. Nếu khách hàng
mua máy tính cũng có xu hướng mua phần mềm quản lý thì nên bố trí, sắp
xếp cho cả hai ở gần nhau để khuyến khích khách hàng mua nhằm tăng doanh
số bán hàng của cả hai. Trong một chiến lược khác, đặt phần cứng và phần
mềm ở hai đầu của cửa hàng có thể lôi kéo khách hàng mua những mặt hàng
đó để nhận các mặt hàng khác trên đường đi. Ví dụ, sau khi quyết định mua
một máy tính đắt tiền, một khách hàng có thể tìm hệ thống bảo mật để mua
nên nghĩ đến việc tìm các phần mềm, và có thể quyết định mua một hệ thống
bảo mật mức độ gia đình là tốt. Việc phân tích thị trường cũng có thể giúp các
nhà bán lẻ lên kế hoạch mà các mặt hàng đưa vào bán với giá giảm. Nếu
khách hàng có xu hướng mua máy tính và máy in với nhau thì có thể thấy
rằng việc bán các máy in có thể ngang bằng việc bán máy tính.
Nếu chúng ta có số lượng lớn tập hợp các mặt hàng có sẵn tại cửa hàng,
ta đặt mỗi mặt hàng có một giá trị Boolean đại diện cho sự có mặt hay vắng
mặt của mặt hàng đó. Mỗi giỏ hàng có thể được đại diện bởi một vector các
giá trị Boolean gán cho biến này. Các vectơ Boolean có thể được phân tích để
6
gán cho các mặt hàng thường xuyên được mua với nhau. Ví dụ, các thông tin

mà khách hàng mua máy tính cũng có xu hướng mua phần mềm quản lý được
thể hiện trong luật kết hợp dưới đây.
computer

financial_management_software
[support=2%; confidence = 60%] (1)
Độ hỗ trợ và độ tin cậy là hai thước đo được quan tâm nhất. Chúng phản
ánh sự thành công và chắc chắn của luật. Độ hỗ trợ 2% cho luật kết hợp (1) có
nghĩa là 2% của tất cả các giao dịch theo phân tích cho thấy rằng máy tính và
phần mềm quản lý được mua cùng với nhau. Độ tin cậy 60% có nghĩa là 60%
khách hàng mua một máy tính cũng mua phần mềm. Thông thường, nguyên
tắc liên kết được coi là thú vị nếu chúng đáp ứng cả độ hỗ trợ và độ tin cậy
một ngưỡng tối thiểu. Ngưỡng này có thể được thiết lập bởi người sử dụng
hoặc các chuyên gia.
2.1.2 Một số khái niệm cơ bản
Giả sử I = {i
1
, i
2
,…, i
m
} là tập các mặt hàng. Cho D là các dữ liệu công
việc có liên quan, một tập hợp các giao dịch trong đó mỗi giao dịch T là một
tập các mục với T

I. Mỗi giao dịch có liên quan đến một định danh, được
gọi là TID. Cho A là một nhóm các mặt hằng. Một T giao dịch được gọi là
chứa A nếu và chỉ nếu A

T. Một luật kết hợp dưới hình thức A


B, với A

I, B

I và .
Một luật mà đáp ứng cả độ hỗ trợ tối thiểu (min_sup) và độ tin cậy tối
thiểu (min_conf) thì được gọi là mạnh. Chúng ta qui định min_sup và
min_conf xảy ra giữa 0% và 100%
Một tập các mục được gọi là một tập mục. Một tập mục có chứa các k
mặt hàng gọi là một k-tập mục. Tập {computer,
financial_managerment_software} là 2-tập mục. Tần suất xuất hiện của tập
mục là số các giao dịch có chứa các tập mục. Điều này cũng được biết đến
như là đếm tần số hoặc độ hỗ trợ của tập mục. Một tập mục thõa mãn độ hỗ
trợ tối thiểu nếu tần số xuất hiện của tập mục là lớn hơn hoặc bằng min_sup
và tổng số các giao dịch trong D. Số lượng các giao dịch cần thiết cho tập
mục để đáp ứng độ hỗ trợ tối thiểu gọi là tính hỗ trợ tối thiểu. Nếu tập mục
thõa mãn độ hỗ trợ tối thiểu, thì đó là tập tập mục phổ biến. k-tập mục phổ
biến được ký hiệu là L
k
.
7
Làm thế nào để khai phá được luật kết hợp trong tập dữ liệu lớn. Khai
phá luật kết hợp qua 2 bước:
-
Tìm tất cả các tập mục phổ biến. Theo định nghĩa, mỗi tập mục này sẽ
xảy ra thường xuyên như là một xác định trước độ hỗ trợ tối thiểu
-
Tạo ra các luật kết hợp mạnh cho các tập mục phổ biến.
Bằng việc định nghĩa, những quy tắc này phải đáp ứng độ hỗ trợ tối

thiểu và độ tin cậy tối thiểu.
2.1.3 Khai phá luật kết hợp
Việc phân tích thị trường chỉ là một hình thức khai phá luật kết hợp.
Trong thực tế, có nhiều loại luật kết hợp. Các luật kết hợp có thể được phân
loại dựa trên các tiêu chí sau đây:
1. Căn cứ vào loại giá trị xử lý trong luật. Nếu một luật quan tâm kết
hợp giữa sự hiện diện hay vắng mặt của mặt hàng, đó là một luật kết hợp
Boolean. Ví dụ, luật (1) ở trên là một luật kết hợp Boolean thu được từ phân
tích thị trường trong giỏ hàng.
Nếu một luật mô tả sự kết hợp giữa số lượng hoặc thuộc tính mặt hàng,
thì nó là một luật kết hợp lượng số. Trong những quy tắc này, các giá trị định
lượng cho các hạng mục hoặc các thuộc tính được chia thành khoảng thời
gian. Ví dụ luật sau là một luật kết hợp định lượng, với X đại diện cho một
khách hàng:
Age(X,“30…39”) income(X,“24K…48K”)

buys (X, high resolution
TV) (2)
Lưu ý rằng các thuộc tính định lượng age và income được rời rạc hóa
2. Căn cứ vào chiều của dữ liệu. Nếu các mục hoặc các thuộc tính trong
luật kết hợp chỉ có một chiều, thì nó là luật kết hợp đơn chiều. Lưu ý rằng quy
tắc (1) có thể được viết lại như sau:
buys(X,“computer")

buys(X,”financial_management_software") (3)
Quy tắc (1) là luật kết hợp một chiều vì nó đề cập đến chỉ một chiều của
dữ liệu là buys. Nếu một luật tham chiếu đến hai hoặc nhiều chiều, như buys,
time_of_transaction và customer_category thì nó là một luật kết hợp đa chiều.
Quy tắc (2) trên đây được coi là một đa chiều vì nó bao gồm 3 chiều: age,
income và buys.

8
3. Căn cứ vào các mức trong các luật. Một số phương pháp để khai thác
luật kết hợp có thể tìm thấy ở mức. Ví dụ, giả sử một tập hợp các luật kết hợp
được khai thác dưới đây
age(X, “30…39")

buys(X, “laptop computer") (4)
age(X, “30…34")

buys(X, “computer") (5)
Trong quy tắc (4) và (5), các mặt hàng đã mua được tham chiếu ở mức
khác nhau. (Tức là, "computer” là mức trừu tượng cao hơn "laptop
computer”). Chúng tôi tham khảo việc khai phá luật kết hợp đa mức. Nếu các
quy tắc trong một tập đã cho không tham chiếu đến các mục hoặc các thuộc
tính tại các mức khác nhau thì đó là luật kết hợp đơn mức.
2.2 Khai phá luật kết hợp luận lý một chiều từ tập giao tác.
Trong phần này, chúng ta sẽ biết đến các phương pháp khai phá luật kết
hợp hình thức đơn giản như một chiều, đơn cấp, luật kết hợp nhị phân cũng
như thảo luận về market basket analysis trong mục 6.1.1. Chúng ta sẽ bắt
đầu bằng thuật toán Apriori, đây là thuật toán cơ bản để tìm tập mục phổ biến
(trong mục 6.2.1). Một thủ tục sinh ra tập luật kết hợp mạnh từ tập mục phổ
biến được thảo luận trong mục 6.2.2. Mục 6.2.3 trình bày một số thay đổi đối
với thuật toán Apriori nhằm cải tiến hiệu quả và khả năng của nó. Mục 6.2.4
đưa ra phương pháp khai phá luật kết hợp khác, nó khác với Apriori, nó
không liên quan việc sinh ra tập mục phổ biến “ứng cử”. Mục 6.2.5 mô tả
cách nguyên lý Apriori có thể được áp dụng để cải tiến hiệu suất cho câu trả
lời “iceberg queries – truy vấn núi băng trôi” rất phổ biến trong
2.2.1 Thuật toán Apriori
Apriori là thuật toán có ảnh hưởng đối với việc tìm tập mục phổ biến cho
luật kết hợp nhị phân. Tên của thuật toán thì dựa vào nguyên nhân mà thuật

toán sử dụng đó là “prior knowledge – tiên nghiệm tri thức” của thuộc tính
tập mục phổ biến, và sẽ thấy rõ ở bên dưới. Apriori sử dụng một phương pháp
lặp được biết đến như là một phép tìm kiếm mức thông thái (level-wise), ở
đây k-tập mục được dùng để tìm ra (k + 1) – tập mục. Đầu tiên tập mục phổ
biến 1-tập mục được tìm thấy. Tập mục này được ký hiệu L
1
. L
1
được dùng để
tìm L
2
, tập mục phổ biến 2-tập mục, và nó được dùng để tìm tiếp L
3
và cứ tiếp
tục như vậy cho đến khi không tìm thấy k-tập mục nào nữa. Việc tìm mỗi L
k
đòi hỏi phải quét toàn bộ cơ sở dữ liệu.
9
Để cải tiến hiệu suất sinh “level-wise” tập mục phổ biến, một thuộc tính
quan trọng gọi là thuộc tính Apriori đưa ra dưới đây được sử dụng để giảm
không gian tìm kiếm. Chúng ta sẽ mô tả thuộc tính này sau đó chỉ ra ví dụ để
minh họa cách dùng nó.
Để sử dụng thuộc tính Apriori, tất cả tập con khác rỗng của tập mục phổ
biến phải là tập phổ biến. Thuộc tính này là nền tảng cho sự theo dõi tiếp
theo. Theo định nghĩa, nếu một tập mục I không thỏa mãn ngưỡng hỗ trợ tối
thiểu min_sup, thì I không là tập mục phổ biến, đó là P(I) < min_sup. Nếu
một mục A được thêm vào tập mục I, thì tập mục đích cũng không phổ biến
hơn I. Vì vậy I U A cũng không là tập phổ biến, nghĩa là P(I U A) < min_sup.
Thuộc tính này thuộc về một tập thuộc tính phân loại đặc biệt gọi là anti-
monotone trong ngữ cảnh mà nếu một tập không thể vượt qua kiểm tra thì tất

cả tập con của nó cũng sẽ bị lỗi y như nó vậy. Nó được gọi là anti-monotone
bởi vì thuộc tính đơn điệu trong ngữ cảnh kiểm tra bị lỗi.
“Thuộc tính Apriori được sử dụng trong thuật toán như thế nào?” Để
hiểu về vấn đề này, chúng ta sẽ cùng xem dùng L
k-1
để tìm L
k
như thế nào. Có
2 bước trong quá trình này, đó là bước kết nối và bước rút gọn.
1. Bước kết nối: để tìm L
k
, một tập ứng cử k-tập mục được sinh ra bằng
cách nối L
k-1
với chính nó. Tập mục ứng cử này được ký hiệu C
k
. Lấy l
1
và l
2

những mục trong L
k-1
. Ký hiệu l
i
[j] là mục thứ j trong l
i
(ví dụ: l
1
[k-2] là phần

tử thứ hai từ phần tử cuối cùng của mục l
1
). Theo quy ước, Apriori giả thiết
những mục trong một giao tác hoặc tập được sắp xếp theo thứ tự từ điển. Kết
nối giữa L
k-1
và L
k-1
theo dạng là mỗi thành viên L
k-1
có khả năng nối nếu phần
tử đầu tiên trong (k-2) mục là giống nhau. Nghĩa là, những thành viên l
1
và l
2
của L
k-1
được nối với nhau nếu (l
1
[1] =l
2
[1])
^
(l
1
[2] = l
2
[2])
^
….

^
(l1[k-2] =
l2[k-2])
^
(l1[k-1] < l2[k-1]). Điều kiện l
1
[k-1] < l
2
[k-1] bảo đảm mỗi tập sinh
ra đều không giống nhau. Tập mục kết quả theo dạng nối l
1
và l
2
là l
1
[1]l
1
[2]…
l
1
[k-1]l
2
[k-1].
2. Bước làm gọn: C
k
là tập cha của L
k
, nghĩa là những thành viên trong
nó có thể có hoặc không là phổ biến, nhưng tất cả trong k-tập mục phổ biến
thì chứa trong C

k
. Việc quét cơ sở dữ liệu để quyết định lượng ứng cử trong
C
k
sẽ là kết quả trong quyết định của L
k
(ví dụ, tất cả ứng cử có lượng không
nhỏ hơn độ hỗ trợ nhỏ nhất được định nghĩa là phổ biến, và vì vậy nó phụ
thuộc vào L
k
). Tuy nhiên, C
k
có thể rất lớn, và dẫn đến phải giải quyết tính
10
toán rất nặng nhọc. Để giảm kích thước C
k
, thuộc tính Apriori được sử dụng
như sau. Bất kỳ (k-1)-tập mục không phổ biến không thể có tập con k-tập mục
phổ biến. Như vậy, nếu bất kỳ (k-1)-tập con của một k-tập mục ứng cử thì
không ở trong L
k-1
, khi đó tập ứng cử cũng không thể là phổ biến và vì thế có
thể loại khỏi C
k
. Tập con này kiểm tra nhanh chóng bằng cách duy trì một
cây băm của những tập mục phổ biến.
TID List of item_IDs
T100
T200
T300

T400
T500
T600
T700
T800
T900
I1, I2, I5
I2, I4
I2, I3
I1, I2, I4
I1, I3
I2, I3
I1, I3
I1, I2, I3, I5
I1, I2, I3
Hình 6.2 Giao tác dữ liệu cho một chi nhánh điện tử
Ví dụ 6.1 Chúng ta cùng xem một ví dụ cụ thể của Apriori dựa vào tập
giao tác dữ liệu D của hình 6.2. Ở đây có 9 giao tác trong cơ sở dữ liệu này,
nghĩa là |D| = 9. Chúng ta sử dụng hình 6.3 để minh họa thuật toán Apriori
cho việc tìm tập mục phổ biến trong D.
1. Đầu tiên của thuật toán, mỗi mục là 1 thành viên của tập 1-tập mục
ứng cử, C
1
. Thuật toán đơn giản có thể quét tất cả giao tác được sắp theo số
thứ tự sự kiện của mỗi mục.
2. Giả thiết độ hỗ trợ tối thiểu của giao tác là 2 (min_sup = 2/9 = 22%).
Tập 1-tập mục phổ biến là L
1
có thể định nghĩa ngay sau đó. Nó bao gồm 1-
tập mục ứng cử thỏa ngưỡng hỗ trợ tối thiểu min_sup.

3. Để tìm ra tập 2-tập mục phổ biến, L
2
, thuật toán sử dụng L
1
nối L
1
để
sinh ra tập 2-tập mục ứng cử, C
2
.
4. Tiếp theo, những giao tác trong D được quét và độ hỗ trợ của mỗi tập
mục ứng cử trong C
2
được tính lại, như chỉ ra trong bảng giữa của hàng thứ 2
hình 6.3.
11
5. Tập 2-tập mục phổ biến L
2
được định nghĩa, gồm những 2-tập mục
ứng cử trong C
2
thỏa min_sup.
6. Sinh tập 3-tập mục ứng cử, C
3
được chi tiết trong hình 6.3. Đầu tiên,
chúng ta lấy C
3
= L
2
nối L

2
= {{I1,I2,I3}, {I1,I2,I5}, {I1,I3,I5}, {I2,I3,I4},
{I2,I3,I5}, {I2,I4,I5}}. Dựa vào thuộc tính Apriori tất cả của tập mục phổ
biến phải là tập phổ biến, chúng ta có thể định nghĩa 4 ứng cử cuối không thể
là phổ biến. Vì vậy có thể loại nó khỏi C
3
, theo đó ta lưu kết quả có được của
những kết quả không cần thiết độ hỗ trợ của chúng trong suốt quá trình quét
tuần tự tập con của D để định nghĩa L
3
. Lưu ý rằng khi cho một k-tập mục
ứng cử , chúng ta chỉ cần kiểm tra nếu (k-1)-tập con của nó là phổ biến khi
thuật toán Apriori sử dụng level-wise trong chiến lược tìm kiếm.
7. Giao tác trong D được quét theo thứ tự để định nghĩa L
3
bao gồm 3-
tập mục ứng cử trong C
3
thỏa ngưỡng hỗ trợ tối thiểu. (hình 6.3).
8. Thuật toán sử dụng L
3
nối L
3
để sinh ra tập ứng cử 4-tập mục C
4
. Mặc
dù kết quả nối là {{I1,I2,I3,I5}, tập mục này được rút gọn thì tập con của nó
là {{I2,I3,I5}} không phổ biến. Như vậy C
4
= và thuật toán kết thúc và đưa

ra được tất cả những tập mục phổ biến.
12
Hình 6.5 là giả mã cho thuật toán Apriori và các thủ tục liên quan. Bước
1 thuật toán Apriori tìm 1-tập mục phổ biến L
1
. Từ bước 2 – 10 L
k-1
được
dùng để sinh tập ứng cử C
k
theo thứ tự để tìm L
k
. Thủ tục apriori_gen sinh
các ứng cử và sau đó sử dụng thuộc tính Apriori để loại các tập con không
phổ biến (bước 3). Thủ tục này mô tả ở dưới. Để một trong tất cả các ứng cử
được sinh ra, cơ sở dữ liệu phải được quét (bước 4). Đối với mỗi giao tác,
chức năng của tập con được dùng để tìm tất cả tập con của một giao tác mà là
các ứng cử (bước 5), và số đếm của mỗi ứng cử được tích lũy (bước 6 và 7).
Cuối cùng tất cả ứng cử thỏa ngưỡng hỗ trợ tối thiểu nằm trong tập mục phổ
13
biến, thủ tục L.A có thể được gọi là để sinh ra luật kết hợp từ tập mục phổ
biến. Như là thủ tục được mô tả trong phần 6.2.2.
Thủ tục apriori_gen thực hiện 2 công việc có tên là “kết nối” và “rút
gọn”. Trong phần kết nối, L
k-1
được nối với L
k-1
để sinh ra tập ứng cử tiềm
năng (bước 1-4). Phần rút gọn (bước 5-7) thuộc tính Apriori sẽ loại những
ứng cử nào mà có tập con của nó không phải là phổ biến. Kiểm tra một tập

con là phổ biến được đưa ra ở thủ tục has_infrequent_subset.
Thuật toán: Apriori tìm tập mục phổ biến sử dụng phương pháp level-
wise lặp lại dựa vào ứng cử sinh ra
Input: cơ sở dữ liệu, D số các giao tác, ngưỡng hỗ trợ tối thiểu min_sup
Output: L tập mục phổ biến trong D
(1) L
1
= 1-tập mục phổ biến (D)
(2) for (k=2; L
k-1
≠ ; k++{
(3) C
k
=apriori_gen(L
k-1
,min_sup);
(4) for mỗi giao tác t D {//quét D để đếm
(5) C
t
=tập con(C
k
,t); //lấy tập con của t là ứng cử
(6) for mỗi ứng cử c C
t
(7) c.count++;
(8)}
(9) L
k
= {c C
k

|c.count min_sup}
(10)}
(11)return L = U
k
L
k
;
Procedure apriori_gen(L
k-1
: (k-1)-tập mục phổ biến; min_sup)
(1) for mỗi tập mục l
1
L
k-1
(2) for mỗi tập mục l
2
L
k-1
14
(3) if(l
1
[1]=l
2
[1] ^ (l
1
[2]=l
2
[2]) ^ … ^ (l
1
[k-2]=l

2
[k-2]) ^ (l
1
[k-1]<l
2
[k-
1]) then
(4) c = l
1
nối l
2
; //bước kết nối:sinh tập ứng cử
(5) if has_infrequent_subset(c,L
k-1
) then
(6) delete c; //bước rút gọn: loại ứng cử không thỏa
(7) else thêm c vào C
k
;
(8) }
(9) return C
k
;
Procedure has_infrequent_subset(c:k-tập mục ứng cử; L
k-1
: (k-1)-tập mục
phổ biến);// sử dụng prior knowledge
(1)for mỗi (k-1)-tập con s của c
(2) if s L
k-1

then
(3)return TRUE;
(4)return FALSE;
2.2.2 Sinh luật kết hợp từ những tập mục phổ biến.
Những tập mục phổ biến từ tập giao tác trong cơ sở dữ liệu D được tìm
ra, từ đó dễ dàng để ta sinh ra các luật kết hợp mạnh từ những tập mục phổ
biến này (luật kết hợp mạnh ở đây phải thỏa mãn 2 ngưỡng là độ hỗ trợ tối
thiểu min_sup và độ tin cậy tối thiểu min_conf). Điều này được thực hiện
bằng cách sử dụng công thức cho độ tin cậy sau:
Confidence (A=> B) = P(B|A) = , (6.8)
Ở đây độ hỗ trợ (A U B) là số giao tác chứa tập mục A U B và độ hỗ trợ
(A)là số giao tác chứa tập mục A. Dựa vào công thức này, những luật kết hợp
có thể được sinh ra như sau:
• Với mỗi tập mục phổ biến l, sinh tất cả tập con khác rỗng của l
• Với mỗi tập con khác rỗng của l, luật được sinh ra “s => (l-s)”
if min_conf, với min_conf là ngưỡng tin cậy tối thiểu
15
Ví dụ 6.2. chúng ta thử một ví dụ dựa vào dữ liệu là các giao tác
AllElectronics đưa ra ở hình 6.2. Dữ liệu chứa tập mục phổ biến l =
{I1,I2,I5}. Những luật kết hợp nào có thể được sinh ra từ l? Những tập con
khác rỗng của l là: {I1,I2}, {I1,I5}, {I2,I5}, {I1}, {I2} và {I5}. Ta có các luật
kết hợp được đưa ra bên dưới, mỗi liệt kê với một độ tin cậy:
l1 ^ l2 => l5, confidence= 2/4 = 50%
l1 ^ l5 => l2, confidence= 2/2 = 100%
l2 ^ l5 => l1, confidence= 2/2 = 100%
l1 => l2 ^ l5, confidence= 2/6 = 33%
l2 => l1 ^ l5, confidence= 2/7 = 29%
l5 => l1 ^ l2, confidence= 2/2 = 100%
Nếu ngưỡng tin cậy tối thiểu là 70%, thì chỉ có luật thứ 2, 3 và cuối được
đưa ra, khi đó chỉ những luật được sinh ra này gọi là luật mạnh.

2.2.3 Cải tiến hiệu suất Apriori.
“Làm cách nào để cải tiến hiệu năng của Apriori?” Nhiều cách khác
nhau đã đưa ra để cải tiến hiệu năng của thuật toán cơ bản Apriori này. Một
số trong các cách khác nhau này được liệt kê ở dưới.
 Áp dụng kỹ thuật băm (băm tập mục đếm được): Một kỹ thuật băm có
thể được dùng để giảm kích thước của k-tập mục ứng cử Ck với k > 1. Ví dụ,
khi quét mỗi giao tác trong cơ sở dữ liệu để sinh ra 1-tập mục phổ biến L1, từ
1-tập mục phổ biến trong C1 chúng ta có thể sinh tất cả 2-tập mục cho mỗi
giao tác, băm (xem hình) chúng vào các khe chứa khác nhau của cấu trúc
bảng băm và tăng số khe chứa tương ứng (hình 6.6). Một 2-tập mục mà có số
khe chứa tương ứng trong bảng băm và ngưỡng hỗ trợ ở dưới không là phổ
biến thì bị loại khỏi tập ứng cử. Khi đó một kỹ thuật băm có thể làm giảm số
lượng k-tập mục phổ biến (đặc biệt khi k=2).
16
 Giảm số giao tác (giảm số giao tác được quét trong lần lặp tiếp theo):
một giao tác không chứa bất kỳ k-tập mục phổ biến thì không thể chứa bất kỳ
(k+1)-tập mục phổ biến. Vì vậy, khi một giao tác có thể được đánh dấu hoặc
bị loại từ đó khi đó việc quét tiếp theo của cơ sở dữ liệu đối với j-tập mục, j >
k sẽ không phải làm.
 Phân vùng (phân vùng dữ liệu để tìm tập mục ứng cử): một kỹ thuật
phân vùng có thể được dùng mà kỹ thuật này đòi hỏi chỉ 2 cơ sở dữ liệu quét
đến chính tập mục phổ biến (hình 6.7). Nó bao gồm 2 pha. Trong pha 1, thuật
toán chia nhỏ các giao tác của D vào n vùng không phủ nhau. Nếu ngưỡng hỗ
trợ tối thiểu đối với giao tác trong D là min_sup, khi đó độ hỗ trợ tối thiểu tập
mục đối với vùng là min_sup x số giao tác trong vùng đó. Với mỗi vùng, tất
cả tập mục phổ biến trong vùng được tìm ra. Những tập mục phổ biến này
được đề cập như là những tập mục phổ biến cục bộ. Thủ tục sử dụng một cấu
trúc dữ liệu đặc biệt mà đối với mỗi tập mục, ghi lại TIDs của những giao tác
chứa những mục trong tập mục. Điều này cho phép tìm tất cả k-tập mục phổ
biến cục bộ, với k = 1, 2, …, trong chỉ 1 lần quét cơ sở dữ liệu.

Một tập mục phổ biến cục bộ có thể có hoặc không là tập phổ biến liên
quan đến toàn bộ cơ sở dữ liệu D. Bất kỳ tập mục mà là tập mục phổ biến
tiềm năng liên quan đến D phải là một tập mục phổ biến trong ít nhất một
trong các vùng. Vì vậy, tất cả những tập mục phổ biến cục bộ là những tập
mục ứng cử liên quan đến D. Tập các tập mục phổ biến từ tất cả các vùng
thuộc dạng những tập mục ứng cử toàn cục liên quan đến D. Trong pha 2, lần
quét thứ 2 của D dẫn vào nơi mà hỗ trợ thật sự của mỗi ứng cử được đánh giá
thứ tự để quyết định là tập mục phổ biến toàn cục. Kích thước vùng và số
vùng được cài đặt đến khi mỗi vùng có thể đặt vào trong bộ nhớ chính và vì
thế được đọc chỉ trong 1 pha.
 Lấy mẫu (khai phá trên một tập con của dữ liệu đươc cho): Ý tưởng
cơ bản của phương pháp lấy mẫu là để chọn một mẫu ngẫu nhiên S của dữ
liệu đầu vào D và khi tìm những tập mục phổ biến trong S thay thế cho D.
Theo cách này, chúng ta thỏa hiệp một vài độ chính xác ngược lại với độ tin
cậy. Kích thước mẫu của S là khi mà việc tìm kiếm để tìm những tập mục phổ
biến trong S tốt hơn trong D, nó có khả năng rằng chúng ta sẽ bị lỗi ở một số
tập mục phổ biến toàn cục. Để giảm khả năng này, ta sử dụng một ngưỡng hỗ
trợ thấp hơn ngưỡng hỗ trợ tối thiểu để tìm những tập mục phổ biến cục bộ
trong S (ký hiệu L
S
). Phần còn lại của cơ sở dữ liệu sau đó được dùng để tính
phổ biến thật sự của mỗi tập mục trong L
S
. Một cơ chế được dùng để xác định
17
tất cả tập mục phổ biến toàn cục đều được chứa trong LS. Nếu L
S
thật sự chứa
tất cả những tập mục phổ biến trong D, khi đó chỉ yêu cần một lần quét D.
Hơn thế nữa, lần duyệt thứ 2 có thể thực hiện theo thứ tự để tìm những tập

mục phổ biến mà chúng đã bị lỗi trong lần duyệt thứ nhất. Phương pháp lấy
mẫu đặc biệt hữu ích khi độ tin cậy là quan trọng ở mức tối đa như khi một
ứng tính toán mạnh phải được chạy trên một nền tảng rất phổ biến.
 Đếm tập mục động (thêm những tập ứng cử tại những điểm khác nhau
trong suốt một lần quét): kỹ thuật đếm một tập mục động được đề xuất ở khi
mà cơ sở dữ liệu được phân vào những khối đánh dấu bởi những điểm bắt
đầu. Trong sự thay đổi này, những tập mục ứng cử mới có thể được thêm tại
bất kỳ điểm bắt đầu nào, không giống trong Apriori, ở đó xác định những tập
mục ứng cử mới ngay lập tức trước khi mỗi lần quét cơ sở dữ liệu hoàn thành.
Kỹ thuật là động vì thế nó đánh giá độ hỗ trợ của tất cả những tập mục mà đã
được đếm , thêm những tập mục ứng cử mới nếu một trong những tập con của
chúng được đánh giá là phổ biến. Kết quả thuật toán yêu cầu quét cơ sở dữ
liệu ít hơn Apriori.
Những phương pháp khác nhau giải quyết khai phá luật kết hợp đa cấp
và đa chiều được thảo luận trong phần còn lại của chương này. Khai phá luật
kết hợp liên quan dữ liệu không gian, dữ liệu thời gian liên tiếp và dữ liệu đa
phương tiện được thảo luận ở chương 9.
2.2.4 Khai phá tập mục phổ biến không sinh ứng cử.
Như chúng ta đã thấy, trong nhiều trường hợp, phương pháp sinh ứng cử
và kiểm tra ứng cử của Apriori làm giảm kích thước của tập ứng cử một cách
đáng kể và dẫn đến việc thực thi có lợi. Tuy nhiên, nó có thể nhận hai giá trị
không tầm thường.
• Cần phải sinh một lượng lớn những tập ứng cử. Ví dụ, nếu 10
4
1-tập
mục phổ biến, thuật toán Apriori sẽ cần phải sinh hơn 10
7
2-tập mục ứng cử
và cộng dồn nhằm kiểm tra lần xuất hiện tập phổ biến. Hơn nữa, để khai phá
môt mẫu phổ biến kích thước 100, (a

1
, …, a
100
) phải sinh tập ứng cử hơn 2
100

10
30
tổng ứng cử.
• Cần lặp lại quá trình quét cơ sở dữ liệu và kiểm tra tập ứng cử lớn
bằng ghép mẫu. Trường hợp đặc biệt đối với khai phá mẫu dài.
18
“Chúng ta có thể thiết kế một phương pháp mà chính nó là những tập
mục phổ biến hoàn toàn mà không cần sinh ứng cử?” Một phương pháp thú vị
trong thử nghiệm này gọi là tăng mẫu phổ biến (frequent pattern growth) hay
đơn giản là FP-growth mà theo đó một chiến lược chia và chinh phục (divide
and conquer) như sau: bó dữ liệu trình diến những tập mục phổ biến vào trong
một cây mẫu phổ biến hay FP-tree, nhưng giữ lại thông tin kết hợp tập mục và
sau đó chia một bó cơ sở dữ liệu vào tập cơ sở dữ liệu điều kiện (một loại đặc
biệt của cơ sở dữ liệu trình chiếu), mỗi kết hợp với một mục phổ biến và đến
chính nó vì thề tách cơ sở dữ liệu rời nhau ra. Chúng ta cùng xem ví dụ.
Ví dụ 6.3: chúng ta quay trở lại ví dụ khai phá cơ sở dữ liệu giao tác D ở
hình 6.2 trong ví dụ 6.1 sử dụng phương pháp tăng mẫu phổ biến FP-growth.
Đầu tiên quét cơ sở dữ liệu tương tự như Apriori, cái lấy được là tập
những tập mục phổ biến (1-tập mục) và độ hỗ trợ của chúng (độ phổ biến).
Chúng ta lấy độ hỗ trợ tối thiểu là 2. Tập những tập mục phổ biến được sắp
xếp theo thứ tự giảm dần độ hỗ trợ. Kết quả tập này hay bảng liệt kê được ký
hiệu L. Khi đó, chúng ta có L = [I2: 7, I1: 6, I3: 6, I4: 2, I5: 2].
Một FP-tree có cấu trúc như sau.Đầu tiên tạo gốc của cây gán nhãn là
“null”. Quét cơ sở dữ liệu D lần thứ 2. Những mục trong mỗi giao tác được

xử lý trong L theo trình tự (ví dụ, sắp xếp theo giảm dần của độ hỗ trợ) và
một nhánh được tạo đối với mỗi giao tác. Ví dụ, quét giao tác đầu tiên.
“T100: I1, I2, I5”, chứa 3 mục (I2, I1, I5) trong L theo thứ tự, dẫn đến cấu
trúc của nhánh đầu tiên của cây có 3 nút: ((I2: 1), (I1: 1), (I5: 1)), ở đây I2 là 1
liên kết vì nó là con của gốc. I1 liên kết đến I2 và I5 liên kết đến I2. Ở giao
tác thứ hai, T200, chứa những mục I2 và I4 trong L theo thứ tự, và kết quả có
một nhánh ở đây I2 liên kết với gốc và I4 liên kết đến I2. Tuy nhiên, nhánh
này sẽ chia sẻ tiền tố giống nhau (I2) với đường đi có sắn cho T100. Do đó
chúng ta thay giá trị(gia lượng) độ ở nút I2 bằng 1 và tạo thêm một nút mới
(I4: 1) mà nút này liên kết như là con của nút (I2: 2). Trong trường hợp
chung, khi xem nhánh thêm vào cho một giao tác, độ hỗ trợ của mỗi nút mà
tiền tố như nhau thì cho giá trị là 1 và những nút cho những mục tiếp theo tiền
tố được tạo ra và liên kết phù hợp.
Để giảm giao cắt trên cây, một mục đầu bảng được tạo ra để mỗi điểm
mục tương ứng một lần xuất hiện trên cây thông qua một xích liên kết các nút.
Cây đạt được sau khi quét tất cả các giao tác xem hình 6.8 với các liên kết nút
19
kết hợp. Do đó, vấn đề của khai pha mẫu phổ biến trong cơ sở dữ liệu được
chuyển thành khai phá FP-tree.
Tiến trình khai phá của cây FP-tree như sau. Bắt đầu từ mẫu phổ biến độ
dài 1 (như 1 mẫu đầu tiên ở hậu tố), xây dựng nó nền tảng mẫu điều kiện (“cơ
sở dữ liệu nhỏ” mà chứa tập đường dẫn tiền tố lần xuất hiện trên FP-tree với
mẫu hậu tố), sau đó xây dựng nó (điều kiện) FP-tree và thực hiện khai phá đệ
quy trên một cây. Tăng mẫu đạt được bằng cách ghép mẫu hậu tố với những
mẫu phổ biến sinh ra từ điều kiện FP-tree.
Khai phá FP-tree được tóm tắt trong bảng 6.1 và chi tiết như sau. Đầu
tiên chúng ta xem I5 là mục cuối cùng trong L. Lý do ở sau sẽ trở nên rõ khi
chúng ta giải thích tiến trình khai phá FP-tree. I5 xuất hiện trong 2 nhánh của
FP-tree ở hình 6.8. (Số lần xuất hiện của I5 có thể dễ dàng tìm thấy theo
đường liên kết của nó). Dạng đường dẫn bởi những nhánh này là: ((I2 I1 I5:

1)) và ((I2 I1 I3: 1)). Vì vây, xem I5 là 1 hậu tố, nó kéo theo hai đường dẫn
tiền tố laf ((I2 I1: 1)) và ((I2 I1 I3: 1)), mà dạng thức dựa vào mẫu điều kiện
chính nó. Điều kiện FP-tree bao gồm chỉ một đường dẫn đơn (I2: 2, I1: 2); I3
không bao gồm bởi vì độ hỗ trợ của nó là 1 nhỏ hơn độ hỗ trợ tối thiểu.
Đường dẫn đơn sinh ra tất cả kết hợp của những mẫu phổ biến: I2 I5: 2, I1 I5:
2, I2 I1 I5: 2.
Đối với I4, nó có 2 dạng đường dẫn tiền tố dựa vào mẫu điều kiện, {(I2
I1: 1), (I2: 1)}, mà sinh ra một nút đơn điều kiện FP-tree (I2: 2) và nhận được
từ một mẫu phổ biến, I2 I4: 2. Chú ý rằng mặc dù I5 theo sau I4 trong nhánh
đầu tiên, ở đây không cần I5 trong phân tích ở đây khi bất kỳ mẫu phổ biến
chứa I5 đã được phân tích trong lần kiểm tra I5. Đây là lý do mà chúng ta bắt
đầu xử lý từ vị trí cuối của L hơn là làm phía trước.
Tương tự với phân tích ở dưới, điều kiện dựa vào mẫu I3 là {(I2 I1: 2),
(I2: 2), (I1: 2)}. Điều kiện FP-tree có 2 nhánh (I2: 4, I1: 2) và (I1: 2) được chỉ
ra ở hình 6.9, sinh tập mẫu: {I2 I3: 4, I1 I3: 2, I2 I1 I3: 2}. Cuối cùng, dựa
vào mẫu điều kiện là {(I2: 4)} FP-tree chứa chỉ 1 nút (I2: 4), nút này sinh 1
mẫu phổ biến, I2 I1: 4. Tiến trình khai phá được tóm tắt trong hình 6.10.
Phương pháp FP-growth làm thay đổi vấn đề tìm những tập mẫu phổ
biến dài thành tìm kiếm đệ quy ngắn hơn và sau đó kết nối theo hậu tố.
20
Thuật toán: FP-growth. Sử dụng FP-tree với mẫu phổ biến bằng cách
tăng phân mảnh mẫu.
Đầu vào: một giao tác của cơ sở dữ liệu D, ngưỡng hỗ trợ tối thiểu,
min_sup.
Đầu ra: hoàn tất tập mẫu phổ biến.
Phương pháp:
1. FP-tree được xây dựng theo các bước sau.
a) Quét một giao tác trong cơ sở dữ liệu D. Thu thập tập mục phổ
biến F và độ hỗ trợ của chúng.
b) Tạo gốc của FP-tree và gán nhãn nó là “null”. Đối với mỗi giao

tác Trans trong D làm như sau.
Lựa chọn và sắp xếp những mục phổ biến trong Trans theo thứ tự của
L. Đặt sắp xếp danh sách mục phổ biến trong Trans là [p|P], với p là phần tử
đầu tiên và P là phần còn lại của danh sách. Gọi thủ tục insert_tree([p|P], T),
thủ tục thực hiện như sau. Nếu T có con N thì N.item-name = p.item-name,
sau đó tăng độ N lên 1; ngược lại tạo một nút mới N và đặt độ là 1, nó liên kết
đến cha nó là liên kết đến nút T và nó liên kết với nút có item-name giống
nhau thông qua cấu trúc liên kết nút. Nếu P khác rỗng, gọi đệ quy
insert_tree(P, N).
2. Khai phá một FP-tree thực hiện bằng cách gọi FP-growth(FP_tree,
null) và thực hiện như sau.
Procedure FP_growth(Tree, )
(1) If Tree chứa một đường dẫn đơn P thì
(2) For mỗi biến đổi (biểu thị như ) của những nút trong đường
dẫn P
(3) Sinh mẫu U với độ hỗ trợ = độ hỗ trợ tối thiểu của những
nút trong
(4) Else với mỗi a
i
trong tiêu đề của Tree {
(5) Sinh mẫu = a
i
U với hỗ trợ = độ hỗ trợ a
i
;
(6) Xây dựng , dựa vào mẫu điều kiến s và sau đó là điều kiện của
FP-tree Tree
β
;
21

(7) If Treeβ thì Gọi F_growth (Treeβ, );}
Để sử dụng những mục phổ biến ít nhất như là hậu tố, sự lựa chọn tối ưu
được đề cập tới. Phương pháp về thực chất làm giảm giá trị tìm kiếm.
Khi cơ sở dữ liệu lớn, đôi khi nó không thực tế để xây dựng FP-tree dựa
vào bộ nhớ chính. Một phương án lựa chọn thú vị là với phân vùng đầu tiên
cơ sở dữ liệu cho vào một tập cơ sở dữ liệu trình chiếu và khi đó xây dựng
FP-tree và chính nó trong mỗi cơ sở dữ liệu trình chiếu. Do đó một tiến trình
có thể được đệ quy để áp dụng đến bất kỳ cơ sở dữ liệu trình chiếu nếu nó FP-
tree vẫn không thể đặt vào bộ nhớ chính.
Việc học trên việc thực thi của phương pháp FP-growth chỉ ra rằng nó
hiệu quả và tỉ lệ với khai phá cả hai mẫu phổ biến dài, ngắn và khoảng thứ tự
của chiều đo nhanh hơn thuật toán Apriori. Nó cũng nhanh hơn thuật toán
Tree Projection để trình chiếu một cơ sở dữ liệu vào 1 cây của cơ sở dữ liệu
trình chiếu đệ quy.
2.3 Khai phá luật kết hợp đa mức từ tập giao tác
2.3.1 Luật kết hợp đa mức
Đối với nhiều ứng dụng, thì đó là sự khác nhau để tìm ra các kết hợp
mạnh giữa các mục dữ liệu ở mức con hoặc mức gốc. Các kết hợp mạnh được
phát hiện ở mức cao có thể đại diện cho kiến thức thông thường. Các hệ thống
khai phá dữ liệu phải cung cấp khả năng cho các luật kết hợp ở nhiều mức
khác nhau
Xét ví dụ sau: Giả sử chúng ta có được cho các công việc liên quan các
giao dịch trong bảng sau cho doanh số bán hàng máy tính. Công ty
AllElectronics hiển thị các mặt hàng được mua trong mỗi giao dịch TID.
Các mặt hàng được phân cấp khái niệm cho các mức được hiển thị trong
hình sau
22
Một hệ thống phân cấp là một dãy tuần tự từ các tập khái niệm mức thấp
đến tập khái niệm mức cao hơn. Dữ liệu có thể được tổng quát hóa bằng cách
thay thế các khái niệm mức thấp bởi các khái niệm mức cao hơn hoặc xa hơn.

Khái niệm phân cấp trong hình trên có 4 mức, bắt đầu từ mức 0, 1, 2, 3. Theo
quy ước, các cấp trong một hệ thống khái niệm được đánh số từ trên xuống
dưới, bắt đầu từ mức 0 ở nút gốc (mức trừu tượng chung nhất). Ở đây, cấp 1
bao gồm computer, software, printer và computer accessor; cấp 2 bao gồm
home computer, laptop computer, education software, financial management
software, ; và cấp 3 bao gồm IBM home computer, , Microsoft educational
software, … Cấp độ 3 là cấp độ trừu tượng nhất của hệ thống này. Khái niệm
phân cấp có thể được xác định bởi người dùng quen thuộc với các dữ liệu,
hoặc có thể tồn tại ngầm trong các dữ liệu.
Các mục trong bảng trên đang ở mức thấp nhất của hệ thống phân cấp.
Đây là điều khó khăn để tìm kiếm mặt hàng được mua nhiều nhất. Ví dụ, nếu
“IBM home computer " hoặc “Sony b/w printer" xảy ra ở một phần rất nhỏ
của các giao dịch, sau đó nó có thể tìm được các kết hợp mạnh đến các mục
đó. Rất ít người có thể mua hàng như nhau, làm cho nó không có tập mục
{ IBM home computer, Sony b/w printer} thõa mãn độ hỗ trợ tối thiểu. Dễ
dàng tìm thấy các luật kết hợp mạnh giữa “IBM home computer " và “ b/w
printer” hơn là giữa “IBM home computer " và “Sony b/w printer". Tương tự
như vậy, nhiều người có thể mua “computer” và “printer” với nhau, hơn là
mua “IBM home computer " và “Sony b/w printer" với nhau. Nói cách khác,
các tập mục phổ biến chẳng hạn như {IBM home computer, b/w printer} và
{computer, printer} có nhiều khả năng có độ hỗ trợ tối thiểu hơn tập mục phổ
23
biến có chứa dữ liệu chỉ mức độ nguyên thủy, như {IBM home computer,
Sony b/w printer}. Từ đây có thể dễ dàng tìm thấy các kết hợp giữa các mục
tại nhiều mức khái niệm với nhau.
Các luật được tạo ra từ khai phá luật kết hợp với khái niệm phân cấp
được gọi là luật kết hợp đa mức.
2.3.2 Phương pháp để khai phá luật kết hợp đa cấp.
“Làm thế nào để khai thác luật kết hợp đa mức hiệu quả trên khái niệm
phân cấp?”

Chúng ta hãy xem xét một số phương pháp tiếp cận dựa trên độ hỗ trợ -
độ tin cậy. Đi từ mức khái niệm 1 xuống các mức thấp hơn, lần lượt xác định
các tập mục phổ biến ở mỗi mức, cho đến khi không tìm thấy tập mục phổ
biến. Một khi tất cả các tập mục phổ biến ở mức 1 được tìm thấy, thì các tập
mục phổ biến ở mức 2 được tìm thấy, và cứ như vậy. Đối với mỗi cấp, thuật
toán bất kỳ để phát hiện các tập mục phổ biến có thể được sử dụng, chẳng hạn
như Apriori hay chính biến thể của nó. Một số biến thể của phương pháp này
được mô tả dưới đây, và được minh họa trong hình sau, với hình chữ nhật cho
thấy một mục hoặc tập mục đã được kiểm tra, và hình chữ nhật với biên dày
cho thấy việc kiểm tra mục hoặc tập mục là phổ biến.
1. Sử dụng độ hỗ trợ tối thiểu đồng nhất cho tất cả các cấp: cùng độ hỗ
trợ tối thiểu được sử dụng khi khai thác ở mỗi cấp trừu tượng. Ví dụ, trong
hình bên dưới, độ hỗ trợ tối thiểu là 5%. Cả "computer” và “laptop computer”
được tìm thấy thường xuyên, trong khi “home computer” thì không.
Khi thống nhất độ hỗ trợ tối thiểu, các thủ tục tìm kiếm là đơn giản.
Phương pháp này cũng đơn giản khi mà người dùng được yêu cầu xác định
chỉ với một độ hỗ trợ tối thiểu. Một kỹ thuật tối ưu hóa có thể được thông qua
bằng cách tìm kiếm tránh kiểm tra các tập mục phổ biến có chứa bất kỳ mục
nào mà cha của nó không có độ hỗ trợ tối thiểu.
24
Khai phá luật kết hợp đa mức với độ hỗ trợ đồng nhất
Tuy nhiên, các phương pháp tiếp cận các mức có độ hỗ trợ đồng nhất có
một số khó khăn. Không chắc rằng mục ở mức trừu tượng cấp thấp hơn sẽ
xảy ra thường xuyên như những mức trừu tượng ở cấp cao hơn. Nếu độ hỗ trợ
đặt quá cao, nó có thể bỏ qua một số kết hợp có ý nghĩa ở mức trừu tượng xảy
ra ở các cấp thấp. Nếu độ hỗ trợ là quá thấp, nó có thể tạo ra nhiều kết hợp
không hợp lý ở mức độ trừu tượng cấp cao. Điều này cung cấp động lực cho
các phương pháp sau.
2. Giảm độ hỗ trợ tối thiểu ở mức thấp hơn:
Khai phá đa mức với việc giảm độ hỗ trợ

Mỗi cấp độ trừu tượng có hỗ trợ tối thiểu của nó. Mức trừu tượng thấp
hơn thì có ngưỡng hỗ trợ tương ứng nhỏ hơn. Ví dụ, trong hình trên, các
ngưỡng hỗ trợ tối thiểu cho cấp 1 và 2 là 5% và 3%. Như vậy, “computer”,
“laptop computer” và “home computer” đều được xem là phổ biến. Đối với
khai phá các kết hợp đa mức để giảm độ hỗ trợ, có một số chiến lược tìm
kiếm thay thế sau:
-
Độc lập theo từng cấp (level by level): Đây là việc tìm kiếm đầy đủ
theo chiều rộng, nơi mà việc xác định tập mục thường xuyên được bỏ qua.
Mỗi nút được kiểm tra, bất kể cha của nó có phải là tập mục phổ biến không
-
.
-
Level-cross fitering by single item:
-
Một mục ở cấp độ thứ i được kiểm tra nếu và chỉ nếu nút của nó tại
mức i-1 là phổ biến. Nếu một nút là phổ biến thì nút đó sẽ được kiểm tra, nếu
không, con cháu của nó được cắt bỏ. Ví dụ, trong hình sau, các nút hậu duệ
của “computer” (ví dụ, “laptop computer" và “home computer”) là không
được kiểm tra, vì “computer” không phổ biến
25

×