Tải bản đầy đủ (.pdf) (60 trang)

Xây dựng hệ thống tư vấn chọn ngành nghề cho sinh viên trường cao đẳng việt nam han quốc quảng ngãi

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 (2.63 MB, 60 trang )

ĐẠI HỌC ĐÀ NẴNG
TRƢỜNG ĐẠI HỌC BÁCH KHOA

HỒ ANH TỐ

XÂY DỰNG HỆ THỐNG TƢ VẤN
CHỌN NGÀNH NGHỀ CHO SINH VIÊN
TRƢỜNG CAO ĐẲNG
VIỆT NAM – HÀN QUỐC – QUẢNG NGÃI

LUẬN VĂN THẠC SĨ KỸ THUẬT

Đà Nẵng – Năm 2018


ĐẠI HỌC ĐÀ NẴNG
TRƢỜNG ĐẠI HỌC BÁCH KHOA

HỒ ANH TỐ

XÂY DỰNG HỆ THỐNG TƢ VẤN
CHỌN NGÀNH NGHỀ CHO SINH VIÊN
TRƢỜNG CAO ĐẲNG
VIỆT NAM – HÀN QUỐC – QUẢNG NGÃI

Chuyên ngành: Khoa học máy tính
Mã số: 60.48.01

LUẬN VĂN THẠC SĨ KỸ THUẬT

Ngƣời hƣớng d n hoa học: PGS.TS. V Trung H ng



Đà Nẵng – Năm 2018


i

LỜI CAM ĐOAN
Tôi xin cam đoan:
Những nội dung trong luận văn này là do tôi thực hiện dưới sự hướng dẫn trực tiếp
của PGS.TS. Võ Trung Hùng.
Mọi tham khảo dùng trong luận văn đều được trích dẫn rõ ràng tên tác giả, tên công
trình, thời gian, địa điểm công bố.
Mọi sao chép không hợp lệ, vi phạm quy chế đào tạo, hay gian trá, tôi xin chịu hoàn
toàn trách nhiệm.
Tác giả

Hồ Anh Tố


ii

MỤC LỤC
LỜI CAM ĐOAN....................................................................................................... i
MỤC LỤC ................................................................................................................. ii
TÓM TẮT LUẬN VĂN .......................................................................................... iv
DANH MỤC CÁC TỪ VIẾT TẮT ......................................................................... v
DANH MỤC CÁC BẢNG ....................................................................................... vi
DANH MỤC CÁC HÌNH VẼ ................................................................................ vii
MỞ ĐẦU .................................................................................................................... 1
1. Lý do chọn đề tài ................................................................................................ 1

2. Mục tiêu và nhiệm vụ đề tài ............................................................................... 1
3. Đối tượng và phạm vi nghiên cứu ...................................................................... 2
4. Phương pháp nghiên cứu .................................................................................... 2
5. Mục đích và ý nghĩa của đề tài........................................................................... 2
6. Bố cục của luận văn ........................................................................................... 3
CHƢƠNG 1: NGHIÊN CỨU TỔNG QUAN ......................................................... 4
1.1. Khai phá dữ liệu .............................................................................................. 4
1.1.1. Tổng quan về khai phá dữ liệu .............................................................. 4
1.1.2. Khai phá dữ liệu sử dụng luật kết hợp ................................................... 6
1.1.3. Khai phá dữ liệu với bài toán phân lớp................................................ 20
1.1.4. Khai phá dữ liệu sử dụng cây quyết định............................................. 22
1.2. Lý thuyết chọn nghề nghiệp .......................................................................... 24
1.2.1. Lý thuyết cây nghề nghiệp ................................................................... 24
1.2.2. Lý thuyết mật mã Holland ................................................................... 26
1.3. Tổng kết chương ........................................................................................... 28
CHƢƠNG 2: PHÂN TÍCH VÀ XÂY DỰNG HỆ THỐNG ................................ 29
2.1. Mô tả hệ thống hỗ trợ tư vấn chọn ngành nghề............................................. 29
2.2. Giới thiệu bài toán ......................................................................................... 29
2.3. Mô hình cấu trúc hệ thống ............................................................................ 29
2.3.1. Mô tả đầu vào/ đầu ra .......................................................................... 30
2.3.2. Phương pháp xây dựng hệ thống ......................................................... 30
2.4. Phân tích và thiết kế hệ thống ....................................................................... 30
2.4.1. Phân tích về bậc đào tạo ...................................................................... 30
2.4.2. Phân tích LTMM Holland ................................................................... 30
2.4.3. Xây dựng tập luật cho hệ thống tư vấn chọn ngành nghề .................... 33
2.5. Xây dựng hệ thống ........................................................................................ 38
2.5.1. Thiết kế CSDL ..................................................................................... 38
2.5.2. Cách xây dựng tập luật ........................................................................ 41



iii
2.5.3. Cách xây dựng bộ máy suy diễn .......................................................... 42
2.6. Tổng kết chương ........................................................................................... 42
CHƢƠNG 3: KIỂM THỬ VÀ ĐÁNH GIÁ ......................................................... 43
3.1. Kết quả kiểm thử ........................................................................................... 43
3.1.1. Giao diện của hệ thống ........................................................................ 43
3.1.2. Giao diện Phiếu thông tin cá nhân ....................................................... 43
3.1.3. Giao diện khảo sát tư vấn bậc đào tạo ................................................. 44
3.1.4. Giao diện khảo sát tư vấn chọn ngành nghề ........................................ 45
3.1.5. Giao diện tư vấn mức hỗ trợ học phí, nội trú....................................... 47
3.1.6. Giao diện kết quả tư vấn chọn ngành nghề.......................................... 47
3.2. Đánh giá kết quả hệ thống ............................................................................. 48
KẾT LUẬN VÀ HƢỚNG PHÁT TRIỂN............................................................. 49
4.1. Kết quả đạt được từ nghiên cứu .................................................................... 49
4.2. Đóng góp luận văn ........................................................................................ 49
4.3. Hạn chế.......................................................................................................... 49
4.4. Hướng phát triển luận văn ............................................................................. 49
DANH MỤC TÀI LIỆU THAM KHẢO .............................................................. 50
QUYẾT ĐỊNH GIAO ĐỀ TÀI LUẬN VĂN THẠC SĨ (BẢN SAO)


iv

TÓM TẮT LUẬN VĂN
XÂY DỰNG HỆ THỐNG TƢ VẤN CHỌN NGÀNH NGHỀ CHO SINH VIÊN
TRƢỜNG CAO ĐẲNG VIỆT NAM – HÀN QUỐC – QUẢNG NGÃI
Học viên: Hồ Anh Tố

