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

MÔ PHỎNG THUẬT TOÁN APRIORI TÌM TẬP PHỔ BIẾN & LUẬT KẾT HỢP

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 (729.94 KB, 43 trang )

ĐẠI HỌC QUỐC GIA THÀNH PHỐ HỒ CHÍ MINH
TRƯỜNG ĐẠI HỌC CÔNG NGHỆ THÔNG TIN
KHOA KHOA HỌC MÁY TÍNH
**********    **********
TIỂU LUẬN CHUYÊN ĐỀ
KHAI PHÁ DỮ LIỆU & KHO DỮ LIỆU
ĐỀ TÀI:
MÔ PHỎNG THUẬT TOÁN APRIORI
TÌM TẬP PHỔ BIẾN & LUẬT KẾT HỢP

GIẢNG VIÊN HƯỚNG DẪN:
PGS.TS ĐỖ PHÚC
HỌC VIÊN THỰC HIỆN:
LÊ MINH TRÍ
MSHV: CH1101148
Thành phố Hồ Chí Minh
Mô phỏng thuật toán Apriori tìm tập phổ biến và luật kết hợp
11/2012
MỤC LỤC
Nội dung Trang
DANH MỤC CÁC HÌNH 3
LỜI NÓI ĐẦU 4
Chương I>Giới thiệu: 5
Chương II>Khai phá dữ liệu: 6
1/Khái niệm: 6
2/ Quá trình phát hiện tri thức: 6
3/Các phương pháp khai phá dữ liệu: 9
4/Các tác vụ khai phá dữ liệu: 16
Chương III>Luật kết hợp: 19
1/Một số khái niệm cơ bản: 19
2/Khai phá luật kết hợp: 20


3/Tình trạng nghẽn cổ chai của thuật toán Apriori: 26
4/Các cải tiến của thuật toán Apriori: 26
5/Một số biến thể của thuật toán Apriori: 26
Chương IV>Cài đặt thuật toán tìm luật kết hợp: 32
1/Giới thiệu chương trình: 32
2/Một số đoạn mã chính để xây dựng chương trình: 33
3/Hướng dẫn sử dụng chương trình: 38
Chương V>Kết luận & Hướng phát triển đề tài: 40
1/Kết luận : 40
2/Hướng phát triển đề tài: 41
TÀI LIỆU THAM KHẢO 42
HVTH: Lê Minh Trí (CH1101148) Trang 2
Mô phỏng thuật toán Apriori tìm tập phổ biến và luật kết hợp
DANH MỤC CÁC HÌNH
Hình 1: Quá trình phát hiện tri thức 8
Hình 2: Hỗ trợ ra quyết định 8
Hình 3: Sơ đồ quá trình khai phá dữ liệu bằng mạng 15
Hình 4: Tri thức đạt được từ quá trình khai phá 19
Hình 5: Sơ đồ so sánh Apriori và AprioriTid 29
Hình 6: So sánh 3 thuật toán Apriori, AprioriTid và AprioriHybrid 30
Hình 7: Các giai đoạn áp dụng khuôn mẫu của thuật toán Apriori DT 31
Hình 8: Giao diện chính của chương trình 32
Hình 9: Mở tập tin 38
Hình 10: Thêm mặt hàng 38
Hình 11: Thêm giao tác 39
Hình 12: Độ hỗ trợ và độ tin cậy 39
Hình 13: Kết quả thực hiện 40
HVTH: Lê Minh Trí (CH1101148) Trang 3
Mô phỏng thuật toán Apriori tìm tập phổ biến và luật kết hợp
LỜI NÓI ĐẦU

Sự bùng nổ, phát triển của công nghệ thông tin (CNTT) và việc ứng dụng CNTT
trong nhiều lĩnh vực của đời sống, kinh tế xã hội trong nhiều năm qua cũng đồng
nghĩa với việc thu thập và lưu trữ dữ liệu càng ngày càng tăng. Chúng ta bị tràn
ngập trong dữ liệu nhưng lại đói khát tri thức. Việc tổ chức quản lý và sử dụng
những dữ liệu đó như thế nào trong tương lai lại là một bài toán nan giải của các
doanh nghiệp nói chung và trong lĩnh vực kinh doanh nói riêng. Trong môi trường
cạnh tranh, người ta cần có nhiều thông tin với tốc độ nhanh để trợ giúp việc ra
quyết định và 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 một khối lượng dữ liệu khổng lồ đã có. Với những lý do đó, các phương
pháp quản trị và khai thác cơ sở dữ liệu truyền thống ngày càng không đáp ứng
được thực tế đã làm phát triển một khuynh hướng kỹ thuật mới đó là kỹ thuật Phát
hiện tri thức và Khai phá dữ liệu (KDD - Knowledge Discovery and Data Mining).
Khai phá dữ liệu bao gồm rất nhiều những kỹ thuật phân tích dữ liệu bên trong
như: luật kết hợp, phân loại dữ liệu, gom nhóm dữ liệu, lập mô hình, dự báo…
nhưng tiềm ẩn quan trọng nhất vẫn là phương pháp tìm luật kết hợp để tạo ra các tri
thức hữu dụng. Ví dụ như chúng ta có thể dự đoán được những sản phẩm nào sẽ
được mua nhiều trong tương lai đối với hệ thống siêu thị hay dự đoán thị trường đối
với lĩnh vực kinh doanh chứng khoán…
Trong phạm vi bài tiểu luận này người nghiên cứu xin trình bày một cách tổng
quát nhất về những khái niệm của Data Mining và đồng thời cài đặt thử nghiệm
chương trình mô phỏng thuật toán Apriori để tìm tập phổ biến, từ đó suy ra các luật
kết hợp tương ứng.
Qua bài thu hoạch, em xin gửi lời cảm ơn chân thành, sâu sắc đến thầy PGS.TS
Đỗ Phúc, người đã tận tình truyền đạt cho em những kiến thức sâu rộng, bổ ích về
môn Khai phá dữ liệu và kho dữ liệu. Từ đó giúp em nắm vững hơn về cơ sở lý
thuyết, và có được một nền tảng kiến thức cơ bản tạo điều kiện thuận lợi để em
hoàn thành tốt bài tiểu luận này. Bên cạnh đó em cũng xin gửi lời cảm ơn đến các
anh/chị trong cùng khóa học đã nhiệt tình chia sẽ tài liệu và những thông tin cần
thiết trong suốt quá trình học.
Thân mến,

