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

Khai phá dữ liệu cho tư vấn lựa chọn môn học

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 (594.28 KB, 12 trang )




BỘ GIÁO DỤC VÀ ĐÀO TẠO TẬP ĐOÀN BƯU CHÍNH VIỄN THÔNG VIỆT NAM
HỌC VIỆN CÔNG NGHỆ BƯU CHÍNH VIỄN THÔNG




PHẠM THỊ PHÚC


KHAI PHÁ DỮ LIỆU CHO TƯ VẤN
LỰA CHỌN MÔN HỌC


CHUYÊN NGÀNH : TRUYỀN DỮ LIỆU VÀ MẠNG MÁY TÍNH
MÃ SỐ : 60.48.15

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


Người hướng dẫn khoa học: PGS.TS. Trần Đình Quế



HÀ NỘI – 2010


TÀI LIỆU THAM KHẢO
[1]. R. Agrawal and Ramakrishnan Srikant (1994), Fast


algorithms for mining association rules. In Proc. of the
20th Int’l Conf. on Very Large Databases
[2]. N. Bendakir and E. Aimeur. Using association rules
for course recommendation. In Proceedings of the
AAAI Workshop on Educational Data Mining, July
16-17 2006
[3]. F. Castro, A. Vellido, A. Nebot, F. Mugica. Applying
Data Mining Techniques to e-Learning Problems
[4]. J. Han and M. Kamber: Data Mining: Concepts
and Techniques, Morgan Kaufmann, San
Francisco, CA, (2000).
[5]. J. Hipp, U. Guntzer, and G. Nakaeizadeh. Algorithms
for Association Rule Mining - A General Survey and
Comparison. In Proc. ACM SIGKDD International
Conference on Knowledge Discovery and Data
Mining, 2000
[6]. Ho Tu Bao: Introduction to Knowledge Discovery and
Data Mining, Institute of Information Technology.
[7]. Margaret H. Dunham, Yongqiao Xiao, Le Gruenwald,
Zahid Hossain, "A Survey of Association Rules”, 2000
[8]. RYAN S.J.D. BAKER, K. YACEF. The State of
Educational Data Mining in 2009: A Review and
Future Visions
[9]. C.Vialardi, J. Bravo, L. Shafti, A. Ortigosa.
Recommendation in Higher Education Using Data
Mining Techniques
[10]. I. H. Witten and E. Frank: Data Mining: Practical
Machine Learning Tools and Techniques with
Java Implementations, Morgan Kaufmann Publishers,
New York, NY, (2000)


20
đào tạo (hỗ trợ thêm nhiều chức năng: sắp xếp lịch học,
sinh viên đăng ký môn học, . …)
 Hiện nay, dữ liệu được lưu trữ ngày một tăng, để ứng
dụng khai phá dữ liệu vào các bài toán này cần tiếp
tục nghiên cứu các phương pháp xử lý cho bài toán có
dữ liệu lớn. Xem xét, nghiên cứu một số ứng dụng
khác của Khai phá dữ liệu.
1

Những năm gần đây, khi nền khoa học công nghệ thông
tin đang ngày càng phát triển như vũ bão thì vấn đề khai phá dữ
liệu đã trở thành một trong những hướng nghiên cứu chính
trong lĩnh vực khoa học máy tính và công nghệ tri thức. Khai
phá dữ liệu đã và đang ứng dụng thành công vào rất nhiều các
lĩnh vực khác nhau như: thương mại, tài chính, thị trường
chứng khoán, y học, thiên văn học, sinh học, giáo dục và viễn
thông v.v.
Đối với nước ta, hệ thống giáo dục đang dần chuyển từ
đào tạo theo niên chế sang đào tạo theo tín chỉ. Đào tạo tín chỉ
có rất nhiều ưu điểm giúp sinh viên có thể tự quản lý quỹ thời
gian của mình và tùy theo khả năng của mình sinh viên sẽ tự
quyết định các môn học từng kỳ của mình, tạo điều kiện cho
sinh viên đạt được kết quả cao nhất với khả năng của mình
đồng thời sắp xếp thời gian tự hỗ trợ bản thân và có thể áp dụng
lý thuyết học trên giảng đường để tiếp cận thực tế. Vì thế việc
xây dựng một hệ thống tư vấn môn học cho sinh viên tạo để
sinh viên có thể lựa chọn môn học lựa chọn, chuyên ngành đạt
hiệu quả cao là điều cần thiết và rất hữu ích.