Chuyên ngành: Khoa học máy tính


Mã số: 60.48.01

Trường Đại học Bách khoa - ĐHĐN

Khóa: K33-QNG

Tóm tắt - Trong thời đại ngày nay, với sự phát triển vượt bậc của công nghệ
thông tin và ứng dụng của nó trong đời sống - kinh tế - xã hội, lượng dữ liệu thu thập
được ngày càng nhiều theo thời gian, làm xuất hiện ngày càng nhiều các hệ thống cơ sở
dữ liệu có kích thước lớn. Từ khối dữ liệu này, các kỹ thuật trong KPDL có thể dùng
để trích xuất những thông tin hữu ích mà chúng ta chưa biết. Qua tìm hiểu những chức
năng của KPDL, luận văn tập trung vào nghiên cứu kỹ thuật KPDL bằng luật kết hợp
với thuật toán Apriori. Đóng góp chính của luận văn là nghiên cứu, là ứng dụng các
thuật toán để xây dựng hệ thống tư vấn ngành nghề học cho sinh viên. Hệ thống được
xây dựng trên nền Web, thuận tiện cho người sử dụng ở bất cứ nơi đâu có kết nối
Internet.

BUILDING MAJOR - CAREER COUNSELING SYSTEM FOR STUDENTS
AT VIETNAM - KOREA COLLEGE OF QUANG NGAI
Abstract - Nowadays, the rapid development of information technology and its
various application in economic - cultural - social life and the amount of collected data
increases day by day, which causes the appearance of big data systems. From these
database sources, some techniques in data mining can be used to extract useful
information that we have not known yet. Through researching the functions of data
mining, this mester thesis focuses on studying data mining techniques by applying
association rules and the Apriori algorithm. The innovtion and main issues af this
thesis is developed a system to help students to choose a suitable majors. The system is
built based on the Web technology, it is easy for users to access anywhere and anytime
with Internet connection.



v

DANH MỤC CÁC TỪ VIẾT TẮT
TIẾNG VIỆT


Cao đẳng

CSDL

Cơ sở dữ liệu

GDHN

Giáo dục hướng nghiệp

HDGDNPT

Hoạt động giáo dục nghề phổ thông

KPDL

Khai phá dữ liệu

KT

Kỹ thuật

NC


Nghiên cứu

NPT

Nghề phổ thông

NT

Nghệ thuật

NV

Nghiệp vụ

QL

Quản lý

TC

Trung cấp

THCS

Trung học cơ sở

THPT

Trung học phổ thông


XH

Xã hội

TIẾNG ANH
ANN

Artificial Neural Network

ASP

Active Server Pages

CLS

Concept Learning System

MLP

Multi Layer Perceptron

SLIQ

Supervised Learning In Quest

SQL

Structured Query Language



vi

DANH MỤC CÁC BẢNG
Số hiệu
bảng
Bảng 1.1

Dữ liệu siêu thị

7

Bảng 1.2

Cơ sở dữ liệu mua hàng D

10

Bảng 1.3

Bảng ký hiệu cho thuật toán Apriori

12

Bảng 1.4

Bảng ký hiệu cho thuật toán Apriori-TID

17


Bảng 2.1

Bảng tóm tắt về bậc đào tạo của Trường

30

Bảng 2.2

Bảng tóm tắt 6 nhóm tính cách/ môi trường làm việc

31

Bảng 2.3

Bảng lưu điểm trung bình

38

Bảng 2.4

Bảng lưu 6 nhóm sở thích

39

Bảng 2.5

Bảng mã ngành thuộc nhóm ngành

39


Bảng 2.6

Bảng lưu kết quả khảo sát sinh viên

39

Bảng 2.7

Bảng ngành học

39

Bảng 2.8

Bảng nhóm ngành

39

Bảng 2.9

Bảng câu hỏi trắc nghiệm

40

Bảng 2.10

Bảng thông tin khảo sát về chọn ngành học của sinh viên
Bảng chi tiết thông tin khảo sát về chọn ngành học của
sinh viên


40

Bảng 2.11

Tên bảng

Trang

41


vii

DANH MỤC CÁC HÌNH VẼ
Số hiệu
hình vẽ
Hình 1.1

Tên hình vẽ

Trang

Quy trình KPDL

5
6

Hình 1.4

Kiến trúc của một hệ thống KPDL

Quá trình tìm tập các tập mục thường xuyên với tập mục có
3 item
Apriori tìm theo chiều rộng, sinh tập k ứng viên từ tập (k-1)

12

Hình 1.5

Cây băm C2

14

Bước học/ huấn luyện trong quá trình phân lớp hai bước

20

Hình 1.2
Hình 1.3

Hình 1.6 (a)

Hình 1.6 (b) Bước phân lớp trong quá trình phân lớp hai bước

9

21

Hình 1.7

Ví dụ về cây quyết định


22

Hình 1.8

Mô hình LTCNN

25

Hình 1.9

Mô hình lục giác Holland

27

Hình 2.1

Mô hình cấu trúc hệ thống tư vấn chọn ngành nghề

29

Hình 3.1

Giao diện hệ thống tư vấn chọn ngành nghề

44

Hình 3.2

Giao diện Phiếu thông tin cá nhân


44

Hình 3.3

Giao diện khảo sát tư vấn bậc đào tạo

45

Hình 3.4

Giao diện khảo sát thông tin về tư vấn chọn ngành nghề

46

Hình 3.5

Giao diện tư vấn mức hỗ trợ học phí, nội trú

48

Hình 3.6

Giao diện Kết quả tư vấn chọn ngành nghề

48


1