HVTH: Lê Minh Trí (CH1101148) Trang 4
Mô phỏng thuật toán Apriori tìm tập phổ biến và luật kết hợp
Người nghiên cứu
Chương I> Giới thiệu:
Sự bùng nổ của CNTT đồng nghĩa với việc bùng nổ dữ liệu. Theo thống kê, rất
nhiều tập đoàn lớn trên thế giới đã lưu trữ một số lượng khổng lồ về CSDL như:
Google (90 triệu tìm kiếm/ngày), trung tâm tính toán khoa học nghiên cứu năng
lượng quốc gia Mỹ tháng 3/2010 khoảng 460 TB, Youtube sau hai năm hàng trăm
triệu video, dung lượng CSDL của Youtube tăng gấp đôi sau mỗi chu kỳ 5 tháng,
tổng lượng giao vận IP trên mạng năm 2010 là 20.396 PB/tháng, ước tính từ năm
2009 đến năm 2014 tăng trung bình hàng năm khoảng 34% (nguồn sách trắng
Cissco 2010), khoảng 13,5 tỷ trang web được đánh chỉ số ngày 23/01/2011,…
Chúng ta đang ngập trong dữ liệu khoa học, dữ liệu y tế, dữ liệu nhân khẩu học,
dữ liệu tài chính, và các dữ liệu tiếp thị,… Con người không có đủ thời gian để xem
xét dữ liệu như vậy. Sự chú ý của con người đã trở thành nguồn tài nguyên quý giá.
Vì vậy, chúng ta phải tìm cách tự động phân tích dữ liệu, tự động phân loại nó, tự
động tóm tắt nó, tự động phát hiện và mô tả các xu hướng trong nó, và tự động chỉ
dẫn các dị thường. Đây là một trong những lĩnh vực năng động và thú vị nhất của
cộng đồng nghiên cứu cơ sở dữ liệu. Các nhà nghiên cứu trong lĩnh vực bao gồm
thống kê, trực quan hóa, trí tuệ nhân tạo, và học máy đang đóng góp cho lĩnh vực
này. Bề rộng của lĩnh vực làm cho nó trở nên khó khăn để nắm bắt những tiến bộ
phi thường trong vài thập kỷ gần đây (Theo Jim Gray, chuyên gia của Microsoft,
giải thưởng Turing 1998).
Thông tin từ khan hiếm tới dư dật. Điều đó mang lại lợi ích mới to lớn… tạo nên
khả năng làm được nhiều việc mà trước đây không thể thực hiện được như: nhận ra
các xu hướng kinh doanh, ngăn ngừa bệnh tật, chống tội phạm … Được quản lý tốt,
dữ liệu như vậy có thể được sử dụng để mở khóa các nguồn mới có giá trị kinh tế,
cung cấp những hiểu biết mới vào khoa học và tạo ra lợi ích từ quản lý (Theo
Kenneth Cukier).
Từ những phân tích trên ta có thể dễ dàng thấy được việc khai phá dữ liệu để

chọn lọc ra những tri thức hữu ích giữ vai trò ngày càng cao. Hiện nay khai phá dữ
liệu được ứng dụng vào rất nhiều lĩnh vực cụ thể khác nhau như: y tế, dầu khí, khí
tượng, kinh doanh, y học, web mining, tin-sinh, tài chính và thị trường chứng
khoán, bảo hiểm Để có được những tri thức hữu ích ấy thì CIO và các chuyên gia
phân tích dữ liệu cũng có tầm ảnh hưởng quan trọng không kém.
HVTH: Lê Minh Trí (CH1101148) Trang 5
Mô phỏng thuật toán Apriori tìm tập phổ biến và luật kết hợp
Chương II> Khai phá dữ liệu:
Khai phá dữ liệu (Datamining) được định nghĩa như là một quá trình chắt lọc
hay khai phá tri thức từ một lượng lớn dữ liệu. Một ví dụ hay được sử dụng là việc
khai thác vàng từ đá và cát, Datamining được ví như công việc "Đãi cát tìm vàng"
trong một tập hợp lớn các dữ liệu cho trước. Thuật ngữ Datamining ám chỉ việc tìm
kiếm một tập hợp nhỏ có giá trị từ một số lượng lớn các dữ liệu thô. Có nhiều thuật
ngữ hiện được dùng cũng có nghĩa tương tự với từ Datamining như Knowledge
Mining (khai phá tri thức), knowledge extraction (chắt lọc tri thức), data/patern
analysis (phân tích dữ liệu/mẫu), data archaeoloogy (khảo cổ dữ liệu), datadredging
(nạo vét dữ liệu),
1/ Khái niệm:
Khai phá dữ liệu là một tập hợp các kỹ thuật được sử dụng để tự
động khai thác và tìm ra các mối quan hệ lẫn nhau của dữ liệu trong một tập hợp dữ
liệu khổng lồ và phức tạp, đồng thời cũng tìm ra các mẫu tiềm ẩn trong tập dữ liệu
đó.
Khai phá dữ liệu là một bước quan trọng trong các bước của quá trình phát hiện
tri thức (Knowledge Discovery in Database – KDD).
2/ Quá trình phát hiện tri thức:
Là quá trình khám phá các tri thức mới và các tri thức hữu ích ở dạng tiềm
năng trong nguồn dữ liệu đã có. Nó không chỉ là một quá trình tuần tự từ bước đầu
tiên đến bước cuối cùng mà là một quá trình lặp và có quay trở lại các bước đã
qua.
Nếu cho rằng các điện tử và các sóng điện tử chính là bản chất của công nghệ

điện tử truyền thống thì dữ liệu, thông tin và tri thức hiện đang là tiêu điểm của một
lĩnh vực mới trong nghiên cứu và ứng dụng về phát hiện tri thức (Knowledge
Discovery) và khai phá dữ liệu (Data Mining).
Thông thường chúng ta coi dữ liệu như một dãy các bit, hoặc các số và các ký
hiệu, hoặc các “đối tượng” với một ý nghĩa nào đó khi được gửi cho một chương
trình dưới một dạng nhất định. Chúng ta sử dụng các bit để đo lường các thông tin
và xem nó như là các dữ liệu đã được lọc bỏ các dư thừa, được rút gọn tới mức tối
thiểu để đặc trưng một cách cơ bản cho dữ liệu. Chúng ta có thể xem tri thức như là
các thông tin tích hợp, bao gồm các sự kiện và các mối quan hệ giữa chúng. Các
HVTH: Lê Minh Trí (CH1101148) Trang 6
Người phân tích
dữ liệu
Người
lập trình
Nhà
thống kê
Nghệ nhân
dữ liệu
= + +
Mô phỏng thuật toán Apriori tìm tập phổ biến và luật kết hợp
mối quan hệ này có thể được hiểu ra, có thể được phát hiện, hoặc có thể được học.
Nói cách khác, tri thức có thể được coi là dữ liệu có độ trừu tượng và tổ chức cao.
Phát hiện tri thức trong các cơ sở dữ liệu là một qui trình nhận biết các mẫu hoặc
các mô hình trong dữ liệu với các tính năng: hợp thức, mới, khả ích, và có thể hiểu
được. Còn khai thác dữ liệu là một bước trong qui trình phát hiện tri thức gồm có
các thuật toán khai thác dữ liệu chuyên dùng dưới một số qui định về hiệu quả tính
toán chấp nhận được để tìm ra các mẫu hoặc các mô hình trong dữ liệu. Nói một
cách khác, mục đích của phát hiện tri thức và khai phá dữ liệu chính là tìm ra các
mẫu hoặc các mô hình đang tồn tại trong các cơ sở dữ liệu nhưng vẫn còn bị che
khuất bởi kho tàng dữ liệu.