Mục đích của luận văn này nhằm tìm hiểu kỹ thuật khai
phá dữ liệu. Xem xét và sử dụng kỹ thuật khai phá luật kết
hợp trong tư vấn môn học cho sinh viên. Một ví dụ ví dụ áp
dụng được thể hiện trong xây dựng hệ tư vấn tại trường Đại học
Thăng Long.
2

I. TỔNG QUAN VỀ KHAI PHÁ DỮ LIỆU
Ngày nay, dữ liệu được lưu trữ ngày càng tăng. Vấn đề đặt
ra là chúng ta phải làm gì để tìm ra những tri thức từ một lượng
lớn khổng lồ dữ liệu như vậy.
Nhiệm vụ của Khai phá dữ liệu là từ dữ liệu có sẵn có phải
tìm ra những thông tin tiềm ẩn có giá trị mà trước đó chưa được
phát hiện cũng như tìm ra những xu hướng phát triển và các xu
hướng tác động lên chúng. Các kỹ thuật cho phép ra lấy được tri
thức từ cơ sở dữ liệu được gọi là các kỹ thuật khai phá dữ liệu
(DM: Data Mining). Có rất nhiều kỹ thuật khai phá dữ liệu khác
nhau tuân theo các bước quá trình phát hiện tri thức.
I.1. QUÁ TRÌNH PHÁT HIỆN TRI THỨC TỪ CƠ SỞ DỮ
LIỆU
Quá trình phát hiện tri thức trải qua 5 giai đoạn khác
nhau mà khai phá dữ liệu chỉ là một giai đoạn phát hiện tri thức









Hình trên mô tả 5 giai đoạn trong quá trình phát hiện tri
thức từ cơ sở dữ liệu. Quá trình phát hiện tri thức từ cơ sở dữ
5. Đưa kết quả vào thực tế
4.Minh ho
ạ v
à đánh giá tri th
ức đ
ư
ợc
phát hiện
3. Khai phá dữ liệu – trích ra các
mẫu/mô hình
2. Thu nhập và tiền xử lý dữ liệu
1. Hiểu và xác định vấn đề
Hình 1.1. Quá trình phát hiện tri thức từ cơ sở dữ liệu

19
KẾT LUẬN
Luận văn “Khai phá dữ liệu cho tư vấn lựa chọn môn học” đã trình
bày được một số vấn đề sau:
 Những nghiên cứu về khai phá dữ liệu và ứng dụng
trong nhiều lĩnh vực khác nhau nhằm khai phá nguồn
dữ liệu phong phú được lưu trữ trong các hệ thống
thông tin. Khai phá dữ liệu cũng được áp dụng nhiều
trong việc tư vấn, dự báo, đặc biệt là những ứng dụng
cho tư vấn trong giáo dục.
 Khai phá dữ liệu có rất nhiều hướng tiếp cận (nhiều
nhiệm vụ, mục đích), nhưng có 3 nhiệm vụ phổ biến:
phát hiện Luật kết hợp (Association rules), Phân cụm
(Clustering) và Phân loại (Classification). Trong đó

nhiệm vụ phát hiện luật kết hợp là một trong những
nhiệm vụ được quan tâm, nghiên cứu nhiều nhất.
 Tìm hiểu được những ưu điểm cũng như những khó