MỞ ĐẦU
1. Lý do chọn đề tài
Hiện tại, cơ hội học nghề cho sinh viên rất nhiều, với nhiều chính sách ưu tiên.
Luật Giáo dục nghề nghiệp vừa có hiệu lực cũng có những đổi mới phù hợp với xu thế.
Điều quan trọng nhất hiện nay là phải phân luồng đúng đối tượng, đúng mục đích và
làm tốt công tác hướng nghiệp, giúp sinh viên định hướng được nghề nghiệp trong
tương lai theo đúng sở thích, đam mê và điều kiện thực tế của bản thân, xã hội
Khi bước vào một ngôi trường đào tạo nghề, các bạn sinh viên luôn mong muốn
mình chọn được một ngành nghề học phù hợp với năng lực, trình độ, sở thích, cơ hội
việc làm và điều kiện của bản thân. Tuy nhiên, không phải lúc nào các sinh viên cũng
đủ khả năng lựa chọn cho mình một ngành nghề phù hợp.
Khi chọn sai ngành nghề sinh viên là đối tượng chịu ảnh hưởng trực tiếp, sinh
viên thường thiếu động lực và chán nản, dễ dẫn đến bỏ học, một số sinh viên có điều
kiện thì chuyển ngành, số khác tiếp tục theo đuổi nhưng trong tâm thế buông trôi, từ đó
dẫn đến chất lượng đào tạo kém, chất lượng nguồn lao động không đáp ứng được nhu
cầu xã hội; ảnh hưởng tiếp đến là các cơ sở đào tạo và sâu xa hơn nữa là ảnh hưởng
đến cả nền kinh tế quốc gia.
Trường Cao đẳng Việt Nam - Hàn Quốc - Quảng Ngãi tiền thân là Trường Cao
đẳng nghề Việt Nam - Hàn Quốc - Quảng Ngãi hiện nay đang đào tạo các ngành nghề
như Công nghệ thông tin, Cơ khí, Kỹ thuật điện - điện tử, Kỹ thuật điều khiển và tự
động hóa, Kỹ thuật xây dựng, Công nghệ ô tô, Công nghệ thực phẩm. Trong tương lai
sẽ đào tạo thêm nhiều ngành nghề khác như: Giáo dục mầm non, Công nghệ sau thu
hoạch, Công nghệ chế biến thủy sản, Chăn nuôi, Phát triển nông thôn, Nuôi trồng thủy
sản, Xét nghiệm Y học, Dược, Điều dưỡng,... Lúc đó việc tư vấn chọn ngành nghề phù
hợp sẽ rất quan trọng đối với sinh viên.
Chính vì vậy tôi quyết định chọn đề tài “Xây dựng hệ thống tƣ vấn chọn ngành
nghề cho sinh viên Trƣờng Cao đẳng Việt Nam – Hàn Quốc – Quảng Ngãi” để làm
đề tài luận văn tốt nghiệp cao học. Trong đề tài này, tôi đề xuất giải pháp ứng dụng
KPDL bằng thuật toán luật kết hợp để xây dựng hệ thống tư vấn chọn ngành nghề học
phù hợp cho sinh viên tại Trường Cao đẳng Việt Nam – Hàn Quốc – Quảng Ngãi.


2. Mục tiêu và nhiệm vụ đề tài
2.1. Mục tiêu
- Tạo ra được tập luật chọn ngành học dựa vào khảo sát thực tế của sinh viên là
ứng dụng các kỹ thuật KPDL.
- Hệ thống tư vấn chọn ngành nghề cho sinh viên Trường Cao đẳng Việt Nam –
Hàn Quốc – Quảng Ngãi để lựa chọn ngành nghề học phù hợp và hỗ trợ các cán bộ
chuyên trách tuyển sinh và giới thiệu việc làm của Trường Cao đẳng Việt Nam –
Hàn Quốc – Quảng Ngãi.


2

2.2. Nhiệm vụ
Để đạt được mục tiêu trên, cần phải tiến hành:
- Nghiên cứu lý thuyết về KPDL, cụ thể là các kỹ thuật luật kết hợp và cây quyết
định.
- Xây dựng hệ thống tư vấn chọn ngành nghề học phù hợp cho sinh viên dựa vào
các thông tin đầu vào, từ đó thực hiện tư vấn chọn ngành nghề học phù hợp cho sinh
viên nhằm giảm đi tình trạng chọn sai ngành nghề.

3. Đối tƣợng và phạm vi nghiên cứu
3.1. Đối tƣợng nghiên cứu
- Cơ sở lý thuyết về kỹ thuật KPDL và các thuật toán của KPDL;
- Hệ thống tư vấn chọn ngành nghề học;
- Dữ liệu khảo sát kết quả chọn ngành nghề học;
- Ngôn ngữ lập trình ASP.NET;
- Một số bài báo và luận văn tốt nghiệp khóa trước.

3.2. Phạm vi nghiên cứu

- Dữ liệu được thu thập từ phiếu thông tin cá nhân của sinh viên Trường Cao
đẳng Việt Nam - Hàn Quốc - Quảng Ngãi;
- Phát phiếu khảo sát trên toàn bộ sinh viên của Trường;
- Nội dung dữ liệu: Điểm thi các môn, Hoàn cảnh gia đình, Mức học phí, Sở
thích, Năng khiếu, Giới tính, Sức khỏe,...;

4. Phƣơng pháp nghiên cứu
Để đạt được những yêu cầu trên, tôi sử dụng chủ yếu hai phương pháp chính là
phương pháp nghiên cứu tài liệu và phương pháp thực nghiệm.
Phương pháp nghiên cứu tài liệu: Tôi sử dụng phương pháp này để tìm hiểu và
lựa chọn phương pháp KPDL thích hợp.
Phương pháp thực nghiệm: Tôi sử dụng phương pháp này để phân tích thiết kế hệ
thống, triển khai xây dựng hệ thống.

5. Mục đích và ý nghĩa của đề tài
5.1. Mục đích
Mục đích của đề tài là ứng dụng KPDL bằng thuật toán luật kết hợp để xây dựng
hệ thống tư vấn chọn ngành nghề học phù hợp cho sinh viên tại Trường Cao đẳng Việt
Nam – Hàn Quốc – Quảng Ngãi.

5.2. Ý nghĩa hoa học và thực tiễn đề tài
Về khoa học: Ứng dụng KPDL bằng thuật toán luật kết hợp để xây dựng hệ
thống tư vấn chọn ngành nghề học phù hợp cho sinh viên. (Dữ liệu được thu thập từ
phiếu thông tin cá nhân của sinh viên)


3
Về thực tiễn: Đề tài sẽ góp phần cải thiện và tối ưu hóa, nhằm tư vấn chọn ngành
nghề cho sinh viên Trường Cao đẳng Việt Nam – Hàn Quốc – Quảng Ngãi có những
lựa chọn về ngành nghề học phù hợp với bản thân và hỗ trợ các cán bộ chuyên trách

tuyển sinh và giới thiệu việc làm của Trường Cao đẳng Việt Nam – Hàn Quốc –
Quảng Ngãi.