Các nhà thống kê thì xem khai phá dữ liệu như là một qui trình phân tích được
thiết kế để thăm dò một lượng cực lớn các dữ liệu nhằm phát hiện ra các mẫu thích
hợp và/hoặc các mối quan hệ mang tính hệ thống giữa các biến và sau đó sẽ hợp
thức hoá các kết quả tìm đưọc bằng cách áp dụng các mẫu đã phát hiện được cho
các tập con mới của dữ liệu. Qui trình này bao gồm ba giai đoạn cơ bản: thăm dò,
xây dựng mô hình hoặc định nghĩa mẫu, hợp thức/kiểm chứng.
Quá trình phát hiện tri thức được mô tả tóm tắt như sau:
a) Làm sạch dữ liệu (data cleaning): loại bỏ nhiễu, hiệu chỉnh những phần
dữ liệu không nhất quán.
b) Làm giàu dữ liệu (data enrichment): tích hợp dữ liệu từ các nguồn khác
nhau như: CSDL, kho dữ liệu, file text
c) Chọn lọc dữ liệu (data selection): chọn những dữ liệu liên quan trực tiếp
đến nhiệm vụ sẽ được thu thập từ các nguồn dữ liệu ban đầu.
d) Chuyển đổi dữ liệu (data transformation): dữ liệu sẽ được chuyển đổi về
dạng phù hợp cho việc khai phá bằng cách thực hiện các thao tác nhóm
hoặc tập hợp.
e) Khai phá dữ liệu (data mining): là giai đoạn quan trọng nhất, trong đó các
phương pháp thông minh sẽ được áp dụng để trích xuất ra các mẫu dữ liệu.
f) Đánh giá mẫu (pattern evaluation): đánh giá sự hữu ích của các mẫu biểu
diễn tri thức dựa vào một số phép đo.
g) Biểu diễn dữ liệu (knowlegde presentation): sử dụng các kỹ thuật trình
diễn và trực quan hoá dữ liệu để biểu diễn tri thức khai phá được cho người
sử dụng.
HVTH: Lê Minh Trí (CH1101148) Trang 7
Mô phỏng thuật toán Apriori tìm tập phổ biến và luật kết hợp
Hình 1: Quá trình phát hiện tri thức
Quá trình khám phá tri thức là một chuỗi lặp gồm các bước được thực thi với:
a) Các nguồn dữ liệu (Data Sources)
b) Nhà kho dữ liệu (Data Warehouses)
c) Thăm dò dữ liệu (Data Exploration)

d) Khai phá dữ liệu (Data Mining)
e) Trình bày dữ liệu (Data Presentation)
f) Ra quyết định (Making Decisions)
Hình 2: Hỗ trợ ra quyết định
HVTH: Lê Minh Trí (CH1101148) Trang 8
Làm giàu dữ liệu
Làm sạch dữ
liệu
Chọn lọc dữ liệu
Chuyển đổi dữ liệu
Khai phá dữ liệu
Đánh giá mẫu
Biểu diễn dữ liệu
Mô phỏng thuật toán Apriori tìm tập phổ biến và luật kết hợp
3/ Các phương pháp khai phá dữ liệu:
Quá trình khai phá dữ liệu là quá trình phát hiện mẫu, trong đó, giải thuật khai
phá dữ liệu 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
loại (Classification), hồi quy (Regression), phân nhóm (Clustering), tổng hợp
(Summarization), mô hình ràng buộc (Dependency modeling), dò tìm biến đổi và độ
lệch (Change and Deviation Dectection), biểu diễn mô hình (Model
Representation), kiểm định mô hình (Model Evaluation), phương pháp tìm kiếm
(Search Method),…
3.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, đánh giá mô hình, tìm kiếm mô hình.
3.1.1/ Biểu diễn mô hình:
Mô hình được biểu diễn bằng một ngôn ngữ L để mô tả các mẫu có thể khai thác
được. Nếu sự mô tả quá bị hạn chế thì sẽ không thể học được 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 mô tả cây quyết
định sử dụng phân chia các nút theo trường đơn, chia không gian đầu vào thành các