khăn trong việc đào tạo theo tín chỉ. Sử dụng phần
mềm mã nguồn mở Weka (đang được sử dụng phổ
biến) cho việc sinh các luật kết hợp. Xây dựng một hệ
thống tư vấn môn học cho Sinh viên nhằm giúp sinh
viên định hướng được trong việc lựa chọn môn học,
chuyên ngành học.
Hướng phát triển tiếp theo của luận văn:
 Để quá trình đào tạo theo tín chỉ hoạt có hiệu quả, cần
xây dựng một hệ thống hoàn chỉnh hỗ trợ cả quá trình

18

Hình 3.12. Giao diện định hướng chuyên ngành
III.3. Kết luận
Trong chương này, chúng ta đã hiểu được những thuận
lợi và khó khăn về quá trình đào tạo theo tín chỉ. Hiểu được các
bước tiền xử lý dữ liệu từ nguồn dữ liệu thu thập được. Sử
dụng được phần mềm mã nguồn mở Weka vào việc sinh ra tập
luật kết hợp. Từ đó xây dựng một tiến trình tư vấn môn học
cho sinh viên. Giúp sinh viên định hướng được việc học tập,
đạt kết quả tốt trong học tập.
3

liệu là một quá trình tương tác và lặp đi lặp lại theo chu trình
liên tục kiểu xoáy trôn ốc, trong đó lần lặp sau hoàn chỉnh hơn
lần lặp trước. Giai đoạn sau sử dụng kết quả của giai đoạn
trước.

I.2. CÁC KỸ THUẬT KHAI PHÁ DỮ LIỆU
 Cây quyết định
 Luật kết hợp
 Mạng Nơron
 Thuật toán di truyền
(1) Cây quyết định: Cây quyết định là một cấu trúc
giống như một lưu đồ mà mỗi nút trong của cây biểu diễn một
trường hợp thử hoặc một phép kiểm tra trên một thuộc tính.
Mỗi một phân nhánh của một nút biểu diễn một khả năng giá trị
(miền giá trị) của phép thử. Các giá trị này nằm về một phía so
với ngưỡng tương ứng của nút. Các nút lá biểu diễn các lớp
hoặc phân bố lớp. Nút trên cùng trong cây gọi là nút gốc
(2) Luật kết hợp: Trong thực tế những chuyên gia về
kinh doanh và tiếp thị rất thích các luật đại thể như: “ 90% phụ
nữ có xe máy màu đỏ và đeo đồng hồ Thuỵ Sỹ thì dùng nước
hoa hiệu Chanel”. Những thông tin như vậy rất hữu ích cho
việc định hướng các hoạt động tiếp thị và kinh doanh.
Luật kết hợp có dạng X=>Y
Tuy nhiên những thông tin tìm được từ một cơ sở dữ liệu
là nhiều. Nhưng thông tin nào là đáng tin cậy. Phương pháp
khai phá luật kết hợp có hai yếu tố đặc trưng đó là độ hỗ trợ
(support)- tần xuất xuất hiện của một tập mục trong cơ sở dữ
4

liệu và độ tin cậy (confidence)- tỉ lệ phần trăm các bản ghi chứa
Y trong số các bản ghi có X.
(3) Mạng nơron: Có nhiều kiến trúc khác nhau cho
mạng nơron và mỗi trong chúng sử dụng các cách kết nối mạng
khác nhau và chiến lựơc học khác nhau để thực hiện các nhiệm
vụ. Khi sử dụng mạng nơron chúng ta phải phân biệt hai giai