6. Bố cục của luận văn
Báo cáo của luận văn tổ chức thành 3 chương chính như sau:
Chương 1: Nghiên cứu tổng quan
Chương này giới thiệu tổng quan về quá trình KPDL, các kỹ thuật KPDL, giới
thiệu thuật toán xây dựng mô hình KPDL và lý thuyết về chọn nghề nghiệp,...
Chương 2: Phân tích và xây dựng hệ thống
Chương này phân tích các lý thuyết chọn nghề nghiệp: LTCNN, LTMM Holland
và đưa ra mô hình đề xuất để giải quyết những hạn chế hiện tại trong công tác tư vấn
chọn ngành nghề tại trường. Từ đó xây dựng các luật, hỗ trợ tư vấn chọn ngành nghề
cho Trường Cao đẳng Việt Nam – Hàn Quốc – Quảng Ngãi dựa trên hai lý thuyết này.
Chương 3: Kiểm thử và đánh giá
Chương này trình bày quá trình kiểm thử và đánh giá hệ thống tư vấn chọn ngành
nghề cho sinh viên Trường Cao đẳng Việt Nam – Hàn Quốc – Quảng Ngãi.


4

CHƯƠNG 1: NGHIÊN CỨU TỔNG QUAN
Chương này giới thiệu tổng quan về quá trình KPDL, các kỹ thuật KPDL, giới
thiệu thuật toán xây dựng mô hình KPDL và lý thuyết về chọn nghề nghiệp,...

1.1. Khai phá dữ liệu
1.1.1. Tổng quan về khai phá dữ liệu
1.1.1.1. Khái niệm khai phá dữ liệu
Khai phá dữ liệu là một khái niệm ra đời vào cuối những năm 1980. Nó là quá
trình khám phá thông tin ẩn được tìm thấy trong các CSDL và có thể xem như là một
bước trong quá trình khám phá tri thức. Quá trình này kết xuất ra các tri thức tiềm ẩn từ

dữ liệu giúp cho việc dự báo trong kinh doanh, các hoạt động sản xuất, giáo
dục[1][2]... KPDL làm giảm chi phí về thời gian so với phương pháp truyền thống
trước kia (ví dụ như phương pháp thống kê).
Sau đây là một số định nghĩa mang tính mô tả của nhiều tác giả về KPDL.
Định nghĩa của Ferruzza: “KPDL là tập hợp các phương pháp được dùng trong
tiến trình khám phá tri thức để chỉ ra sự khác biệt các mối quan hệ và các mẫu chưa
biết bên trong dữ liệu”.[9]
Định nghĩa của Parsaye: “KPDL là quá trình trợ giúp quyết định, trong đó chúng
ta tìm kiếm các mẫu thông tin chưa biết và bất ngờ trong CSDL lớn”.[9]
Định nghĩa của Fayyad: “Khai phá tri thức là một quá trình không tầm thường
nhận ra những mẫu dữ liệu có giá trị, mới, hữu ích, tiềm năng và có thể hiểu được”.[9]

1.1.1.2. Chức năng chính của khai phá dữ liệu
Data Mining được chia nhỏ thành một số hướng chính như sau:[14]
- Mô tả khái niệm (concept description): thiên về mô tả, tổng hợp và tóm tắt khái
niệm. Ví du: tóm tắt văn bản.
- Luật kết hợp (association rules): là dạng luật biểu diễn tri thức ở dạng khá đơn
giản. Ví dụ: “60% nam giới vào siêu thị nếu mua bia thì có tới 80% trong số họ sẽ mua
thêm thịt bò khô”. Luật kết hợp được ứng dụng nhiều trong lĩnh vực kinh doanh, y học,
giáo dục, ...
- Phân lớp và dự đoán (classification & prediction): xếp một đối tượng vào một
trong những lớp đã biết trước. Ví dụ: phân lớp vùng địa lý theo dữ liệu thời tiết. Hướng
tiếp cận này thường sử dụng một số kỹ thuật của machine learning như cây quyết định
(decision tree), mạng nơ ron nhân tạo (neural network),... Người ta còn gọi phân lớp là
học có giám sát (học có thầy).
- Phân cụm (clustering): xếp các đối tượng theo từng cụm (số lượng cũng như tên
của cụm chưa được biết trước). Người ta còn gọi phân cụm là học không giám sát (học
không thầy).



5
- Khai phá chuỗi (sequential/ temporal patterns): tương tự như khai phá luật kết
hợp nhưng có thêm tính thứ tự và tính thời gian. Hướng tiếp cận này được ứng dụng
nhiều trong lĩnh vực tài chính và thị trường chứng khoáng vì nó có tính dự báo cao.

1.1.1.3. Ứng dụng của khai phá dữ liệu
Data mining tuy là một hướng tiếp cận mới nhưng thu hút được rất nhiều sự quan
tâm của các nhà nghiên cứu và phát triển nhờ vào những ứng dụng thực tiễn của nó.
Chúng ta có thể liệt kê ra đây một số ứng dụng điển hình:[14]
- Phân tích dữ liệu và hỗ trợ ra quyết định (data analysis & decision support)
- Điều trị y học (medical treatment)
- Text mining & Web mining
- Tin-sinh (bio-informatics)
- Tài chính và thị trường chứng khoán (finance & stock market)
- Bảo hiểm (insurance)
- Nhận dạng (pattern recognition),...

1.1.1.4. Quy trình khai phá dữ liệu
Quy trình KPDL là một chuồi lặp (và tương tác) gồm các bước bắt đầu với dữ
liệu thô và kết thúc với tri thức đáp ứng được sự quan tâm của người sử dụng.[1][6]

Hình 1.1. Quy trình KPDL
- Tập hợp dữ liệu (Data): Đây là giai đoạn đầu tiên trong quá trình KPDL. Giai
đoạn này lấy dữ liệu trong một CSDL, một kho dữ liệu và dữ liệu từ các nguồn
Internet[2]
- Trích lọc dữ liệu (Extraction): Giai đoạn này dữ liệu được lựa chọn hoặc phân
chia theo một số tiêu chuẩn nào đó.[2]
- Tiền xử lý và chuẩn bị dữ liệu (Preprocessing): Giai đoạn này rất quan trọng
trong quá trình KPDL. Một số lỗi thường mắc phải trong khi thu thập dữ liệu như thiếu
thông tin, không logic... Vì vậy, dữ liệu thường chứa các giá trị vô nghĩa và không có

khả năng kết nối dữ liệu. Giai đoạn này tiến hành xử lý những dạng dữ liệu nói trên.