mặt siêu phẳng song song với các trục thuộc tính. Phương pháp cây quyết định như
vậy không thể khai thác được từ dữ liệu dạng công thức x=y dù cho tập học có to
đến đâu đ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 mô tả. Một điều cũng khá quan trọng là người thiết kế giải thuật cần
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
mô 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ở
nê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 các tham số được xác định dựa trên dữ liệu (trong một số trường
hợp, mô hình được xây dựng độc lập với dữ liệu trong khi đối với 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 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 sử dụng để làm cho các 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 lạ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, v.v…, một số giải thuật học máy (ví dụ như suy
HVTH: Lê Minh Trí (CH1101148) Trang 9
Mô phỏng thuật toán Apriori tìm tập phổ biến và luật kết hợp
diễn cây quyết định và các kỹ thuật học có thầy khác), mạng neural, suy diễn hướng
tình huống (case-based reasoning), các kỹ thuật phân lớp.
3.1.2/ Đánh giá mô hình:
Đánh giá xem một mẫu có đáp ứng được các tiêu chuẩn của quá trình phát hiện
tri thức hay không. Việc đánh giá độ chính xac dự đoán dựa trên đánh giá chéo
(cross validation). Đánh giá chất lượng mô tả liên quan đến độ chính xác dự đoán,
độ mới, khả năng sử dụng, khả năng hiểu được của mô hình. Cả hai chuẩn thống kê
và chuẩn logic đều có thể được sử dụng để đánh giá mô hình. Ví dụ như luật xác
suất lớn nhất có thể dùng để lựa chọn các tham số cho mô hình sao cho xử lý phù

hợp nhất với tập dữ liệu học. Việc đánh giá mô hình được thực hiện qua kiểm tra dữ
liệu (trong một số trường hợp kiểm tra với tất cả các dữ liệu, trong một số trường
hợp khác chỉ kiểm tra với dữ liệu thử). Ví dụ như đối với mạng neural, việc đánh
giá mô hình được thực hiện dựa trên việc kiểm tra dữ liệu (bao gồm cả dữ liệu học
và dữ liệu thử), đối với nhiệm vụ dự đoán thì việc đánh giá mô hình ngoài kiểm tra
dữ liệu còn dựa trên độ chính xác dự đoán.
3.1.3/ Phương pháp tìm kiếm:
Phương pháp tìm kiếm 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 thuậ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 neural. 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.
3.2/ Một số phương pháp khai thác dữ liệu phổ biến:
3.2.1/ Phương pháp quy nạp:
HVTH: Lê Minh Trí (CH1101148) Trang 10
Mô phỏng thuật toán Apriori tìm tập phổ biến và luật kết hợ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. 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.
3.2.2/ Phương pháp cây quyết định và luật:
 Cây quyết định: Cây quyết định là một mô tả tri thức dạng đơn giản nhằm phân
các đối tượng dữ liệu thành một số lớp nhất định. Các nút của cây được gán
nhãn là tên các thuộc tính, các cạnh được gán các giá trị có thể của các thuộc
tính, các lá mô tả các lớp khác nhau. Các đối tượng được phân lớp theo các
đường đi trên cây, qua các cạnh tương ứng với các giá trị, thuộc tính của đối
tượng tới lá.
 Tạo luật: Các luật được tạo ra nhằm suy diễn một số mẫu dữ liệu có ý nghĩa về
mặt thống kê. Các luật có dạng Nếu P thì Q, với P là mệnh đề đúng với một
phần trong CSDL, Q là mệnh đề dự đoán.
Cây quyết định và luật có ưu điểm là hình thức mô tả đơn giản, mô hình suy
diễn khá dễ hiểu đối với người sử dụng. Tuy nhiên, giới hạn của nó là mô tả cây và
luật chỉ có thể biểu diễn được một số dạng chức năng và vì vậy giới hạn về cả độ
chính xác của mô hình.
Đối với quy mô lớn, người ta dựa trên các phương pháp đánh giá mô hình theo
xác suất với các mức độ mô hình phức tạp khác nhau. Các phương pháp tìm kiếm
“tham lam”, liên quan đến việc tăng và rút gọn các luật và các cấu trúc cây, chủ yếu
được sử dụng để khai thác không gian siêu mũ (super-exponential space) của các
HVTH: Lê Minh Trí (CH1101148) Trang 11
Mô phỏng thuật toán Apriori tìm tập phổ biến và luật kết hợp
mô hình. Cây và luật chủ yếu được sử dụng cho việc mô hình hóa dự đoán, phân

lớp (Apte & Hong; Fayyad, Djorgovski, & Wei) và hồi quy. Chúng cũng có thể
được áp dụng cho việc tóm tắt và mô hình hóa các mô tả (Agrawal et al.).
3.2.3/ 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.
Việc phát triển một thuật toán phải phát hiện luật này trong cơ sở dữ liệu lớn là
không khó. Tuy nhiên, vấn đề là ở chỗ có thể có rất nhiều luật kiểu này hoặc là ta
chỉ biết một tập nhỏ dữ liệu trong cơ sở dữ liệu lớn thoả mãn tiền đề của luật. Ví dụ
chỉ có số ít người mua sách tiếng anh mà mua thêm đĩa CD. Số lượng các luật kết
hợp trong một số cơ sở dữ liệu lớn gần như vô hạn. Do vậy thuật toán sẽ không thể
phát hiện hết các luật và không phân biệt được luật nào là thông tin thực sự có giá
trị và thú vị.
Vậy chúng ta đặt ra câu hỏi là luật kết hợp nào là thực sự có giá trị? Chẳng hạn
ta có luật: Âm nhạc, ngoại ngữ, thể thao = > CD, nghĩa là những người mua sách
âm nhạc, ngoại ngữ, thể thao thì cũng mua đĩa CD. Lúc đó ta quan tâm đến số
lượng trường hơp khách hàng thoả mãn luật này trong cơ sở dữ liệu hay độ hỗ trợ
cho luật này. Độ hỗ trợ cho luật chính là phần trăm số bản ghi có cả sách âm nhạc,
ngoại ngữ, thể thao và đĩa CD hay tất cả những người thích cả ba loại sách trên.
Tuy nhiên giá trị hỗ trợ là không đủ. Có thể có trường hợp ta có một nhóm tương
đối những người đọc cả ba loại sách trên nhưng lại có một nhóm với lượng lớn hơn
những người thích sách thể thao, âm nhạc, ngoại ngữ mà không thích mua đĩa CD.
Trong trường hợp này tính kết hợp rất yếu mặc dù độ hỗ trợ tương đối cao. Như vậy
chúng ta cần thêm một độ đo thứ hai đó là độ tin cây (Confidence). Độ tin cậy là phần
trăm các bản ghi có đĩa CD trong số các bản ghi có sách âm nhạc, thể thao, ngoại ngữ.
Nhiệ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 dạng X
=> B sao cho tần số của luật không nhỏ hơn ngưỡng Minsup cho trước và độ tin cậy
của luật không nhỏ hơn ngưỡng Minconfi 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.
HVTH: Lê Minh Trí (CH1101148) Trang 12
Mô phỏng thuật toán Apriori tìm tập phổ biến và luật kết hợp
3.2.4/ Phương pháp phân lớp và hồi quy phi tuyến:
Các phương pháp này bao gồm một họ các kỹ thuật dự đoán để làm cho các kết
hợp tuyến tính và phi tuyến của các hàm cơ bản (hàm sigmoid, hàm spline (hàm
mành), hàm đa thức) phù hợp với các kết hợp của các giá trị biến vào. Các phương
pháp thuộc loại này như mạng neural truyền thẳng, phương pháp mành thích nghi,
v.v… (Friedman 1989, Cheng & Titterington 1994, Elder & Pregibon). Xét về mặt
đánh giá mô hình, mặc dù mạng neural với kích thước tương đối hầu như lúc nào
cũng có thể mô phỏng bất kỳ hàm nào gần đúng với một độ chính xác mong muốn
nào đó. Nhưng để tìm được một mạng có kích thước tối ưu cho một tập dữ liệu xác
định lại là một việc khá công phu và không ai có thể biết chắc có tìm ra được kích
thước đó hay không. Các phương pháp sai số bình phương chuẩn (standard squared
error) và các hàm entropy (cross entropy loss function) được sử dụng để học có thể
được xem như các hàm khả năng logarit (log-likelihood functions) khi phân lớp và
hồi quy (Geman, Bienentstock & Doursat 1992; Ripley 1994). Lan truyền ngược sai
số là một phương pháp tìm kiếm tham số thực hiện việc giảm gradient trong không
gian tham số (ở đây là các trọng số) để tìm một giá trị cực đại cục bộ của hàm xác
suất bắt đầu từ các giá trị khởi tạo ngẫu nhiên. Các phương pháp hồi quy phi tuyến
mặc dù rất có khả năng diễn tả nhưng lại rất khó diễn giải thành các luật.
3.2.5/ Phương pháp phân nhóm và phân đoạn:
Kỹ thuật phân nhóm và phân đoạn là những kỹ thuật phân chia dữ liệu sao cho
mỗi phần hoặc mỗi nhóm giống nhau theo một tiêu chuẩn nào đó. Mối quan hệ
thành viên của các nhóm có thể dựa trên mức độ giống nhau của các thành viên và
từ đó xây dựng nên các luật ràng buộc giữa các thành viên trong nhóm. Một kỹ
thuật phân nhóm khác là xây dựng nên các hàm đánh giá các thuộc tính của các
thành phần như là hàm của các tham số của các thành phần. Phương pháp này được
gọi là phương pháp phân hoạch tối ưu (optimal partitioning). Một ví dụ của phương
pháp phân nhóm theo độ giống nhau là cơ sở dữ liệu khách hàng, ứng dụng của

phương pháp tối ưu ví dụ như phân nhóm khách hàng theo số các tham số và các
nhóm thuế tối ưu có được khi thiết lập biểu thuế bảo hiểm.
Mẫu đầu ra của quá trình khai phá dữ liệu sử dụng kỹ thuật này là các tập mẫu
chứa các dữ liệu có chung những tính chất nào đó được phân tách từ cơ sở dữ liệu.
Khi các mẫu được thiết lập, chúng có thể được sử dụng để tái tạo các tập dữ liệu ở
dạng dễ hiểu hơn, đồng thời cũng cung cấp các nhóm dữ liệu cho các hoạt động
cũng như công việc phân tích. Đối với cơ sở dữ liệu lớn, việc lấy ra các nhóm này là
rất quan trọng.
HVTH: Lê Minh Trí (CH1101148) Trang 13
Mô phỏng thuật toán Apriori tìm tập phổ biến và luật kết hợp
3.2.6/ Phương pháp dựa trên mẫu:
Sử dụng các mẫu mô tả từ cơ sở dữ liệu để tạo nên một mô hình dự đoán các
mẫu mới bằng cách rút ra những thuộc tính tương tự như các mẫu đã biết trong mô
hình. Các kỹ thuật bao gồm phân lớp theo láng giềng gần nhất, các giải thuật hồi
quy (Dasarathy 1991) và các hệ thống suy diễn dựa trên tình huống (case-based
reasoning) (Kolodner 1993).
Khuyết điểm của các kỹ thuật này là cần phải xác định được khoảng cách, độ đo
giống nhau giữa các mẫu. Mô hình thường được đánh giá bằng phương pháp đánh
giá chéo trên các lỗi dự đoán (Weiss & Kulikowski, 1991). “Tham số” của mô hình
được đánh giá có thể bao gồm một số láng giềng dùng để dự đoán và số đo khoảng
cách. Giống như phương pháp hồi quy phi tuyến, các phương pháp này khá mạnh
trong việc đánh giá xấp xỉ các thuộc tính, nhưng lại rất khó hiểu vì mô hình không
được định dạng rõ ràng mà tiềm ẩn trong dữ liệu.
3.2.7/ Phương pháp mô hình phụ thuộc dựa trên đồ thị xác suất:
Các mô hình đồ thị xác định sự phụ thuộc xác suất giữa các sự kiện thông qua
các liên hệ trực tiếp theo các cung đồ thị (Pearl 1988; Whittaker, 1990). Ở dạng đơn
giản nhất, mô hình này xác định những biến nào phụ thuộc trực tiếp vào nhau.
Những mô hình này chủ yếu được sử dụng với các biến có giá trị rời rạc hoặc phân
loại. Tuy nhiên cũng được mở rộng cho một số trường hợp đặc biệt như mật độ
Gaussian hoặc cho các biến giá trị thực.

Trong trí tuệ nhân tạo và thống kê, các phương pháp này ban đầu được phát triển
trong khuôn khổ của các hệ chuyên gia. Cấu trúc của mô hình và các tham số (xác
suất có điều kiện được gắn với các đường nối của đồ thị) được suy ra từ các chuyên
gia. Ngày nay, các phương pháp này đã được phát triển, cả cấu trúc và các tham số
mô hình đồ thị đều có thể học trực tiếp từ cơ sở dữ liệu (Buntine; Heckerman). Tiêu
chuẩn đánh giá mô hình chủ yếu là ở dạng Bayesian. Việc đánh giá tham số là một
sự kết hợp các đánh giá dạng đóng (closed form estimate) và các phương pháp lặp
phụ thuộc vào việc biến được quan sát trực tiếp hay ở dạng ẩn. Việc tìm kiếm mô
hình dựa trên các phương pháp leo đồi trên nhiều cấu trúc đồ thị. Các tri thức trước
đó, ví dụ như việc sắp xếp một phần các biến dựa trên mối quan hệ nhân quả, có thể
rất có ích trong việc làm giảm không gian tìm kiếm mô hình. Mặc dù phương pháp
này mới ở giai đoạn đầu của việc nghiên cứu nhưng nó đã cho thấy nhiều hứa hẹn
vì dạng đồ thị dễ hiểu hơn và biểu đạt được nhiều ý nghĩa hơn đối với con người.
3.2.8/ Phương pháp mô hình học quan hệ:
HVTH: Lê Minh Trí (CH1101148) Trang 14
Mô phỏng thuật toán Apriori tìm tập phổ biến và luật kết hợp
Trong khi mẫu chiết xuất được bằng các luật suy diễn và cây quyết định gắn
chặt với các mệnh đề logic (propositional logic) thì mô hình học quan hệ (còn được
gọi là lập trình logic quy nạp – inductive logic programming) sử dụng ngôn ngữ
mẫu theo thứ tự logic trước (first-order logic) rất linh hoạt. Mô hình này có thể dễ
dàng tìm ra công thức X=Y. Cho đến nay, hầu hết các nghiên cứu về các phương
pháp đánh giá mô hình này đều theo logic trong tự nhiên.
3.2.9/ Phương pháp Text Mining:
Kỹ thuật này được ứng dụng trong một loạt các công cụ phần mềm thương mại.
Công cụ khai phá dữ liệu rất phù hợp với việc tìm kiếm, phân tích và phân lớp các
dữ liệu văn bản không định dạng. Các lĩnh vực ứng dụng như nghiên cứu thị trường,
thu thập tình báo, v.v… Khai phá dữ liệu dạng văn bản đã được sử dụng để phân
tích câu trả lời cho các câu hỏi mở trong khảo sát thị trường, tìm kiếm các tài liệu
phức tạp.
3.2.10/ Phương pháp mạng Neural:

Mạng neural là tiếp cận tính toán mới liên quan đến việc phát triển các cấu trúc
toán học với khả năng học. Các phương pháp là kết quả của việc nghiên cứu mô
hình học của hệ thống thần kinh con người. Mạng neural có thể đưa ra ý nghĩa từ
các dữ liệu phức tạp hoặc không chính xác và có thể được sử dụng để chiết xuất các
mẫu và phát hiện ra các xu hướng quá phức tạp mà con người cũng như các kỹ thuật
máy tính khác không thể phát hiện được.
Khi đề cập đến khai thác dữ liệu, người ta thường đề cập nhiều đến mạng neural.
Tuy mạng neural có một số hạn chế gây khó khăn trong việc áp dụng và triển khai
nhưng nó cũng có những ưu điểm đáng kể. Một trong số những ưu điểm phải kể đến
của mạng neural là khả năng tạo ra các mô hình dự đoán có độ chính xác cao, có thể
áp dụng được cho rất nhiều loại bài toán khác nhau, đáp ứng được nhiệm vụ đặt ra
của khai phá dữ liệu như phân lớp, phân nhóm, mô hình hóa, dự báo các sự kiện
phụ thuộc vào thời gian, v.v…
Hình 3: Sơ đồ quá trình khai phá dữ liệu bằng mạng
Mẫu chiết xuất bằng mạng neural được thể hiện ở các nút đầu ra của mạng.
Mạng neural sử dụng các hàm số chứ không sử dụng các hàm biểu tượng (symbol
HVTH: Lê Minh Trí (CH1101148) Trang 15
Dữ liệu
Mô hình
mạng
Mẫu chiết
xuất được
Mô phỏng thuật toán Apriori tìm tập phổ biến và luật kết hợp
functions) để tính mức tích cực của các nút đầu ra và cập nhật các trọng số của nó.
Trong mạng lan truyền ngược mà ta sẽ đề cập cụ thể ở phần sau, mỗi nút khái niệm
được kết hợp với một ngưỡng. Vì vậy trong mạng lan truyền ngược, các mẫu (hay
các luật) của một khái niệm là sự kết hợp của các trọng số lớn hơn ngưỡng.
Đặc điểm của mạng neural là không cần gia công dữ liệu nhiều trước khi bắt đầu
quá trình học như các phương pháp khác. Tuy nhiên, để có thể sử dụng mạng neural
có hiệu quả cần phải xác định các yếu tố khi thiết kế mạng như:

- Mô hình mạng là gì?
- Mạng cần có bao nhiêu nút?
- Khi nào thì việc học dừng để tránh bị “học quá”?
- v.v…
Ngoài ra, còn rất nhiều bước quan trọng cần phải làm để tiền xử lý dữ liệu trước
khi đưa vào mạng neural để mạng có thể hiểu được (ví dụ như việc chuẩn hóa dữ
liệu, đưa tất cả tiêu chuẩn dự đoán về dạng số).
Mạng neural được đóng gói với những thông tin trợ giúp của các chuyên gia
đáng tin cậy và được các chuyên gia đảm bảo các mô hình này làm việc tốt. Sau khi
học, mạng có thể được coi là một chuyên gia trong lĩnh vực thông tin mà nó vừa
được học.
4/ Các tác vụ khai phá dữ liệu:
Các tác vụ khai phá dữ liệu bao gồm khai phá mô tả lớp/khái niệm (đặc trưng
hóa và phân biệt hóa dữ liệu), khai phá luật kết hợp/tương quan, phân lớp, dự đoán,
gom cụm, phân tích xu hướng, phân tích độ lệch và phần tử biên, phân tích độ
tương tự,…
4.1/ Năm thành tố cơ bản để đặc tả một tác vụ khai phá dữ liệu:
• Dữ liệu cụ thể sẽ được khai phá (task-relevant data): Phần dữ liệu từ các dữ
liệu nguồn được quan tâm. Tương ứng với các thuộc tính hay chiều dữ liệu. Bao
gồm: tên kho dữ liệu/cơ sở dữ liệu, các bảng dữ liệu hay các khối dữ liệu, các điều
kiện chọn dữ liệu, các thuộc tính hay chiều dữ liệu được quan tâm, các tiêu chí gom
nhóm dữ liệu.
• Loại tri thức sẽ đạt được (kind of knowledge): Bao gồm: đặc trưng hóa dữ
liệu, phân biệt hóa dữ liệu, mô hình phân tích kết hợp hay tương quan, mô hình
phân lớp, mô hình dự đoán, mô hình gom cụm, mô hình phân tích phần tử biên, mô
HVTH: Lê Minh Trí (CH1101148) Trang 16
Mô phỏng thuật toán Apriori tìm tập phổ biến và luật kết hợp
hình phân tích tiến hóa. Bao gồm: đặc trưng hóa dữ liệu, phân biệt hóa dữ liệu, mô
hình phân tích kết hợp hay tương quan, mô hình phân lớp, mô hình dự đoán, mô
hình gom cụm, mô hình phân tích phần tử biên, mô hình phân tích tiến hóa.

• Tri thức nền (background knowledge): Tương ứng với lĩnh vực cụ thể sẽ
được khai phá. Hướng dẫn quá trình khám phá tri thức: Hỗ trợ khai phá dữ liệu ở
nhiều mức trừu tượng khác nhau. Đánh giá các mẫu được tìm thấy. Bao gồm: các
phân cấp ý niệm, niềm tin của người sử dụng về các mối quan hệ của dữ liệu.
• Các độ đo (interestingness measures): Thường đi kèm với các ngưỡng giá trị
(threshold). Dẫn đường cho quá trình khai phá hoặc đánh giá các mẫu được tìm
thấy. Tương ứng với loại tri thức sẽ đạt được và do đó, tương ứng với tác vụ khai
phá dữ liệu cụ thể sẽ được thực thi. Kiểm tra: tính đơn giản (simplicity), tính chắc
chắn (certainty), tính hữu dụng (utility), tính mới (novelty).
4.2/ Bốn thành phần cơ bản của một giải thuật khai phá dữ liệu:
• Cấu trúc mẫu hay cấu trúc mô hình (model or pattern structure):
 Mô hình là mô tả của tập dữ liệu, mang tính toàn cục ở mức cao.
 Mẫu là đặc điểm, đặc trưng của dữ liệu, mang tính cục bộ, chỉ cho
một vài bản ghi, đối tượng hay vài biến.
 Cấu trúc biểu diễn các dạng chức năng chung với các thông số chưa
được xác định trị.
 Cấu trúc mô hình là một tóm tắt toàn cục về dữ liệu.
 Cấu trúc mẫu là những cấu trúc liên quan một phần tương đối nhỏ của
dữ liệu hay của không gian dữ liệu.
• Hàm tỉ số (score function):
 Hàm tỉ số là hàm xác định một cấu trúc mô hình hay mẫu đáp ứng tập
dữ liệu đã cho tốt ở mức độ nào đó.
 Hàm tỉ số cho biết liệu một mô hình có tốt hơn các mô hình khác hay
không.
 Hàm tỉ số không nên phụ thuộc nhiều vào tập dữ liệu, không nên
chiếm nhiều thời gian tính toán.
 Một vài hàm tỉ số thông dụng như: likelihood, sum of squared errors,
misclassification rate,…
HVTH: Lê Minh Trí (CH1101148) Trang 17
Mô phỏng thuật toán Apriori tìm tập phổ biến và luật kết hợp

• Phương pháp tìm kiếm và tối ưu hóa (optimization and search method):
 Mục tiêu của phương pháp tìm kiếm và tối ưu hóa là xác định cấu trúc
và giá trị các thông số đáp ứng tốt nhất hàm tỉ số từ dữ liệu sẵn có.
 Tìm kiếm các mẫu và mô hình.
 Không gian trạng thái: tập rời rạc các trạng thái
 Phương pháp tìm kiếm: chiến lược tham lam, có dùng
heuristics, chiến lược nhánh-cận.
 Tối ưu hóa thông số.
• Chiến lực quản lý dữ liệu (data management strategy):
 Dữ liệu được khai phá
 Ít, toàn bộ được xử lý đồng thời trong bộ nhớ chính.
 Nhiều, trên đĩa, một phần được xử lý đồng thời trên bộ nhớ
chính.
 Chiến lược quản lý dữ liệu hỗ trợ cách dữ liệu được lưu trữ, đánh chỉ
mục và truy xuất.
 Giải thuật khai phá dữ liệu hiệu quả (efficiency) và có tính co
giãn (scalability) với dữ liệu được khai phá.
 Công nghệ cơ sở dữ liệu.
4.3/ Tri thức đạt được từ quá trình khai phá:
• Tri thức đạt được có thể có tính mô tả hay dự đoán tùy thuộc vào quá trình
khai phá cụ thể.
 Mô tả (Descriptive): có khả năng đặc trưng hóa các đặc tính chung
của dữ liệu được khai phá.
 Dự đoán (Predictive): có khả năng suy luận từ dữ liệu hiện có để dự
đoán.
• Tri thức đạt được có thể có cấu trúc, bán cấu trúc hoặc phi cấu trúc.
• Tri thức đạt được có thể được hoặc không được người dùng quan tâm. Từ đó
suy ra các độ đo đánh giá tri thức đạt được.
• Tri thức đạt được có thể được dùng trong việc hỗ trợ ra quyết định, điều
khiển quy trình, quản lý thông tin, xử lý truy vấn,…

HVTH: Lê Minh Trí (CH1101148) Trang 18
Mô phỏng thuật toán Apriori tìm tập phổ biến và luật kết hợp
Hình 4: Tri thức đạt được từ quá trình khai phá.
Chương III> Luật kết hợp:
1/ Một số khái niệm cơ bản:
Kí hiệu I = {i1, i2, …, im} là tập các thuộc tính được gọi là các mục dữ liệu. D
là cơ sở dữ liệu của tập các giao tác, mỗi giao tác T là một tập mục con của tập mục
I, T
i


I. Mỗi giao tác T
i
có một định danh duy nhất gọi là TID (Transaction
Identification). X={i1, i2,…,ik}

I được gọi là một tập mục hay một tập k-mục nếu
nó chứa k mục. Một giao tác T được gọi là chứa tập mục X chỉ khi X

T. Mỗi
giao tác là một bộ <TID, I>, I là tập mục.
Luật kết hợp là một mối liên hệ điều kiện giữa hai tập các hạng mục dữ liệu X
và Y theo dạng sau: Nếu X thì Y, và ký hiệu là X ⇒ Y. Ta có luật kết hợp X ⇒ Y,
nếu X ⊂ I, Y ⊂ I và X ∩ Y = ∅. Chúng phụ thuộc vào 2 đại lượng cơ bản là độ hỗ
trợ (S) và độ tin cậy (C).
a) Độ hỗ trợ (Support): Độ hỗ trợ của một luật r = X