đoạn: giai đoạn mã hoá trong mạng nơron được học trên các
mẫu dữ liệu huấn luyện, thực hiện một nhiệm vụ nào đó và giai
đoạn giải mã trong đó mạng được sử dụng để phân lớp, làm dự
báo hoặc thực hiện bắt cứ nhiệm vụ học nào liên quan.
(4) Thuật toán di truyền: Việc xây dựng các thuật toán
di truyền phỏng sinh học nhằm tìm ra các giải pháp tốt nhất bao
gồm các bứơc sau:
1. Tạo ra cơ chế mã di truyền dưới dạng các xâu của một
bảng mã kỹ tự hạn chế.
2. Thiết lập môi trường nhân tạo trên máy tính trên đó
các giải pháp có thể tham gia “đấu tranh sinh tồn” với nhau để
xác định độ đo thành công hay thất bại, hay còn được gọi là
“hàm thích nghi”.
3. Phát triển các “phép lai ghép” để các giải pháp kết hợp
với nhau. Khi đó các xâu mã di truyền của giải pháp cha và mẹ
bị cắt đi và xếp lại. Trong quá trình sinh sản như vậy các kiểu
đột biến có thể được áp dụng.
4. Cung cấp một quần thể các giải pháp ban đầu tương đối
đa dạng và để máy tính thực hiện “cuộc chơi tiến hoá” bằng cách
loại bỏ các giải pháp từ mỗi cá thể và thay thế chúng bằng các

17
Giao diện chương trình

Hình 3.10.Giao diện cập nhật điểm của người dùng



Hình 3.11. Giao diện định hướng cho môn học lựa chọn


16
 Sử dụng phần sinh luật kết hợp, với thuật toán
Apriori, ta được một tập luật kết hợp lưu dưới dạng
file text.
Giai đoạn 2 (tư vấn): sử dụng các luật nhận được từ giai đoạn
1 để đưa ra những tư vấn cho người dùng
 Người dùng cập nhập dữ liệu điểm các môn Đại
cương của mình
 Sau đó, người dùng có thể yêu cầu hệ thống đưa ra
những định hướng về chuyên ngành hoặc định hướng
về môn lựa chọn (chương trình sẽ hiển thị ra các luật
phù hợp với dữ liệu điểm mà người dùng đã cập nhật).








Hình 3.6.:Thuật toán tư vấn




FOR tất cả các luật DO
IF các cặp mamon, loaidiem
trong vế trái của luật i
trùng với cặp
mamon_loaidiem của bangdiem

THEN
Luật i là luật được tư vấn
cho người dùng
END
END
5

con cháu hoặc các đột biến của các giải pháp tốt. Thuật toán sẽ
kết thúc khi một họ các giải pháp thành công được sinh ra.
I.3. ỨNG DỤNG KHAI PHÁ DỮ LIỆU TRONG GIÁO DỤC
Hiện đã có rất nhiều nghiên cứu về ứng dụng khai phá dữ
liệu cho giáo dục. Những khai phá dữ liệu trong giáo dục đã nổi
bật lên như là một lĩnh vực nghiên cứu độc lập trong những
năm gần đây, mà cao điểm là năm 2008 với sự thành lập hội
nghị quốc tế về khai phá dữ liệu giáo dục, và những bài báo về
khai phá dữ liệu giáo. Đó là “Applying Data Mining Techniques
to e-Learning Problems” của Félix Castro1, Alfredo Vellido1,
Àngela Nebot1, và Francisco Mugica3, “Recommendation in
Higher Education Using Data Mining Techniques” của César
Vialardi, Javier Bravo, Leila Shafti, Álvaro Ortigosa, “Using
Association Rules for Course Recommendation” của Narimel
Bendakir và Esma A¨ımeur.
Việc ứng dụng khai phá dữ liệu trong giáo dục đóng vai
trò rất quan trọng trong việc phát triển giáo dục cũng như trợ
giúp đáng kể cho các hoạt động giáo dục.
II. LUẬT KẾT HỢP
Khai phá luật kết hợp là tìm ra những mối quan hệ kết
hợp từ một tập các mục dữ liệu, thông thường từ những cơ sở
dữ liệu lớn, đã được giới thiệu năm 1993. Từ đó đến nay, khai
phá luật kết hợp đã thu hút nhiều quan tâm của các nhà nghiên