6
Những dữ liệu dạng này được xem như thông tin dư thừa, không có giá trị. Vì vậy, đây
là một giai đoạn rất quan trọng vì dữ liệu này nếu không được làm sạch - tiền xử lý chuẩn bị trước thì sẽ gây nên những kết quả sai lệch nghiêm trọng trong KPDL.[2]
- Chuyển đổi dữ liệu (Transformation): Giai đoạn chuyển đổi dữ liệu, dữ liệu đưa
ra có thể sử dụng và điều khiển được bởi việc tổ chức lại nó. Dữ liệu đã được chuyển
đổi phù hợp với mục đích khai thác.[2]
- Khai phá dữ liệu (Data Mining): Giai đoạn mang tính tư duy trong KPDL. Ở
giai đoạn này nhiều thuật toán khác nhau đã được sử dụng để xuất ra các mẫu từ dữ
liệu. Thuật toán thường dùng là thuật toán phân loại dữ liệu, kết hợp dữ liệu hoặc các
mô hình hóa dữ liệu tuần tự. Đây là giai đoạn được nhiều người nghiên cứu nhất.[2]
- Đánh giá kết quả mẫu (Interpretation/ Evaluation): Giai đoạn cuối trong quá
trình KPDL. Trong giai đoạn này, các mẫu dữ liệu được chiết xuất ra bởi phần mềm
KPDL. Không phải bất cứ mẫu dữ liệu nào cũng đều hữu ích, đôi khi nó còn bị sai
lệch. Vì vậy, cần phải ưu tiên những tiêu chuẩn đánh giá để đưa ra các tri thức cần thiết
và sử dụng được.[2]

1.1.1.5. Kiến trúc của một hệ thống KPDL
Kiến trúc tổng quát của một hệ thống KPDL như sau:

Hình 1.2. Kiến trúc của một hệ thống KPDL[2]

1.1.2. Khai phá dữ liệu sử dụng luật kết hợp
1.1.2.1. Khái niệm về luật kết hợp
- Luật kết hợp là tìm các mẫu phổ biến, sự kết hợp, sự tương quan hay các cấu
trúc nhân quả giữa các tập đối tượng trong các cơ sở dữ liệu giao tác, cơ sở dữ liệu
quan hệ và những kho thông tin khác để đưa ra các mối liên kết giữa các phần tử dữ
liệu.[2]



7
Khái niệm luật kết hợp được phát biểu lần đầu tiên bởi R. Agrawal (1993), và
được hơn 6000 ý kiến tán thành thông qua Google Scholar. Trong quyển “Mining
Association Rules Between Sets of Items in Large Databases”, R. Agrawal đã đưa ra
một định nghĩa về luật kết hợp như sau:
Định nghĩa 1: Cho tập I = {i1,i2, … ,in} là tập n thuộc tính nhị phân gọi là các
phần tử (tên tiếng anh là item). Cho D = {t1,t2, … ,tm} là tập các giao tác gọi là cơ sở
dữ liệu. Mỗi giao tác trong D có một ID duy nhất và chứa tập các mục trong I. Một
luật được định nghĩa sự kéo theo có dạng X  Y trong đó X,Y  I và X  Y = . Tập
các mục gọi là tập mục (itemset) X gọi là phần mệnh đề điều kiện (phần bên trái) và Y
gọi là mệnh đề kết quả của luật tương ứng.[2]
Ví dụ, trong siêu thị, có tập các mục I = {milk, bread, butter, beer} và một cơ sở dữ
liệu chứa các mục (tại mỗi giao tác, giá trị 1 là có mục, giá trị 0 là không có) như sau:
Bảng 1.1. Dữ liệu siêu thị
Transaction ID

milk

bread

butter

beer

1

1


1

1

0

2

0

0

1

0

3

1

0

0

1

4

1


1

1

0

5
0
1
0
0
Dựa trên ví dụ này, có thể suy ra luật {butter, bread}  {milk}, có nghĩa là khi
khách hàng mua butter và bread thì người đó cũng sẽ mua milk.
Khái niệm này được xem như tổng quát nhất cho phát biểu về luật kết hợp.
Để chọn ra các luật có ích từ tập các luật có thể có, ta cần ràng buộc những số đo
đảm bảo ý nghĩa. Hai ràng buộc được xem là quan trọng nhất, đó là giá trị độ phổ biến
(Support) và độ tin cậy tối thiểu (Min Confident).
- Độ phổ biến
Độ phổ biến (một số tài liệu dịch là độ hỗ trợ) của một tập mục X được định
nghĩa là tỷ lệ các giao tác có chứa tập mục này trong cơ sở dữ liệu với tổng số các giao
tác [2].
Ví dụ, tập mục {milk, bread, butter} có độ phổ biến là 2/5 = 0.4 hay 40% số giao
tác.
Định nghĩa 2: Độ phổ biến của một tập mục X trong cơ sở dữ liệu D là tỷ số giữa
các bản ghi T  D có chứa tập X với tổng số bản ghi trong D (hay là phần trăm của
các bản ghi trong D có chứa tập mục X), ký hiệu là Support(X) hay Supp(X).[2]
Supp( X ) 

T  D : Y  X 
D



8
Ta có: 0 ≤ Supp(X) ≤ 1 với mọi tập mục X.
Định nghĩa 3: Độ phổ biến của một luật kết hợp XY là tỷ lệ giữa số lượng các
bản ghi chứa tập hợp X  Y, so với tổng số các bản ghi trong D. Ký hiệu
Supp(XY).[2]
Supp( X  Y ) 

T  D : T  Y  X 
D

Khi chúng ta nói rằng độ hỗ trợ của một luật là 50%, nghĩa là có 50% tổng số
giao tác chứa XY. Như vậy, độ hỗ trợ mang ý nghĩa thống kê của luật.
- Độ tin cậy
Định nghĩa 4: Độ tin cậy (tên tiếng anh là minimum confident) được định nghĩa
như sau: Độ tin cậy của luật X  Y là xác suất xuất hiện Y với điều kiện X trong tất cả
các giao tác.[2]
Conf (X  Y) 

Supp(X  Y)
Supp( X )

Ta có thêm định nghĩa khác để hiểu rõ hơn về độ tin cậy :
Định nghĩa 5: Độ tin cậy của một luật kết hợp XY là tỷ lệ giữa số lượng các
bản ghi trong D chứa XY với số bản ghi trong D có chứa tập hợp X. Ký hiệu độ tin
cậy của một luật là Conf(r). Ta có 0 ≤ conf(r) ≤ 1.[2]
- Một số định nghĩa về tập hợp
Trước khi đi sâu tìm hiểu các thuật toán khai phá luật kết hợp, ta cần biết một số
kiến thức liên quan đến tập hợp.