Y là tỉ số phần
trăm của số giao tác trong D có chứa X


Y. Kí hiệu Supp(r).
Supp(r) thể hiện phạm vi ảnh hưởng của luật trên toàn bộ cơ sở dữ liệu.
Ngưỡng nhỏ nhất của độ hỗ trợ gọi là minsupp
Supp(r)=
)(
)(
DCard
YXCard ∪
(%) 0

Supp(r)

1
Với:
Card(X

Y): tập các giao tác trên CSDL có chứa cả vế trái lẫn vế phải.
Card(D): tập tất cả các dòng trên CSDL.
HVTH: Lê Minh Trí (CH1101148) Trang 19
Mô phỏng thuật toán Apriori tìm tập phổ biến và luật kết hợp
b)Độ tin cậy (Confidence): Độ tin cậy của một luật r = X

Y là tỉ số phần
trăm của số giao tác trong D chứa X

Y với số giao tác trong D có chứa tập mục
X. Kí hiệu Conf(r).
Conf(r) thể hiện tính chính xác, tính đúng đắn hay khả năng tin cậy của luật
trong phạm vi ảnh hưởng của luật (được xác định bởi Supp(r)). Ngưỡng nhỏ nhất
của độ tin cậy gọi là minconf

Conf(r) =
(%)
)(
)(
XCard
YXCard ∪
0

Conf(r)

1.
Với:
Card(X

Y): tập các giao tác trên CSDL có chứa cả vế trái lẫn vế phải.
Card(X): tổng số dòng chứa vế trái của luật trên CSDL.
c)Large ItemSet: Tập các hạng mục dữ liệu (ItemSet) có độ hỗ trợ (Supp)
lớn hơn hay bằng giá trị của ngưỡng nhỏ nhất (minsupp).
d)Small ItemSet : Tập các hạng mục dữ liệu (ItemSet) có độ hỗ trợ (Supp)
nhỏ hơn giá trị của ngưỡng nhỏ nhất (minsupp).
 Tóm lại: Với L là một Large ItemSet, A là một tập con khác rỗng của L, nếu