cứu, không ngừng được phát triển và đóng vai trò quan trọng
trong khai phá tri thức từ cơ sở dữ liệu.
Phần này giới thiệu các khái niệm cơ sở, các thuật toán
khai phá luật kết hợp.
6

II.1. Các khái niệm cơ sở
Kí hiệu I = {i
1
, i
2
, …, i
m
} là tập các thuộc tính . 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. Mỗi giao tác có một định danh duy
nhất gọi là TID (Transaction Identification). X={i
1
, i
2
,…,i
k
} 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.
Độ hỗ trợ (support)
Độ hỗ trợ của một tập mục X trong cơ sở dữ liệu D là tỉ
số giữa số các giao tác T


D có chứa tập X và tổng số giao
tác trong D (hay là phần trăm của các giao tác trong D có
chứa tập mục X), kí hiệu Supp(X).


Độ hỗ trợ của luật X

Y là tỉ số của số giao tác có chứa
X

Y và số giao tác trong cơ sở dữ liệu D, kí hiệu:
Supp(X

Y)



Độ 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 độ tin cậy của một luật là conf (r). Ta
có 0

conf

1



|D|
|T X :D T|
(X) Supp






|D|
|T YX :D T|
Y)(X Supp





15
 Sinh viên dễ dàng chuyển đổi chuyên ngành mà vẫn được
bảo lưu các điểm tương ứng.
 Sinh viên chủ động sắp xếp lịch học của mình sao cho
phù hợp với sức học, tài chính của mình.
 Sinh viên có thể học lại, thi lại các môn với các lớp sau
mà không cần tổ chức thi lại.
III.2. Kiến trúc hệ tư vấn
Kiến trúc chương trình












Hình 3.1.Kiến trúc của hệ thống tư vấn

Giai đoạn 1 (khai phá dữ liệu):
Trong giai đoạn này. phần mềm mã nguồn Weka được
sử dụng để sinh các luật kết hợp.
 Từ dữ liệu thu thập được, ta chỉnh sửa sao cho không
mất tính chính xác của dữ liệu
 Tạo file dữ liệu định dạng ARFF.
 Tải file dữ liệu vào phần mềm mã nguồn mở Weka

14
windows, và hệ điều hành Macintosh . Nó cung cấp một giao
diện thống nhất với nhiều thuật toán khác nhau, cùng với các
phương pháp cho việc xử lý trước và xử lý sau và dành cho
việc đánh giá kết quả của các sơ đồ học trên bất kỳ tập dữ liệu
cho trước nào.
Weka có thể download từ

Để sử dụng được phần mềm Weka ta phải chuẩn bị dữ liệu
dưới dạng file ARFF.
Dữ liệu đầu ra có thể được lưu trong file dạng text

II.5. Kết luận
Trong chương 2 này, chúng ta đã tìm hiểu được các
khái niệm cơ bản, các thuật toán khai phá luật kết hợp và
tìm hiểu về một phần mềm mã nguồn mở Weka, cách sử
dụng Weka để sinh ra luật kết hợp - một phần mềm đang
được sử dụng rất phổ biến.
III. ỨNG DỤNG KHAI PHÁ DỮ LIỆU VÀO XÂY
DỰNG HỆ THỐNG TƯ VẤN LỰA CHỌN MÔN
HỌC
Phần này giới thiệu về mô hình đào tạo theo tín chỉ, tìm
hiểu cách sử dụng phần mềm mã nguồn mở Weka để sinh luật
kết hợp. Sau đó xây dựng một hệ thống tư vấn môn học cho
Sinh viên
III.1. Đặc điểm đào tạo theo tín chỉ
 Sinh viên chủ động đăng ký môn học
 Sinh viên sẽ tốt nghiệp sau khi hoàn thành khoảng 90 đơn
vị trình đại cương, 120 đơn vị trình chuyên ngành
7

Tập mục (Itemset)
Tập mục X được gọi là tập mục thường xuyên nếu có
Supp(X)

MinSup, ( MinSup là giá trị cho trứoc).
Tính chất 1 (Hỗ trợ của các tập con) Giả sử A, B

I là
hai tập mục với A

B thì Supp(A)


Supp(B).
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.
Tính chất 3 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.
Luật kết hợp
Cho một giao tác, mỗi giao tác là một tập mục, một luật
là một biểu thức có dạng XY, với X, Y là các tập mục, X 
Y = , X  I, Y  I, X được gọi là tiền đề, Y gọi là kết luận
của luật.
Một luật X  Y thoả mãn trên D nếu với một support tối
thiểu minsup và một ngưỡng confidence tối thiểu minconf cho
trước ta phải có:
Support (X

Y)

minsup
Và Confidence (X

Y)


minconf
(X và Y phải là các tập mục thường xuyên trên D)
Tính chất 4 Luật kết hợp không có tính bắc cầu.
Nếu X

Y và Y

Z thoả trên D thì không thể khăng
định X

Z thoả mãn trên D
Tính chất 5 Luật kết hợp không có tính tách.
8

Nếu X

Y

Z thì X

Z và Y

Z chưa chắc xảy ra.
Tính chất 6 Luật kết hợp không có tính bắc cầu.
Nếu X

Y và Y

Z thoả trên D thì không thể khăng
định X


Z thoả mãn trên D.
Tính chất 7
Nếu luật X

(L-X) không thoả độ tin cậy cực tiểu thì
luật Y

(L-Y) cũng không thoả mãn, với các tập mục Y

X


L.
II.2.Mô hình bài toán khai phá luật kết hợp
Bài toán xuất phát từ một kho dữ liệu lưu các thông tin
về kết quả học tập của sinh viên với mong muốn tìm ra những
quy luật lựa chọn các chuyên ngành và các môn tự chọn trong
đào tạo tín chỉ một cách hợp lý nhất sao cho đạt kết quả học
tập tốt nhất.
Khai phá luật kết hợp từ cơ sở dữ liệu được chia
thành hai giai đoạn:
Dữ liệu vào: Cho trước các tập mục I, cơ sở dữ liệu D,
các ngưỡng minsup và minconf.
Dữ liệu ra: Tìm tất cả các luật kết hợp X Y trên D thoả mãn:
Support (XY)  minsup và confidence (X Y) 
minconf.
Giai đoạn 1: Tìm tất cả các tập mục thường xuyên (các
tập có support lớn hơn hoặc bằng ngưỡng minsup):
- Tạo tập các tập mục (itemset), còn gọi là ứng viên

(candidate). Yêu cầu tại bước này là tối ưu về kích thước của

13
nhớn nhưng 
k+1
không đủ bộ nhớ. Kích thước của 
k
được
ước lượng bằng công thức 
candidatesc
C
k
suport(c)+ số giao tác
II.3.2.Thuật toán sinh luật kết hợp
For all large k-itemset l
k
, k2, do begin
H
1
={hệ quả của luật từ l
k
với một
item có mặt trong phần hệ quả}
Call ap_genrules (l
k
, H
l
);
End
Procedure ap_genrules (l

k
:large k-itemset,
H
m
: set of m-item consequents)
If (k >m+1) then begin
H
m+1
=Apriori_gen(H
m
);
For all h
m+1
 H
m+1
do begin
Conf = support (l
k
)/support (l
k
-h
m+1
);
If (conf minconf) then
Output the rule (l
k
–h
m+1
)  h
m+1


With confidence =conf and
support=support(l
k
);
Else
Delete h
m+1
from H
m+1
;
End
Call ap_genrules (l
k
, H
m+1
);
End
II.4. Phần mềm mã nguồn mở Weka
Weka đã được phát triển ở trường Đại học Waikato ở
New Zealand và là tên viết tắt của Waikato Environment for
Knowledge Analysis. Hệ thống này được viết bằng Java. Nó
chạy trên bấ kỳ platform nào, đã được thử nghiệm với Linux và

12
//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;
Thuật toán AprioriTID
L
1
= {Large 1-itemset};
C’
1
= Database D;
for (k=2; L
k-1
  ; k++) do
Begin
C
k
= apriori_gen(L
k-1
);
C’
k
= ;
for tất cả t  C’
k-1
do
begin
// xác định tập ứng viên trong C
k

chứa trong giao dịch với định
//danh t. Tid (Transaction Code)
C

t
= c  C
k
| (c-c[k]) 
t.Set_of_ItemSets^(c-c[k-1]
t.Set_of_ItemSets
for những ứng viên c  C
t
do c.count ++;
if (C
t
) then C’
k
+= < t.Tid, C
t
>
end
L
k
= c C
k
| c.count  minsup;
End
return = 
k
L
k
;
Thuật toán AprioriHibrid
Thuật toán AprioriHyrid là thuật toán lai của 2 thuật toán

Apriori và AprioriTID; nghĩa là ban đầu sử dụng thuật toán
Apriori, khi 
k
nhỏ vừa đủ bộ nhớ và số phần tử của tập ứng
viên Ck nhỏ hơn C
k-1
thì chuyển sang sử dụng thuật toán
AprioriTID. Điều kiện thứ hai để tránh hiện tượng 
k
đủ vộ
9

các tập ứng viên để hạn chế chi phí về bộ nhớ và thời gian. Số
lượng các tập ứng viên được khởi tạo phụ thuộc vào đặc thù
của mỗi thuật toán.
- Đếm số giao dịch hỗ trợ của mỗi tập mục ứng cử
(candidate itemset) bằng cách duyệt qua từng giao dịch trên cơ
sở dữ liệu.
Thuật toán lặp lại quá trình này cho đến khi xác định
được các tập mục thường xuyên thoả mãn yêu cầu.
Giai đoạn 2: Khai phá luật kết hợp
Khi đã thu được các tập mục thường xuyên ở giai đoạn 1,
thuật toán sẽ sinh ra các luật bằng cách:
- Đếm và tính toán độ hỗ trợ Support cho mỗi tập mục
thường xuyên và các tập con (subset) của chúng để tính toán độ
tin cậy confidence.
- Xây dựng luật: Dựa vào tính chất 2.3, ứng với tập
mục thường xuyên, mỗi tập con của nó là tiền đề của một luật,
các mục còn lại được đưa vào kết luận của luật.
- Chọn luật: Tính toán giá trị confidence của mỗi luật

được sinh ra, nếu giá trị này lớn hơn hoặc bằng ngưỡng
minconf thì luật đó sẽ được chọn.
Thuật toán phát hiện luật kết hợp từ các tập mục
thường xuyên cơ bản theo các bước như sau:
Dữ liệu vào: I, D, minsup, minconf, L tập các tập mục
thường xuyên.
Dữ liệu ra: Tất cả những luật kết hợp thoả mãn minsup
và minconf

10
1. Tìm tất cả những mục con không rỗng X của tập mục
thường xuyên l L.
2. Từ các tập mục X  l, tìm các luật có dạng X  (l-X) có
độ hỗ trợ lớn hơn hoặc bằng minsup và độ tin cậy lớn hơn hoặc
bằng minconf
II.3. CÁC THUẬT TOÁN CƠ BẢN
II.3.1. Các thuật toán sinh tập mục thường xuyên
Thuật toán Apriori
Các kí hiệu:
L
k
: Tập các k-mục phổ biến (large k-itemset)
C
k
: Tập các candidate k-itemset (tập các tập k-mục ứng cử
viên).
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:
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;

11
L
k
= {c  C
k
| c.count  minsup}
end;
return 
k
L
k
Hàm apriori-gen
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 (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;
Hàm 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

×