Định nghĩa 6: Tập mục X được gọi là tập mục thường xuyên nếu có supp(X) ≥
minSup, với minSup là ngưỡng độ hỗ trợ cho trước. Kí hiệu các tập này là FI.[2]
Tính chất 1: Giả sử A,B  I là hai tập mục với A  B thì Supp(A) ≥ Supp(B).
Như vậy, những bản ghi nào chứa tập hợp B thì cũng chứa tập hợp A.[7]
Tính chất 2: Giả sử A, B là hai tập mục, A,B  I, nếu B là tập mục thường xuyên
và A  B thì A cũng là tập mục thường xuyên.[2]
Thật vậy, nếu B là tập mục thường xuyên thì Supp(B) ≥ minsup, mọi tập hợp A là
con của tập hợp B đều là tập hợp thường xuyên trong cơ sở dữ liệu D vì Supp(A) ≥
Supp(B) (Tính chất 1)
Tính chất 3: Giả sử A, B là hai tập mục, A  B và A là tập mục không thường
xuyên thì B cũng là tập mục không thường xuyên.[2]

1.1.2.2. Quá trình thực hiện
Các luật kết hợp yêu cầu phải đáp ứng giá trị độ phổ biến tối thiểu (gọi tắt là
minSup) và độ tin cậy tối thiểu (gọi tắt là minConf).[2] Việc sinh ra luật kết hợp
thường chia làm 2 bước riêng biệt :


9
- Đầu tiên, giá trị minSup được áp dụng để tìm ra các tập mục xuất hiện thường
xuyên trong cơ sở dữ liệu.
- Bước thứ hai là từ những tập này, áp dụng giá trị minConf để tạo ra luật.
Trong khi bước thứ hai chỉ cần áp dụng trực tiếp thì ta cần quan tâm một số vấn
đề trong bước thứ nhất. Việc tìm tất cả các tập thường xuyên trong cơ sở dữ liệu rất
khó, nó bao gồm công việc tìm ra tất cả các tập có thể xảy ra (kết hợp các mục lại). Tập
hợp các tập mục gọi là tập cha I có kích thước 2n – 1 (n là số lượng mục). Kích thước
của tập cha này sẽ tăng theo hàm số mũ dựa trên số lượng mục n trong I, ta có một
nhận xét một tập mục thường xuyên thì tất cả những tập con của nó phải là những tập
thường xuyên. Thông qua nhận xét này, các có nhiều thuật toán tìm ra các tập mục
thường xuyên khá hiệu quả như Apriori, Eclat.


Hình 1.3 Quá trình tìm tập các tập mục thường xuyên với tập mục có 3 item
Để cụ thể hóa, dựa trên quá trình thực hiện này thành bài toán khai phá luật kết
hợp, bài toán này được chia thành hai bài toán con tương tự như 2 bước ở trên:
Bài toán 1: Tìm tất cả các tập mục thường xuyên trong cơ sở dữ liệu D.
Bài toán 2: Sử dụng tập mục thường xuyên tìm được ở bài toán 1 để đưa ra các
luật tin cậy. Ý tưởng chung là nếu gọi ABCD và AB là các tập mục phổ biến, thì chúng
ta có thể có luật AB  CD với tỷ lệ độ tin cậy:
Conf 

Supp( ABCD)
Supp( AB)

Nếu conf ≥ minConf thì luật AB  CD được giữ lại
Trên thực tế, hầu hết thời gian của quá trình khai thác luật kết hợp là thực hiện
trong bài toán 1.
Có rất nhiều nghiên cứu về các phương pháp sinh tất cả các tập mục thường
xuyên và tập phổ biến lớn nhất một cách có hiệu quả. Khi các mẫu thường xuyên bắt
đầu nhiều (có từ 15 đến 20 mục) thì hầu hết các phương pháp truyền thống phải đếm
quá nhiều tập mục mới có thể thực hiện được. Các thuật toán dựa trên thuật toán
Apriori – đếm tất cả 2k tập con của mỗi tập k mục mà chúng quét qua, và do đó không
thích hợp với các tập mục dài được. Các phương pháp khác sử dụng “lookaheads” để


10
giảm số lượng tập mục được đếm. Tuy nhiên, hầu hết các thuật toán này đều sử dụng
tìm kiếm theo chiều rộng, ví dụ: tìm tất cả các tập k-1 mục trước khi tính đến các tập
k mục.
Để minh họa rõ hơn quá trình này, ta khảo sát qua ví dụ sau.
Ví dụ: Giả sử ta có cơ sở dữ liệu mua hàng D gồm hai thuộc tính Transaction ID

(khóa – số hóa đơn), Items Bought (các mã mặt hàng đã mua trong hóa đơn). Với
minSup=50% và minConf=50%:
Bảng 1.2 Cơ sở dữ liệu mua hàng D
Transaction
Items Bought
ID
200
A,B,C
100
A,C
400
A,D
500
B,E,F
Dựa trên tần suất xuất hiện, ta so sánh với minSup của các mục thuộc tập
{A,B,C,D,E,F}, ta tìm được các tập mục thường xuyên {A = 3/4 = 75%, B=2/4= 50%,
C = 2/4= 50%}, sau lần kết các mục lại, ta còn lại tập 2 mục là {{A,C}=50%}
Ta tính :
Conf(AC)=Sup(AC)/Sup(A)=0,5/0,75=0,667=66,7% > minConf
Conf(CA)= Sup(AC)/Sup(C)=0,5/0,5=1=100% > minConf
Vậy kết quả, ta tìm ra 2 luật{AC, CA}.

1.1.2.3. Một số hướng tiếp cận
Luật kết hợp cho đến nay đã được nghiên cứu và phát triển theo nhiều hướng
khác nhau. Có những đề xuất nhằm cải tiến thuật toán, có đề xuất tìm kiếm những luật
có ý nghĩa hơn v.v… và có một số hướng chính sau đây:
- Luật kết hợp nhị phân (Binary association rule): là hướng nghiên cứu đầu tiên
của luật kết hợp. Theo luật này, các items chỉ quan tâm là xuất hiện hay không trong cơ
sở dữ liệu giao tác chứ không quan tâm về mức độ hay tần suất xuất hiện. Thuật toán
tiêu biểu nhất của khai phá dạng luật này là thuật toán Apriori.[8]