tỉ lệ phần trăm giữa Support của L so với Support của A lớn hơn hay bằng độ tin
cậy nhỏ nhất (minconf) thì ta có luật kết hợp A ⇒ (L\A).
2/ Khai phá luật kết hợp:
Khai phá luật kết hợp (Association Rule Discovery): là kỹ thuật rất quan trọng
trong lĩnh vực khai phá dữ liệu. Mục đích của việc khai phá luật kết hợp là tìm ra
các mẫu phổ biến, mối quan hệ, sự kết hợp hay mối tương quan giữa các đối tượng
trong khối lượng lớn dữ liệu.
Mẫu phổ biến (Frequent pattern): là mẫu (tập mục, dãy mục…) mà xuất hiện
phổ biến trong 1 CSDL.

2.1/ Tạo luật kết hợp:
Quá trình tạo luật kết hợp qua hai bước chính như sau:
Bước 1: Tìm các tập phổ biến: các tập các phần tử có độ support tối thiểu.
• Mẹo Apriori: Tập con của tập phổ biến cũng là một tập phổ biến.
o Ví dụ: nếu {AB} là một tập phổ biến thì cả {A} và {B} đều là
những tập phổ biến
• Lặp việc tìm tập phổ biến với kích thước từ 1 đến k (tập có kích
thước k)
HVTH: Lê Minh Trí (CH1101148) Trang 20
Mô phỏng thuật toán Apriori tìm tập phổ biến và luật kết hợp
Bước 2: Dùng các tập phổ biến để tạo các luật kết hợp. Rakesh Agrawal,
1993
2.2/ Các tập phổ biến với mẹo Apriori:
Bước kết hợp: C
k
được tạo bằng cách kết L
k-1
với chính nó
Bước rút gọn: Những tập kích thước (k-1) không phổ biến không thể là tập con
của tập phổ biến kích thước k
Ký hiệu:
_ L
k
: Tập các k-mục phổ biến (large k-itemset) (tức tập các itemset có
support tối thiểu và có lực lượng bằng k).
_ Mỗi phần tử của tập này có 2 trường: itemset và support-count.
_ C
k
: Tập các candidate k-itemset (tập các tập k-mục ứng cử viên). Mỗi phần
tử trong tập này cũng có 2 trường itemset và support-count.

 Thuật toán Apriori:
Input: Tập các giao dịch D, ngưỡng support tối thiểu minsup
Output: L- tập mục phổ biến trong D
Method:
function apriori()
begin
L
1
={large 1-itemset} //tìm tất cả các tập mục phổ biến: nhận được L
1
for (k=2; L
k-1
≠ ∅; k++) do
begin
C
k
=apriori-gen(L
k-1
)
;
//sinh ra tập ứng cử viên từ L
k-1
for (mỗi một giao dịch T

D) do
begin
C
T
= subset(C
k

, T); //lấy tập con của T là ứng cử viên trong C
k
for (mỗi một ứng cử viên c

C
T
) do
c.count++; //tăng bộ đếm tần xuất 1 đơn vị
end;
L
k
= {c ∈ C
k
| c.count ≥ minsup}
end;
return ∪
k
L
k
end;
Trong thuật toán này, giai đoạn đầu đơn giản chỉ là việc đếm support cho các
item. Để xác định tập 1-mục phổ biến (L
1
), người ta chỉ giữ lại các item mà support
của nó lớn hơn hoặc bằng minsup.
HVTH: Lê Minh Trí (CH1101148) Trang 21
Mô phỏng thuật toán Apriori tìm tập phổ biến và luật kết hợp
Trong các giai đoạn thứ k sau đó (k>1), mỗi giai đoạn gồm có 2 pha. Trước hết
các large(k-1)-itemset trong tập L
k-1

được sử dụng để sinh ra các candidate itemset
C
k
, bằng cách thực hiện hàm Apriori_gen. Tiếp theo CSDL D sẽ được quét để tính
support cho mỗi ứng viên trong C
k
. Để 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 C
k
là có mặt trong một giao dịch T
cho trước.
 Thuật toán sinh tập candidate của Apriori:
Hàm Apriori_gen với đối số là L
k-1
(tập các large(k-1)-itemset) sẽ cho lại kết quả
là một superset, tập của tất cả các large k – itemset. Sơ đồ sau là thuật toán cho hàm
này.
Input: tập mục phổ biến L
k-1
có kích thước k-1
Output: tập ứng cử viên C
k
Method:
function apriori-gen(L
k-1
: tập mục phổ biến có kích thước k-1)
begin
for (mỗi L
1
∈ L

k-1
) do
for (mỗi L
2
∈ L
k-1
) do
begin
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
c = L
1
⊕ L
2