- Luật kết hợp có thuộc tính số và thuộc tính hạng mục (Quantitative and
categorial association rule): các cơ sở dữ liệu thực tế thường có thuộc tính đa dạng
(như nhị phân, số, mục (categorial)...) chứ không nhất quán ở một kiểu nhất định. Vì
vậy để khai phá luật kết hợp với các cơ sở dữ liệu này các nhà nghiên cứu đề xuất một
số phương pháp rời rạc hóa nhằm chuyển dạng luật này về dạng nhị phân để có thể áp
dụng các thuật toán đã có.[8]
- Luật kết hợp tiếp cận theo hướng tập thô (mining association rule base on
rough set): tìm kiếm luật kết hợp dựa trên lí thuyết tập thô.[8]


11
- Luật kết hợp nhiều mức (multi-level association rule): với cách tiếp cận luật
kết hợp thế này sẽ tìm kiếm thêm những luật có dạng: mua máy tính PC  mua hệ
điều hành Window AND mua phần mềm văn phòng Microsoft Office,… [8]
- Luật kết hợp mờ (fuzzy association rule): Với những khó khăn gặp phải khi rời
rạc hóa các thuộc tính số, các nhà nghiên cứu đề xuất luật kết hợp mờ khắc phục hạn
chế đó và chuyển luật kết hợp về một dạng gần gũi hơn.[8]
- Luật kết hợp với thuộc tính được đánh trọng số (association rules with
weighted items): Các thuộc tính trong cơ sở dữ liệu thường có vai trò khác nhau. Có
một số thuộc tính quan trọng và được chú trọng hơn các thuộc tính khác. Vì vậy trong
quá trình tìm kiếm luật các thuộc tính được đánh trọng số theo mức độ xác định nào
đó.[8]

1.1.2.4. Một số thuật toán
- Thuật toán Apriori
Thuật toán do Agrawal đưa ra năm 1994[9], được Cheung đánh giá mang tính
chất lịch sử trong lĩnh vực khai phá luật kết hợp, vì đã vượt xa tầm của các thuật toán
quen thuộc trong lĩnh vực này. Trong ngành khoa học máy tính và KPDL, thuật toán
Apriori là một trong các thuật toán được xem khi nghiên cứu về luật kết hợp. Apriori
được thiết kế dựa trên các cơ sở dữ liệu chứa các giao tác (ví dụ, tập các mặt hàng

được mua, chi tiết số lần truy cập trang web, giá mở cửa – đóng cửa của các cổ
phiếu…).
Apriori sử dụng phương pháp tìm kiếm theo chiều rộng và cấu trúc cây để đếm
các tập mục ứng viên thường xuyên. Nó sinh ra các tập ứng viên có độ dài k từ tập (k1) ứng viên, nó bỏ bớt các ứng viên có các mẫu con ít xảy ra. Sau đó, quét qua các giao
tác để xác định những tập nào có trong các ứng viên. Cuối cùng, nó loại bỏ dần những
tập ứng viên không đạt.[9]
Tóm lại, thuật toán Apriori được tỉa bớt những tập ứng cử viên có tập con không
phổ biến trước khi tính độ hỗ trợ. Thuật toán tính tất cả các tập ứng cử của tập k trong
một lần duyệt CSDL. Apriori dựa vào cấu trúc cây băm (hashtree). Tìm kiếm đi xuống
trên cấu trúc cây mỗi khi ta chạm lá, ta tìm được một tập ứng cử viên có tiền tố chung
được bao gồm trong giao dịch. Sau đó các tập ứng cử này được tìm trong giao dịch đã
được ánh xạ trước đó. Trong trường hợp tìm thấy biến đếm được tăng lên 1.[9]


12

Hình 1.4. Apriori tìm theo chiều rộng, sinh tập k ứng viên từ tập (k-1)[9]
Bảng 1.3. Bảng ký hiệu cho thuật toán Apriori
Ký hiệu
Ý nghĩa
Tập các mục
I = i1, i2, …, im
Cơ sở dữ liệu giao tác
D
Giao tác trong D
T D
TID: định danh duy nhất
Độ hỗ trợ cực tiểu
minSup
Tập chỉ mục phổ biến trong D

L
Tập con của I (đi kèm với T)
X
Tập ứng viên tại bước k
Mỗi phần tử trong Ck có dạng
Ck
<tập k mục, giá trị count>
Tập k mục (có độ phổ biến lớn hơn minSup)
Mỗi phần tử trong Lk có dạng
Lk
<tập k mục, giá trị support>


13
Nội dung thuật toán
Input: I, D, minSup
Output: L
Thuật toán:
L1 = { tập 1 mục thường xuyên }
for (k=2; Lk-1 <> Ø; k++)
begin
Ck = apriori-gen(Lk-1); // Sinh ra các ứng viên mới Ck
từ tập Lk-1
for all tất cả giao tác t  D
begin
Ct = subset (Ck, t)//Chỉ lấy các ứng viên thuộc t
for all ứng viên c  Ct
c.count++
end;
Lk = {c  Ct | c.count ≥ minSup}

//chỉ lấy những ứng viên đủ điều kiện để xét cho bước
sau
end;

Kết quả = k Lk
Trong thuật toán này, ta có 2 hàm apriori_gen() và subset(), chi tiết của 2 hàm
như sau:
Hàm apriori-gen(Lk-1)
Trả kết quả là tập cha của tất cả các tập có k mục
1. Đầu tiên, chọn 2 tập mục p, q từ tập Lk-1 mục.
- Nếu (k-2) mục của p và q giống nhau, thì ta tạo một ứng viên c mới
từ p và q.
- Ứng viên c này sẽ gồm (k-2) mục giống nhau và 2 mục khác nhau từ
p và q.
2. Bỏ bớt một số tập con Ck-1 nếu c không nằm trong Lk-1.
Ví dụ, Khi k=5, ta lấy 2 tập p, q bất kì ra từ tập L4 như sau
p: {bread, cucumber, onion, tomato}
q: {bread, cucumber, onion, parsley}
Sinh ứng viên và đưa vào C5
c = {bread, cucumber, onion, tomato, parsley}
Loại trừ:
Bỏ c khỏi C5 nếu {bread, onion, tomato, parsley}  L4
Hàm Subset(Ck, t)
Các bước thực hiện như sau:


14
1. Tạo ra một cây băm cho Ck
- Thêm tập mục c
+ Đi từ gốc đến khi gặp nút lá.

+ Tại các nút trong gian với độ sâu d, chọn nhánh để đi tiếp, áp dụng hàm
băm cho mục thứ d của c.
- Tất cả các nút được tạo ban đầu được xem như một cây
- Một lá có thể chuyển thành nút trung gian khi số lượng nút tăng lên
2. Sau khi xây dựng cây băm Ck, hàm subset sẽ tìm các ứng viên thuộc t như sau:
- Tại nút lá, tìm tập mục mà giao tác t chứa
- Tại nút trung gian, khi sắp đến nút I, ta sẽ xem I có thuộc t hay không, và đi
theo nhánh tương ứng
- Tại nút gốc, tìm tất cả các mục thuộc t
Ví dụ:
root

{bread}

{cucumber}

{onion}

{parsley}

{bread,
cucumber}
{bread, onion}
{bread, parsley}
{bread, tomato}

{cucumber, onion}
{cucumber, parsley}
{cucumber, tomato}


{onion, parsley}
{onion, tomato}

{parsley, tomato}

Hình 1.5. Cây băm C2
- Thuật toán ASI
Thuật toán do Agrwal đưa ra năm 1993[9]. Thuật toán này khai phá luật kết hợp
có dạng XY, với Y là tập mục chỉ bao gồm 1 tính chất (hợp 1 mục). Thuật toán tìm
cách xây dựng dần các tập ứng cử viên cho “chức vụ” tập hợp  xuất hiện thường
xuyên. Với cách đánh số thứ tự từ điển cho từng tính chất, việc bổ sung phần tử cho
tập ứng cử viên tránh được trùng lặp, do vậy tiết kiệm tối đa thời gian tính toán.
Số lượng các tập ứng cử viên quá nhiều có thể gây ra hiện tượng tràn bộ nhớ.
Thuật toán đề nghị một phương án quản lý bộ nhớ hợp lý đề phòng trường hợp này:
không cho phép các ứng cử viên chiếm bộ nhớ, mà ghi thẳng chúng vào đĩa ở chế độ
thường trực.


15
Nội dung thuật toán ASI
Input: CSDL D, độ hỗ trợ cực tiểu minSup
Output: các tập mục phổ biến
Thuật toán:
L1 = {các tập 1 mục thường xuyên};
FOR (k=2; luat_ket_hop (k˗ 1) <> Ø; k++) DO
BEGIN
Ck = Ø;
FOR ALL các giao dịch t  D DO
BEGIN
Lt = Subset(Lk-1,t); // các tập mục phổ biến thuộc

L(k-1) chứa trong giao dịch t
FOR ALL các tập mục thường xuyên lt  Lt DO
BEGIN
Ct= tăng thêm một mục có trong giao dịch t;
FOR ALL các ứng cử viên c  Ct DO
IF c  Ck THEN
ADD tăng biến đếm của c thêm 1 cho mục
tương ứng của Ck
ELSE ADD c và Ck và tăng biến đếm tương ứng
thêm 1;
END;
END;
Lk = { c  Ck | c.Count ≥ minSup}
END;

Kết quả = k Lk ;
- Thuật toán SETM
Thuật toán do Houtsma đưa ra năm 1995[9]. Thuật toán sử dụng kỹ thuật bổ sung
dần dần từng phần tử (từ tập hợp 1 mục) nhằm tìm kiếm các tập hợp ứng cử viên. Một
cải tiến đáng kể thuật toán là đề nghị lưu lại cả ID của giao dịch cùng với tập hợp ứng
cử viên. Agrawal đã chỉ ra, thuật toán giả định đưa toàn bộ tập hợp ứng cử viên của
bước trước vào bộ nhớ để bước sau sử dụng. Sarawagi (người đề xuất luật kết hợp) đã
chỉ ra thuật toán này không hiệu quả.
Nội dung thuật toán SETM
Input: CSDL D, độ hỗ trợ cực tiểu minSup
Output: Các tập mục phổ biến
Thuật toán:
L1 = {các tập 1 mục thường xuyên};
L1'= {các tập 1 mục thường xuyên có TID, sắp xếp theo TID};



16
FOR (k=2; luat_ket_hop (k˗ 1) <> Ø; k++ ) DO
BEGIN
Ck = Ø;
FOR ALL các giao dịch t  D DO
BEGIN
Lt = (l  L’k-1 | l.TID = t.TID); // các tập có (k
- l) mục phổ biến trong giao dịch t
FOR ALL các tập mục phổ biến lt  Lt DO
BEGIN
Ct = tăng lt thêm một mục có trong giao dịch t;
//Các ứng cử viên có trong t
C'k +={«t.TID, c»| c  Ct};
END;
END;
SORT C'k theo các tập mục;
DELETE các mục c  C'k có c.Count Lk ={«l.itemset, COUNT OF(l L'k) » | l  L'k};
SORT L'k theo TID;
END

Kết quả = k Lk
- Thuật toán Apriori-TID
Thuật toán Apriori-TID là phần mở rộng dựa theo hướng tiếp cận cơ bản của
thuật toán Apriori[2]. Như ta đã thấy, thuật toán Apriori đòi hỏi phải quét toàn bộ cơ
sở dữ liệu để tính độ phổ biến cho các tập hợp ứng cử viên ở mỗi bước. Đây là một sự
lãng phí lớn. Dựa trên tư tưởng ước đoán và đánh giá độ phổ biến, Agrawal đề nghị cải
tiến Apriori theo hướng chỉ phải quét cơ sở dữ liệu lần đầu tiên, sau đó tính độ hỗ trợ
cho các tập hợp 1 mục. Từ bước thứ hai trở đi, thuật toán Apriori-TID nhờ lưu trữ song

song cả ID của giao dịch và các ứng cử viên, có thể đánh giá, ước lượng độ phổ biến
mà không cần phải quét lại toàn bộ cơ sở dữ liệu.
Thuật toán sử dụng hàm apriori_gen() (giống như thuật toán Apriori) để sinh ra
tập ứng viên trước khi bắt đầu[2]. Không sử dụng cơ sở dữ liệu D để đếm độ phổ biến
sau lần đầu tiên. Thay vào đó, tập Fk sẽ đảm trách nhiệm vụ này. Mỗi thành viên trong
tập Fk sẽ có dạng <TID, {Xk}>, trong đó mỗi Xk là chứa các tập k mục thường xuyên
có nằm trong trong giao tác có định danh TID. Khi k=1, F1 sẽ ứng với cơ sở dữ liệu D,
dựa trên khái niệm tập hợp, mỗi phần tử i sẽ được thay thế bằng tập mục {i}. Với k>1,
Fk được sinh ra là tập các ứng viên có mặt trong các giao tác. Các thành viên trong Fk
ứng với từng giao tác t:
<t.TID, {c  Ck|t chứa c}>
Nếu một giao tác nào đó không chứa bất kì tập k mục nào, thì ta sẽ xóa Fk này. Vì


×