; // kết nối L
1
với L
2
sinh ra ứng cử viên c
if has_infrequent_subset(c, L
k-1
) then
remove (c) // bước tỉa (xoá ứng cử viên c)
else C
k
= C
k
∪ {c}; kết tập c vào C
k
end;
return C
k
;
end;
 Thuật toán kiểm tra tập con k-1 mục của ứng cử viên k-mục không là
tập phổ biến:
function has_infrequent_subset(c: ứng cử viên k-mục; L
k-1
tập phổ biến k-1
mục)
begin
//sử dụng tập mục phổ biến trước
for (mỗi tập con k-1 mục s của c) do
if s ∈ L

k-1
then return true;
end;
HVTH: Lê Minh Trí (CH1101148) Trang 22
Mô phỏng thuật toán Apriori tìm tập phổ biến và luật kết hợp
Ví dụ: Cho tập mặt hàng {i1, i2, i3, i4, i5, i6} và 6 giao tác như sau: T1 =
{i1,i2} ; T2 = {i1,i2,i3} ; T3 = {i1,i2,i5} ; T4 = {i1,i2,i5,i6} ; T5 = {i3,i4,i5,i6} ;
T6 = {i1,i2,i3}. Tìm tất cả các tập phổ biến có minsupp=0,3.
Hướng dẫn giải:
Bối cảnh nhị phân:
i1 i2 i3 i4 i5 i6
T1 1 1 0 0 0 0
T2 1 1 1 0 0 0
T3 1 1 0 0 1 0
T4 1 1 0 0 1 1
T5 0 0 1 1 1 1
T6 1 1 1 0 0 0
Với minsupp=0,3 một tập được gọi là phổ biến khi xuất hiện ít nhất trong 0,3 *
6 = 1,8 hay 2 dòng.
+ Tính F1:
F1 = {{i1}, {i2}, {i3}, {i5}, {i6}}
=> C1 = {{i1,i2}, {i1,i3}, {i1,i5}, {i1,i6}, {i2,i3}, {i2,i5}, {i2,i6}, {i3,i5},
{i3,i6}, {i5,i6}}
+ Tính F2 từ C1:
F2 = {{i1,i2}, {i1,i3}, {i1,i5}, {i2,i3}, {i2,i5}, {i5,i6}}
Vì số dòng cùng bằng 1 của các thuộc tính như sau: {i1,i2} = 5 {i1,i3} = 2
{i1,i5} = 2 {i2,i3} = 2 {i2,i5} = 2 {i5,i6} = 2
=> C2 = {{i1,i2,i3}, {i1,i2,i5}, {i1,i3,i5}, {i1,i5,i6}, {i2,i3,i5}, {i2,i5,i6}}
+ Tính F3 từ C2:
F3 = {{i1,i2,i3}, {i1,i2,i5}}

=> C3 = {{i1,i2,i3,i5}}
+ Tính F4 từ C3:
F4 = {∅}
Kết luận: Vậy các tập phổ biến có minsupp=0,3 là F1, F2, F3.
2.3/ Tập phổ biến tối đại (maximal frequent sets):
M là tập phổ biến tối đại nếu M là tập phổ biến và không tồn tại tập phổ biến S
khác M mà M

S
HVTH: Lê Minh Trí (CH1101148) Trang 23
Mô phỏng thuật toán Apriori tìm tập phổ biến và luật kết hợp
Ví dụ: Với đề bài như trên, dựa vào các tập phổ biến tìm được hãy tìm tất cả các
tập phổ biến tối đại có minsupp=0,3.
Hướng dẫn giải:
Ta có sơ đồ:
{i1,i2,i3} {i1,i2,i5}
{i1,i2} {i1,i3} {i1,i5} {i2,i3} {i2,i5} {i5,i6}
{i1} {i2} {i3} {i5} {i6}
Kết luận: Dựa vào sơ đồ trên các tập phổ biến tối đại có minsupp=0,3 là {i5,i6},
{i1,i2,i3} và {i1,i2,i5}.
2.4/ Tạo luật kết hợp từ tập phổ biến:
Việc sinh luật kết hợp gồm hai bước:
• Với mỗi tập phổ biến W tìm được hãy sinh ra mọi tập con thực sự X khác
rỗng của nó.
• Với mỗi tập phố biến W và tập con X khác rỗng thực sự của nó: sinh luật X
→ (W – X) nếu P(W-X|X) ≥ c.
Ví dụ: Với các tập phổ biến tối đại như trên, hãy tìm tất cả các luật kết hợp có
minconf=1,0
Hướng dẫn giải:
+ Xét tập phổ biến tối đại {i5,i6}

Luật : S1→S2 ρ(S1) ρ(S2) ρ(S1) ⊆ ρ(S2)
{i5} → {i6}
{T3, T4, T5} {T4, T5}
{i6} → {i5}
{T4, T5} {T3, T4, T5} Thõa
=> Ta có luật: {i6} → {i5}
+ Xét tập phổ biến tối đại {i1,i2,i3}
Luật : S1→S2 ρ(S1) ρ(S2) ρ(S1) ⊆
ρ(S2)
{i1} → {i2,i3}
{T1, T2, T3, T4, {T2, T6}
HVTH: Lê Minh Trí (CH1101148) Trang 24
Mô phỏng thuật toán Apriori tìm tập phổ biến và luật kết hợp
T6}
{i2} → {i1,i3}
{T1, T2, T3, T4,
T6}
{T2, T6}
{i3} → {i1,i2}
{T2, T5, T6} {T1, T2, T3, T4,
T6}
{i1,i2} → {i3}
{T1, T2, T3, T4,
T6}
{T2, T5, T6}
{i1,i3} → {i2}
{T2, T6} {T1, T2, T3, T4,
T6}
Thõa
{i2,i3} → {i1}

{T2, T6} {T1, T2, T3, T4,
T6}
Thõa
=> Ta có luật: {i1,i3} → {i2} và {i2,i3} → {i1}
+ Xét tập phổ biến tối đại {i1,i2,i5}
Luật : S1→S2 ρ(S1) ρ(S2) ρ(S1) ⊆
ρ(S2)
{i1} → {i2,i5}
{T1, T2, T3,
T4, T6}
{T3, T4}
{i2} → {i1,i5}
{T1, T2, T3,
T4, T6}
{T3, T4}
{i5} → {i1,i2}
{T3, T4, T5} {T1, T2, T3, T4,
T6}
{i1,i2} → {i5}
{T1, T2, T3,
T4, T6}
{T3, T4, T5}
{i1,i5} → {i2}
{T3, T4} {T1, T2, T3, T4,
T6}
Thõa
{i2,i5} → {i1}
{T3, T4} {T1, T2, T3, T4,
T6}
Thõa

=> Ta có luật: {i1,i5} → {i2} và {i2,i5} → {i1}
Kết luận: Ta có các luật sau:
{i6} → {i5}
{i1,i3} → {i2}
{i2,i3} → {i1}
{i1,i5} → {i2}
{i2,i5} → {i1}
HVTH: Lê Minh Trí (CH1101148) Trang 25

×