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

ÁP DỤNG THUẬT TOÁN APRIORI ĐỂ HỖ TRỢ SINH VIÊN 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 (739.3 KB, 22 trang )


HỌC VIỆN CÔNG NGHỆ BƯU CHÍNH VIỄN THÔNG



LÊ THỊ KIỀU NGÂN




ÁP DỤNG THUẬT TOÁN APRIORI ĐỂ HỖ TRỢ
SINH VIÊN CHỌN MÔN HỌC



CHUYÊN NGÀNH : KHOA HỌC MÁY TÍNH
MÃ SỐ: 60.48.01


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





HÀ NỘI - 2013



2



Luận văn được hoàn thành tại:
HỌC VIỆN CÔNG NGHỆ BƯU CHÍNH VIỄN THÔNG


Người hướng dẫn khoa học: TS. NGUYỄN MẠNH HÙNG


Phản biện 1: ……………………………………………………………

Phản biện 2: ……………………………………………………………




Luận văn sẽ được bảo vệ trước Hội đồng chấm luận văn thạc sĩ tại Học viện
Công nghệ Bưu chính Viễn thông
Vào lúc: giờ ngày tháng năm

Có thể tìm hiểu luận văn tại:
- Thư viện của Học viện Công nghệ Bưu chính Viễn thông



3
LỜI MỞ ĐẦU

Trong những năm gần đây, sự phát triển mạnh mẽ của công nghệ thông tin đã làm
cho khả năng thu thập và lưu trữ thông tin của các hệ thống thông tin tăng nhanh. Bên cạnh
đó, việc tin học hóa một cách ồ ạt và nhanh chóng của các hoạt động sản xuất, kinh doanh

cũng như nhiều lĩnh vực hoạt động khác đã tạo ra cho chúng ta một lượng dữ liệu cần lưu
trữ kh
ổng lồ. Trong đó có nhiều cơ sở dữ liệu lớn cỡ Gigabyte, thậm chí là Terabyte. Sự
bùng nổ này đã dẫn tới một yêu cầu cấp thiết là cần có những kỹ thuật và công cụ mới để tự
động chuyển đổi lượng dữ liệu khổng lồ kia thành các tri thức có ích. Từ đó, các kỹ thuật
khai phá dữ liệu đã trở thành một lĩnh vực thời sự
của nền công nghệ thông tin thế giới hiện
nay nói chung và Việt Nam nói riêng.
Khai phá dữ liệu đang được áp dụng một cách rộng rãi trong nhiều lĩnh vực kinh
doanh và đời sống khác nhau như: marketing, tài chính, ngân hàng và bảo hiểm, khoa học, y
tế, giáo dục, internet…
Mục đích nghiên cứu của đề tài là tìm hiểu về các kỹ thuật khai phá dữ liệu; các vấn
đề liên quan đến khai phá luật kết hợp nhằm phát hiện và đưa ra các mối liên hệ giữ
a các giá
trị dữ liệu trong cơ sở dữ liệu và đưa ra các luật dựa trên thuật toán Apriori.
Nội dung luận văn gồm 3 chương:
Chương 1: Trình bày giới thiệu chung về khám phá tri thức và khai phá dữ liệu,
trong đó có đề cập đến khái niệm tri thức, dữ liệu, quá trình khám phá tri thức, nhiệm vụ và
các kỹ thuật khám phá tri thức.
Chương 2: Trình bày các phương pháp khai phá dữ liệu bằng luật kết hợp và trình
bày thu
ật toán Aprori.
Chương 3: Trình bày áp dụng thuật toán Apriori để hỗ trợ sinh viên chọn môn học tại
trường Cao đẳng nghề Bách khoa Hà Nội.
.




4

CHƯƠNG 1: TỔNG QUAN VỀ KHÁM PHÁ TRI THỨC VÀ KHAI
PHÁ DỮ LIỆU

1.1 Phát hiện tri thức và khai phá dữ liệu
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.
1.2 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 có thể chia thành các bước như sau:











Hình 1.1 - Các bước trong Data Mining & KDD
Bước 1. Làm sạch dữ liệu (data cleaning & preprocessing): Loại bỏ nhiễu và các dữ
liệu không cần thiết.
Bước 2. Tích hợp dữ liệu (data integration): quá trình hợp nhất dữ liệu thành những
kho dữ liệu (data warehouses&data marts) sau khi đã làm sạch và tiền xử lý (data cleaning
& preprocessing).
Bước 3. Trích chọn dữ liệu (data selection): trích chọn dữ liệu từ những kho dữ liệu
và sau đó chuyển đổi về dạng thích hợp cho quá trình khai thác tri thức. Quá trình này bao

gồm cả việc xử lý với dữ liệu nhiễu (noisy data), dữ liệu không đầy đủ (incomplete data),
.v.v.


5
Bước 4. Chuyển đổi dữ liệu: Các dữ liệu được chuyển đổi sang các dạng phù hợp cho
quá trình xử lý.
Bước 5. Khai phá dữ liệu (data mining): Là một trong các bước quan trọng nhất,
trong đó sử dụng những phương pháp thông minh để chắt lọc ra những mẫu dữ liệu.
Bước 6. Ước lượng mẫu (knowledge evaluation): Quá trình đánh giá các kết quả tìm
được thông qua các độ đo nào đó.
Bước 7. Biểu diễn tri thức (knowledge presentation): Quá trình này s
ử dụng các kỹ
thuật để biểu diễn và thể hiện trực quan cho người dùng.
1.2.1 Đặt vấn đề
Với mỗi tri thức phát hiện được có thể có giá trị trong lĩnh vực này nhưng lại không
mang nhiều ý nghĩa đối với một lĩnh vực khác. Vì vậy mà việc xác định lĩnh vực và định
nghĩa bài toán giúp định hướng cho giai đoạn tiếp theo là giai đoạn thu thập và tiền xử lý dữ
liệu.
1.2.2 Thu thập và tiền xử lý dữ liệu
Các cơ sở dữ liệu thu được thường chứa rất nhiều thuộc tính nhưng lại không đầy đủ,
không thuần nhất, có nhiều lỗi và các giá trị đặc biệt. Vì vậy, giai đoạn thu thập và tiền xử
lý dữ liệu trở nên rất quan trọng trong quá trình phát hiện tri thức từ cơ sở dữ liệu và người
ta chia làm 4 giai đoạn như sau:
- Chọn lọc dữ liệu: Là chọ
n ra các dữ liệu có liên quan trong các nguồn dữ liệu khác
nhau.
- Làm sạch dữ liệu: Dữ liệu được lấy từ nhiều nguồn khác nhau thường không đồng
nhất. Do đó cần có biện pháp xử lý để đưa về một cơ sở dữ liệu thống nhất phục vụ cho việc
khai thác.

- Làm giầu dữ liệu: Trong quá trình thu thập dữ liệu đôi khi không đảm bảo tính đầy
đủ của dữ
liệu. Một số thông tin quan trọng có thể thiếu hoặc không đầy đủ. Quá trình làm
giàu bao cũng bao gồm việc tích hợp và chuyển đổi dữ liệu.
- Mã hóa: Các phương pháp dùng để chọn lọc, làm sạch, làm giàu dữ liệu sẽ được mã
hóa dưới dạng các thủ tục, chương trình hay tiện ích nhằm tự động hóa việc kết xuất, biến
đổi và di chuyển dữ liệu. Các hệ thống con đó có thể được thự
c thi định kỳ làm tươi dữ liệu
phục vụ cho việc phân tích.
1.2.3 Khai thác dữ liệu


6
Giai đoạn khai thác dữ liệu được bắt đầu sau khi dữ liệu đã được thu thập và tiến
hành xử lý. Trong giai đoạn này, công việc chủ yếu là xác định được bài toán khai thác dữ
liệu, tiến hành lựa chọn phương pháp khai thác phù hợp với dữ liệu có được và tách ra các
tri thức cần thiết.
1.3 Khai phá dữ liệu
1.3.1 Mục đích của khai phá dữ liệu:
Nhiệm vụ cơ bản nhất của khai phá dữ liệu là:
- Phân cụm, phân loại, phân nhóm, phân lớp: Quá trình này thường được thực hiện
một cách tự động.
- Khai phá luật kết hợp: Nhiệm vụ là phát hiện ra những mối quan hệ giống nhau của
các bản ghi giao dịch. Luật kết hợp X=>Y có dạng tổng quát là: Nếu một giao dịch đã sở
hữu các tính chất X thì đồng thời nó cũng sở hữ
u các tính chất Y, ở một mức độ nào đó.
Khai phá luật kết hợp được hiểu theo nghĩa: Biết trước các tính chât X, vậy các tính chất Y
là những tính chất nào?
- Lập mô hình dự báo: bao gồm hai nhiệm vụ: Hoặc là phân nhóm dữ liệu vào một
hay nhiều lớp dữ liệu đã xác định từ trước, hoặc là sử dụng các trường đã cho trong một cơ

sở dữ liệu để dự báo sự
xuất hiện (hoặc không xuất hiện) của các trường hợp khác.
- Phân tích đối tượng ngoài cuộc: Một cơ sở dữ liệu có thể có thể chứa các đối tượng
không tuân theo mô hình dữ liệu. Các đối tượng dữ liệu như vậy gọi là các đối tượng ngoài
cuộc.
- Phân tích sự tiến hóa: Phân tích sự tiến hóa thực hiện việc mô tả và mô hình hóa các
quy luật hay khuynh hướng của những đối tượng mà ứ
ng xử của chúng thay đổi theo thời
gian.
1.3.2 Các kỹ thuật khai phá dữ liệu
Kỹ thuật khai phá dữ liệu gồm hai nhóm chính sau:
- Kỹ thuật khai phá dữ liệu mô tả: Có nhiệm vụ mô tả về các tính chất hoặc các đặc
tính chung của dữ liệu trong cơ sở dữ liệu hiện có. Các kỹ thuật này gồm có: Phân cụm
(clustering), tóm tắt (summerization), trực quan hóa (visualiztation), phân tích sự phát triển
và độ lệch (evolution and deviation analyst), phân tích luật kết hợp (association rules) …
- Kỹ thuật khai phá dữ liệu dự đoán: Có nhiệm vụ đưa ra các dự
đoán dựa vào các
suy diễn trên dữ liệu hiện thời. Các kỹ thuật này gồm có: Phân lớp (classification), hồi quy


7
(regession)… Tuy nhiên, chỉ có một số phương pháp thông dụng nhất là: Phân cụm dữ liệu,
phân lớp dữ liệu, phương pháp hồi quy và khai phá luật kết hợp.
a. Phân cụm dữ liệu:
Mục tiêu chính của phương pháp phân cụm dữ liệu là nhóm các đối tượng tương tự
nhau trong tập dữ liệu vào các cụm sao cho các đối tượng thuộc cùng một lớp là tương đồng
còn các đối tượng thuộc các cụm khác nhau sẽ không tương đồ
ng.
b. Phân lớp dữ liệu:
Mục tiêu của phương pháp phân lớp dữ liệu là dự đoán nhãn lớp cho các mẫu dữ liệu.

Quá trình phân lớp dữ liệu thường gồm hai bước: Xây dựng mô hình và sử dụng mô hình để
phân lớp dữ liệu.
Bước 1: Xây dựng mô hình: Một mô hình sẽ được xây dựng dựa trên việc phân tích
các mẫu dữ liệu sẵn có. Mỗi mẫu tương ứng với một lớp,
được quyết định bởi một thuộc
tính gọi là thuộc tính lớp. Các lớp dữ liệu này còn được gọi là lớp dữ liệu huấn luyện
(training data set). Các nhãn lớp của tập dữ liệu huấn luyện đều phải được xác định trước
khi xây dựng mô hình.
Bước 2: Sử dụng mô hình để phân lớp dữ liệu. Trước hết, chúng ta phải tính độ chính
xác của mô hình. Nếu độ chính xác là chấp nhận
được, mô hình sẽ được sử dụng để dự đoán
nhãn lớp cho các mẫu dữ liệu khác trong tương lai.
c. Phương pháp hồi quy:
Phương pháp hồi quy khác với phân lớp dữ liệu ở chỗ: Hồi quy dùng để dự đoán về
các giá trị liên tục còn phân lớp dữ liệu chỉ dùng để dự đoán về các giá trị rời rạc.
d. Khai phá luật kết hợp:
Mục tiêu của phương pháp này là phát hiệ
n và đưa ra các mối liên hệ giữa các giá trị
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à luật kết hợp tìm
được. Khai phá luật kết hợp được thực hiện qua hai bước:
Bước 1: Tìm tất cả các tập mục phổ biến, một tập mục phổ biến được xác định qua
tính hỗ trợ và thỏa mãn độ hỗ trợ
cực tiểu
Bước 2: Sinh ra các luật kết hợp mạnh từ tập mục phổ biến, các luật phải thỏa mãn
độ hỗ trợ cực tiểu và độ tin cậy cực tiểu.
Phương pháp này được sử dụng rất hiệu quả trong các lĩnh vực như maketing có chủ
đích, phân tích quyết định, quản lý kinh doanh, phân tích giá thị trường …
1.3.3 Một số ứng dụng khai phá dữ liệu



8
Hiện nay, kỹ thuật khai phá dữ liệu đang được áp dụng một cách rộng rãi trong rất
nhiều lĩnh vực kinh doanh và trong đời sống khác nhau như:
- Thương mại: Phân tích dữ liệu bán hàng và thi trường, phân tích đầu tư, quyết định
cho vay, phát hiện gian lận, …
- Thông tin sản xuất: Điều khiển và lập kế hoạch, hệ thống quản lý, phân tích kết quả
thử nghiệm, …
- Thông tin khoa học: dự báo thời tiết, CSDL sinh h
ọc: Ngân hàng gen, … khoa học
địa lý: dự báo động đất, …
- Trong các lĩnh vực khác như: y tế, giáo dục, marketing, ngân hàng, viễn thông, du
lịch, internet…
1.3.4 Những khó khăn trong khai phá dữ liệu
- Dữ liệu lớn
- Kích thước lớn
- Dữ liệu động
- Các trường dữ liệu không phù hợp
- Các giá trị bị thiếu
- Các trường dữ liệu bị thiếu.
1.4 Kết luận
Chương này trình bày quá trình phát hiện tri thức từ cơ sở dữ liệu, nhiệm vụ của khai
phá dữ liệu, các kỹ thuật khai phá, một số ứng dụng của khai phá và những khó khăn gặp
phải trong quá trình khai phá dữ liệu. Trong kỹ thuật khai phá dữ liệu, khai phá các luật kết
hợp là một trong những lĩnh vực đang đuợc quan tâm và nghiên cứu. Chương 2 luận văn sẽ
trình bày cụ thể về khai phá lu
ật kết hợp và thuật toán Apriori.


9
CHƯƠNG 2: KHAI PHÁ DỮ LIỆU BẰNG LUẬT KẾT HỢP

VÀ THUẬT TOÁN APRIORI

2.1. Khai phá dữ liệu bằng luật kết hợp
2.1.1 Định nghĩa về luật kết hợp
a. Định nghĩa:
Cho I={I1, I2, , Im} là tập hợp của m tính chất riêng biệt. Giả sử D là cơ sở dữ liệu,
với các bản ghi chứa một tập con T các tính chất (có thể coi như T  I), các bản ghi đều có
chỉ số riêng. Một luật kết hợp là một mệnh đề kéo theo có dạng XY, trong đó X, Y  I,
thỏa mãn điều kiện XY=. Các tập hợp X và Y được gọi là các tậ
p hợp tính chất
(itemset). Tập X gọi là nguyên nhân, tập Y gọi là hệ quả.
Có 2 độ đo quan trọng đối với luật kết hợp: Độ hỗ trợ (support) và độ tin cậy
(confidence), được định nghĩa như phần dưới đây.
b. Định nghĩa độ hỗ trợ:
Định nghĩa 2.1: Độ hỗ trợ của một tập hợp 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à 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 hợp X), ký hiệu là support(X) hay supp(X) (support sẽ tự sinh ra khi cài
thuật toán)
Supp(X) =

D
XYDT  :

Ta có: 0 ≤ supp(X) ≤ 1 với mọi tập hợp X.
Định nghĩa 2.2: Độ hỗ trợ 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)
Supp(XY) =

D

YXTDT  :

Khi chúng ta nói rằng độ hỗ trợ của một luật là 50%, có nghĩa là có 50% tổng số bản
ghi chứa X  Y. Như vậy, độ hỗ trợ mang ý nghĩa thống kê của luật.
c. Định nghĩa độ tin cậy:
Định nghĩa 2.3: Độ 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
Nhận xét: Độ hỗ trợ và độ tin cậy có xác suất sau:


10
Supp(XY)=P(X  Y)
Conf (XY) = P(Y/X)=supp(X  Y)/supp(X)
Có thể định nghĩa độ tin cậy như sau:
Định nghĩa 2.4: Độ 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 của tập hợp chứa X  Y, so với tổng số các bản ghi chứa X.
d. Định nghĩa tập hợp theo:
Định nghĩa 2.5: Tập hợp X được gọi là tập hợ
p thường xuyên (Frequent itemset) 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
Tính chất 2.1: Giả sử A,B  I là hai tập hợp 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.
Tính chất 2.2: Giả sử A, B là hai tập hợp, A,B  I, nếu B là tập hợp thường xuyên
và AB thì A cũng là tập hợp thường xuyên.
Thật vậy, nếu B là tập hợp 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 2.1)

Tính chất 2.3: Giả sử A, B là hai tập hợp, A  B và A là tập hợp không thường
xuyên thì B cũng là tập hợp không thường xuyên
Định nghĩa 2.6: Một tập mục X được gọi là đóng (closed) nếu không có tập cha nào
củ
a X có cùng độ hỗ trợ với nó, tức là không tồn tại một tập mục X’ nào mà X’X và t(X)
= t(X’) (với t(X) và t(X’) tương ứng là tập các giao chứa tập mục X và X’). Ký hiệu tập phổ
biến đóng là FCI.
Định nghĩa 2.7: Nếu X là phổ biến và không tập cha nào của X là phổ biến, ta nói
rằng X là một tập phổ biến lớn nhất (maximally frequent itemset). Ký hiệu tập tất cả các tập
phổ biến lớn nhấ
t là MFI. Dễ thấy MFI  FCI  FI.
Khai phá luật kết hợp là công việc phát hiện ra (tìm ra, khám phá, phát hiện) các luật
kết hợp thỏa mãn các ngưỡng độ hỗ trợ () và ngưỡng độ tin cậy (α) cho trước. Bài toán
khai phá luật kết hợp được chia thành hai bài toán nhỏ, hay như người ta thường nói, việc
giải bài toán trải qua hai pha:
Pha 1: Tìm tất cả các tập phổ biến (tìm FI) trong CSDL T.


11
Pha 2: Sử dụng tập FI tìm được ở pha 1 để sinh ra các luật tin cậy (interesting rules).
Ý 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ể xác
định luật AB  CD với tỷ lệ độ tin cậy:
conf =
supp(AB)
supp(ABCD)

Nếu conf ≥ minconf thì luật được giữ lại (và thỏa mãn độ hỗ trợ tối thiểu vì ABCD là
phổ biến).
Thuật toán 1 - Thuật toán cơ bản:
Input: I, D, , 

Output: Các luật kết hợp thỏa mãn ngưỡng độ hỗ trợ , ngưỡng độ tin cậy .
Algorithm:
1) Tìm tất cả các tập hợp các tính chất có độ hỗ trợ không nhỏ hơn ngưỡng .
2) T
ừ các tập hợp mới tìm ra, tạo ra các luật kết hợp có độ tin cậy không nhỏ hơn .
Thuật toán 2 - Tìm luật kết hợp khi đã biết các tập hợp thường xuyên:
Input: I, D, , , S
Output: Các luật kết hợp thỏa mãn ngưỡng độ hỗ trợ , ngưỡng độ tin cậy .
Algorithm:
1) Lấy ra một tập xuất hiện  - thường xuyên S  S, và mộ
t tập con X  S.
2) Xét luật kết hợp có dạng X  (S  X), đánh giá độ tin cậy của nó xem có nhỏ
hơn .hay không.
Thực chất, tập hợp S mà ta xét đóng vai trò của tập hợp giao S = X  Y, và do X 
(S - X) = , nên coi như Y= S - X.
2.1.2 Một số hướng tiếp cận trong khai phá luật kết hợp
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 dạng luật kết hợp này thì các items chỉ được quan tâm là có hay không
xuất hiện trong cơ sở dữ liệu giao tác (Transaction database) chứ không quan tâm về mức
độ hay tần xuấ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.
- 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ó cá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 dạng nào cả. Vì vậy để khai phá luật kết


12

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ó.
- 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ô.
- Luật kết hợp nhiều mức (multi-level association ruls): 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,…
- 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.
- 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 không có vai trò như 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 đó.
- Khai thác luật kết hợp song song (parallel mining of association rule): Nhu cầu
song song hóa và xử lý phân tán là cần thi
ết vì kích thước dữ liệu ngày càng lớn nên đòi hỏi
tốc độ xử lý phải được đảm bảo.Trên đây là những biến thể của khai phá luật kết hợp cho
phép ta tìm kiếm luật kết hợp một cách linh hoạt trong những cơ sở dữ liệu lớn. Bên cạnh đó
các nhà nghiên cứu còn chú trọng đề xuất các thuật toán nhằm tăng tốc quá trình tìm kiếm
luật kết hợp trong cơ
sở dữ liệu.
2.2 Thuật toán Apriori
2.2.1 Ý tưởng chính của thuật toán Apriori:
- Tạo ra các tập chỉ mục phổ biến có 1 phần tử, rồi tiếp đến là 2 phần tử, 3 phần tử
cho đến khi chúng ta tạo ra tập chỉ mục phổ biến của mọi kích thước.
- Mỗi tập chỉ mục được tạo ra phải được tính toán độ hỗ trợ.
- Tập chỉ mục phổ biến k phần tử được tạo ra từ tập phổ biế

n k-1 phần tử. Bằng cách,
nối từng đôi một tập chỉ mục phổ biến k-1 phần tử đã có để tạo ra tập ứng viên k phần tử.
Sau đó, những tập ứng viên nào có chứa một tập con không phải là phổ biến sẽ bị loại bỏ.
2.2.2 Thuật toán Apriori
Bảng 2.1: Bảng ký hiệu cho thuật toán Apriori
k-itemset
Tập chỉ mục có k phần tử.
Lk (lagre k-itemset)
Tập chỉ mục phổ biến có k phần tử.


13
Mỗi phần tử thuộc tập này sẽ có 2 thuộc tính:
i. itemset (tập chỉ mục)
ii. count (biến đếm để đo độ hỗ trợ)

Ck

Tập chỉ mục ứng viên có k phần tử.
Mỗi phần tử thuộc tập này cũng có 2 thuộc tính:
i. itemset (tập chỉ mục)
ii. count (biến đếm để đo độ hỗ trợ)


Thuật toán Apriori [10-12]
Input: Cơ sở dữ liệu D và độ hỗ trợ cực tiểu minsupp.
Output: Tập chỉ mục phổ biến trong D.
Giả mã[8] :
1) L
1

= {large 1-itemsets};
2) for ( k = 2; L
k-1
≠ Ø; k++ ) do begin
3) C
k
= apriori-gen(L
k-1
); // Sinh tập ứng viên mới
4) forall transactions t

D do begin
5) C
t
= subset(C
k
, t); // Tập ứng viên thuộc t
6) forall candidates c

C
t
do
7) c.count++;
8) end
9) L
k
= {c

Ck | c.count ≥ minsupp}
10) end

11) Answer = U
k
L
k
;
2.3 Kết luận
Chương này luận văn trình bày về khai phá dữ liệu bằng luật kết hợp trong đó đã nêu
được định nghĩa về luật kết hợp, một số hướng tiếp cận trong khai phá luật kết hợp và trình
bày thuật toán Apriori. Chương 3 luận văn sẽ trình bày bài toán hỗ trợ sinh viên lựa chọn
môn học tại Trường Cao đẳng Nghề Bách khoa Hà Nội.




14
CHƯƠNG 3: ÁP DỤNG THUẬT TOÁN APRIORI ĐỂ HỖ TRỢ
SINH VIÊN CHỌN MÔN HỌC TẠI TRƯỜNG CAO ĐẲNG NGHỀ
BÁCH KHOA HÀ NỘI

3.1 Giới thiệu bài toán
Trường Cao đẳng Nghề Bách Khoa Hà Nội là trường đào tạo hệ cao đẳng Nghề
chính quy. Hiện nay nhà trường vẫn tổ chức đào tạo theo hình thức niên chế và trong trong
1 vài năm tới nhà trường sẽ chuyển sang hình thức đào tạo theo tín chỉ. Và dựa vào kết quả
học tập của sinh viên ba khóa là khóa 1, khóa 2 và khóa 3 đang được phòng Đào tạo quản lý
bằng bảng tính Excel. Bài toán đặt ra là từ kết quả học tập củ
a các lớp và các khóa hãy tìm
ra các luật nhằm hỗ trợ sinh viên chọn các môn học tại trường sao cho có hiệu quả học tập là
cao nhất.
3.2 Công cụ sử dụng trong chương trình
Công cụ sử dụng trong chương trình là phần mềm mã nguồn mở Weka. Weka

(Waikato Environment for Knowledge Analysis) là phần mềm khai thác dữ liệu, thuộc dự
án nghiên cứu của đại học Waikato, New Zealand. Mục tiêu của dự án là xây dựng một
công cụ hiện đại nhằm phát triển các kỹ thuật máy học và áp dụng chúng vào bài toán khai
thác dữ liệu trong thực tế.
Weka cung cấp những tính năng chính sau:
- Bao gồm nhiều công cụ
đa dạng để thay đổi tập dữ liệu, xử lý dữ liệu, giải thuật
học và phương pháp đánh giá.
- Giao diện đồ họa người dùng (trực quan hóa dữ liệu).
- Môi trường để so sánh các giải thuật học.
- Có thể xử lý trước tập dữ liệu, cho vào trong một sơ đồ, và phân chia các lớp kết
quả và thực hiện nó mà không cần viết bất cứ
một chương trình nào.
- Weka lấy dữ liệu từ các file có định dạng .arff, nó được sinh ra từ một file hoặc
một bảng cơ sở dữ liệu.
Weka có bốn môi trường chính:
- Simple CLI: Giao diện đơn giản kiểu dòng lệnh (như MSDOS)
- Explorer: Môi trường cho phép sử dụng tất cả các khả năng của WEKA để khai
phá dữ liệu.
- Experimenter: Môi trường cho phép tiến hành các thí nghiệm và thực hiện các
ki
ểm tra thống kê (statistical tests) giữa các mô hình học máy.


15
- KnowledgeFlow: Môi trường cho phép tương tác đồ họa kiểu kéo/thả để thiết kế
các bước (các thành phần) của một thí nghiệm.
Hình 3.1 thể hiện giao diện của phần mềm mã nguồn mở Weka.

Hình 3.1: Giao diện phần mềm Weka

3.3 Mô tả dữ liệu của bài toán
Dữ liệu đầu vào của bài toán là các file excell lưu trữ điểm thành phần của sinh viên
các khóa khác nhau. Ở mỗi khóa khác nhau, các sinh viên được chia theo các lớp: Công
nghệ thông tin, Điện tử viễn thông, Điện, Cơ khí, Kế toán doanh nghiệp (KTDN), Ô tô,
Quản trị mạng (QTM), Cơ điện tử (CĐT), Lập trình máy tính (LTMT), thiết kế đồ họa
(TKĐH).
Dữ liệu ở mỗi lớp gồm có số thứ tự
, mã sinh viên, họ và tên sinh viên, ngày sinh, các
môn học ứng với mỗi học kỳ và điểm thực tập. Toàn bộ dữ liệu gồm có ba khóa: Khóa 1,
khóa 2 và khóa 3. Kết quả học tập của sinh viên là điểm chữ theo hệ tín chỉ.
Dưới đây là ví dụ về dữ liệu khóa 1. Đó là “Bảng thống kê kết quả học tập để xét
được làm đồ án tốt nghiệp (hoặc thi tốt nghiệp)” gồm có năm lớ
p lần lượt là CNTT, ĐTVT,
Điện, Cơ khí và KTDN. Sau đây là bảng dữ liệu của khóa 1:


16

Hình 3.2: Bảng dữ liệu khóa 1.
Theo như bảng số liệu trên thì mỗi dòng sẽ ứng với một sinh viên với số thứ tự, mã
sinh viên, họ tên, ngày sinh, điểm các môn học theo từng kỳ.
Bảng 3.2: Số lượng sinh viên từng lớp trong các khóa
Lớp Khóa Số lượng sinh viên Số môn
1 175 35
2 269 38
KTDN
3 329 30
1 161 35
CNTT
2 131 47

1 134 36
2 156 39
ĐTVT
3 150 24
1 135 38
2 110 39
ĐIỆN
3 218 25
1 39 42
CK
2 44 47
QTM 2 42 44


17
3 149 26
2 96 55
ÔTÔ
3 200 25
BK Cad 3 163 26
CDT 3 63 25
TKĐH 3 84 28
LTMT 3 131 25

Bảng 3.2 là bảng số sinh viên các lớp trong từng khóa. Có thể nhận thấy số môn học
của khóa 1 là ít hơn số môn của các ngành trong khóa 2. Tuy nhiên đến khóa 3 thì số môn
học gần như giảm một nửa do khóa 3 mới học hết hai học kỳ đầu, tức là một nửa thời gian
học.
Mặc dù vậy, để chạy được thuật toán Apriori trên công cụ Weka, những dữ liệu trên
cần phải được chu

ẩn hóa mới có thể chạy được.
3.4 Chuẩn hóa dữ liệu đầu vào cho thuật toán
Do đầu vào của phần mềm Weka là file định dạng .arff nên toàn bộ bộ dữ liệu excell
của bài toán này đều phải chuyển đổi sang dạng chuẩn .arff. Cấu trúc của một file arff như
sau:
Một file .arff gồm có 2 phần. Phần Header là phần khai báo quan hệ và các biến, phần
Data là phần dữ liệu ứng với mỗi thuộc tính đã khai báo ở phần Header.
Mở đầu một file .arff là từ khóa @relation định nghĩa tên hay mỗi quan hệ củ
a dữ liệu.
Ví dụ: @relation Cokhi.
Tiếp sau mỗi dòng là một thuộc tính của dữ liệu với từ khóa @attribute. Dữ liệu trong
Weka được định nghĩa theo các kiểu sau:
- Numeric: là kiểu dữ liệu số, gồm kiểu số nguyên (integer) và kiểu số thực (real).
- Nominal: là kiểu dữ liệu danh sách.
- String: là kiểu dữ liệu dạng chuỗi.
- Date: kiểu dữ liệu thời gian (ngày tháng năm, giờ phút giây).
Ph
ần dữ liệu của bài toán được mở đầu bằng từ khóa @data. Sau đó là các giá trị lần
lượt của các thuộc tính liên tiếp nhau được ngăn cách bởi dấu phẩy.
Ví dụ:
@data


18
D+,D+,C,C,B,B,A+,C,B,D+,D+,C,C,B+,B,D+,C,D+,B,B,B,C,C,B,B
D+,B,B,B,C,B+,C,C,B+,D+,D+,C,C,A+,D+,D+,D+,D+,B+,A+,C,C,D+,C,D+
C,B,B,B,D+,B+,B,C,B,C,C,C,D+,D+,D+,D+,D+,D+,B,B,D+,D+,D+,D+,D+
Như vậy để chuyển từ file excell sang file dạng .arff, các công việc cần phải làm như
sau:
- Mỗi lớp của một khóa sẽ được lưu thành một file .arff với tên chính là tên của lớp

và khóa đó.
- Loại bỏ các thuộc tính không liên quan đến việc phân tích luật kết hợp như: số
thứ tự, mã sinh viên, họ tên sinh viên, ngày sinh.
- Mỗi một môn học là một thuộc tính. Do sử d
ụng luật kết hợp trong Weka không
cho phép sử dụng các dữ liệu số liên tục nên các thuộc tính này sẽ nhận các giá trị
rời rạc là {A+,A,B+,B,C+,C,D+,D,F}. Ví dụ:
@attribute “Tieng anh 1” {A+,A,B+,B,C+,C,D+,D,F}
- Điểm môn học của các sinh viên sẽ lưu vào phần data với điểm mỗi môn được
ngăn cách bằng một dấy phẩy.
- Tất cả tên của lớp và các môn học phải đổi sang chữ tiếng việt không dấu vì phần
mềm Weka không hỗ trợ ngôn ngữ tiếng việt.
Có nhiều cách chuyển đổi file dữ liệu excell sang file .arff. Cách chuyển đơn giản và
thủ công là ta xóa các thông tin không cần thiết trong file excell, xóa trường số thứ tự, mã
sinh viên, họ tên, ngày sinh đi.
Tạo một file mới với tên là tên lớp trong khóa, có phần mở rộng là .arff. Trong file
này, tên lớp bổ sung thêm @relation ở trước. Các môn học sẽ chuyển thành tên các thuộc
tính như trên.
Với file excell chỉ để lại các cột đi
ểm của từng môn của sinh viên, ta sẽ lưu file này
dưới dạng .cvs (Comma delimited) rồi lưu lại. Mở file .arff mới tạo, thêm từ khóa @data
vào cuối file rồi sao chép toàn bộ dữ liệu ở file text vừa tạo sang. Như vậy ta đã chuẩn hóa
được một file dữ liệu ở dạng excell sang dạng chuẩn .arff.
3.5 Kết quả khai thác luật kết hợp bằng thuật toán Apriori
Sau khi có dữ liệu đã được chuẩn hóa theo định dạng ARFF của Weka, chúng ta sử
dụng phần mềm này để tiến hành khai phá luật kết hợp sử dụng thuật toán Apriori đã mô tả
trong Chương 2. Trong chương này chúng ta khảo sát mối liên hệ giữa điểm thi của sinh
viên trong từng lớp và ứng với từng khóa. Xét sinh viên lớp cơ khí khóa 1. Bộ dữ liệu này



19
gồm 33 bản ghi theo 41 trường thuộc tính. Mỗi thuộc tính tương ứng là một môn học mà
sinh viên lớp cơ khí khóa 1 đã học. Hình 3.5 dưới đây mô tả về phân bố điểm của sinh viên
ứng với môn học “Pháp Luật” trong đó số sinh viên nhận được điểm B+, B, C và D lần lượt
là 4, 11, 9 và 9. Không có sinh viên nào được điểm A+ và A môn này.

Hình 3.5: Phân bố điểm của sinh viên học môn “Pháp Luật”
Tương tự, chúng ta có phân bố các điểm của các môn khác trong Hình 3.6. Tiếp theo,
sử dụng công cụ Apriori trong Weka với các tham số cấu hình trong Hình 3.6, chúng ta sẽ
thu được kết quả là các luật như trong bảng 3.3.

Hình 3.6: Phân bố điểm của sinh viên ứng với các môn khác nhau
Bảng 3.3 Các luật thu được trên dữ liệu sinh viên lớp Cơ khí khóa 1
1. Nguyen ly cat=D+ TT nhan thuc=A+ 21 ==> Ve ky thuat=D+ 21 conf:(1)
2. Nguyen ly cat=D+ Thiet ke dao=D+ 19 ==> Ve ky thuat=D+ 19 conf:(1)
3. Ve ky thuat=D+ Thiet ke dao=D+ 19 ==> Nguyen ly cat=D+ 19 conf:(1)
4. TH ky thuat do=D+ Nguyen ly cat=D+ 18 ==> Ve ky thuat=D+ 18 conf:(1)


20
5. Nguyen ly cat=D+ 25 ==> Ve ky thuat=D+ 24 conf:(0.96)
6. Ve ky thuat=D+ TH ky thuat do=D+ 19 ==> Nguyen ly cat=D+ 18 conf:(0.95)
7. Ve ky thuat=D+ TH ky thuat do=D+ 19 ==> TT nhan thuc=A+ 18 conf:(0.95)
8. Nguyen ly cat=D+ T. toan 1 so cum TÐ=D+ 19 ==> Ve ky thuat=D+ 18
conf:(0.95)
9. TT nhan thuc=A+ T. toan 1 so cum TÐ=D+ 19 ==> Ve ky thuat=D+ 18
conf:(0.95)
10. TH ky thuat do=D+ 22 ==> TT nhan thuc=A+ 20 conf:(0.91)

Kết quả trong Bảng 3.3 cho chúng ta mối quan hệ tương quan giữa các môn học của

lớp Cơ khí khóa 1.
Các luật trên được sắp xếp theo chiều giảm dần của độ tin cậy. Ví dụ như ở luật 10,
nếu sinh viên nhận điểm D+ môn “Thực hành kỹ thuật đo” thì phần lớn là sẽ nhận điểm A+
môn “Thực tập nhận thức”. Độ tin cậy ở đây chỉ
là 91% nghĩa là trong tổng số 22 bản ghi
tìm thấy giá trị D+ của môn “Thực hành kỹ thuật đo” thì chỉ có 20 bản ghi ghi nhận môn
“Thực tập nhận thức” là A+.
Việc sắp xếp các môn theo chiều giảm dần của độ tin cậy cho phép chúng ta đưa ra
thứ tự ưu tiên khi chọn các luật cho sinh viên chọn môn học phù hợp để làm sao thu được
điểm số cao nhất theo từng môn. Trong bảng 3.3, thứ tự ưu tiên của chúng ta là môn
“Nguyên lý cắt” và môn “thực tập nhận thức”. Hai môn này nên xếp học trước vì nếu điểm
hai môn này là {D+, A+} thì môn “Vẽ kỹ thuật” chắc chắn là D+. Ý nghĩa của luật kết hợp
tìm được ở đây cho sinh viên lớp cơ khí khóa 1 đã được làm rõ.
3.6 Kết quả khai thác từ cơ sở dữ liệu điểm trường Cao đẳng nghề Bách khoa
Hà Nội
Đối với dữ liệu trong chương 3 này bao gồm 3 khóa liên tiếp của 9 lớp trong trường,
chúng ta sử dụng công cụ Apriori với cấu hình tham số như trong phần luận văn đã trình
bày để tìm các luật kết hợp trong từng lớp. Kết quả được ghi trong phần Phụ Lục.
Tuy nhiên, câu hỏi đặt ra là nếu xét trong toàn trường và toàn khóa thì chúng ta thu
được các luật như thế nào để giúp sinh viên lựa chọn môn học phù hợp?
Qua các bảng trong phụ
lục, chúng ta có thể thấy số lớp tăng theo từng khóa. Ví dụ
như khóa 1 chỉ có 5 lớp thì đến khóa 2 là 7 lớp và ở khóa 3 là 8 lớp. Trong cùng một lớp
giữa các khóa khác nhau thì số môn cũng khác nhau. Ví dụ như lớp cơ khí khóa 1 có 41


21
môn nhưng sang khóa 2 đa tăng lên thành 47 môn. Tuy nhiên, ở khóa 3 lại không có lớp
này. Điều này mô tả sự không ổn định trong việc xếp lớp và môn học cho sinh viên trong
trường, gây khó khăn cho việc phân tích để tạo nên các luật kết hợp phù hợp trên phạm vi

toàn trường.
Để giới hạn lại, chúng ta sẽ thực hiện sắp xếp các luật thu được trong các bảng ở phụ
lục và chọn ra các luật có minconf cao nhất, nhóm theo từng lớ
p và các khóa. Mục đích của
việc phân tích này nhằm giúp cho sinh viên các khóa sau có thể lựa chọn môn học phù hợp
để đạt được điểm số cao nhất. Kết quả thể hiện ở các bảng từ bảng 1 đến bảng 7 trong phần
phụ lục.
Các kết quả này tư vấn cho sinh viên cách thức chọn các môn học phù hợp để nhằm
đạt được điểm số cao nhất. Các luật trên được l
ựa chọn theo độ tin cậy cao nhất nên sẽ là
một kênh thông tin phù hợp cho việc lựa chọn môn học của sinh viên trong từng lớp.
3.7 Kết luận
Chương 3 luận văn đã trình bày ứng dụng thuật toán khai phá luật kết hợp Apriori
cho bài toán chọn môn học của trường Cao đẳng nghề Bách khoa Hà Nội. Mô tả về phần
mềm Weka, cách thức chuyển đổi dữ liệu phù hợp cho thuật toán. Sử dụng thuật toán
Apriori trong Weka đối với các dữ liệu này và đã thu được một số kết quả để hỗ trợ cho việc
chọn môn học của sinh viên tr
ường Cao đẳng nghề Bách Khoa Hà Nội.




22
KẾT LUẬN

Nội dung của luận văn tập trung chính vào tìm hiểu các kiến thức cơ bản trong khai
phá luật kết hợp và đi sâu vào tìm hiểu công cụ khai phá dữ liệu mã nguồn mở được sử dụng
phổ biến hiện nay là Weka. Luận văn đã trình bày được:
- Chi tiết thuật toán khai phá luật kết hợp Apriori dựa trên các khái niệm về độ hỗ trợ
và độ tin cậy.

- Trong chương 3, luận văn đã
ứng dụng chạy thuật toán Apriori trên phần mềm
Weka cho bộ dữ liệu điểm thi các môn học của sinh viên trường Cao đẳng nghề Bách Khoa
Hà Nội. Các kết quả thu được gồm 21 bảng các luật trong phụ lục và 7 bảng luật tổng hợp
trong cơ sở dữ liệu điểm của trường Cao đẳng Nghề Bách khoa Hà Nội. Các kết quả này
góp phần hỗ trợ sinh viên các khóa sau lựa chọn môn học phù hợ
p để nhằm đạt được điểm
số cao nhất.
Luận văn tuy đã đạt được một số quả nhất định nhưng vẫn chưa thể đáp ứng được
yêu cầu thực tế do tồn tại một số khó khăn như: Cơ sở dữ liệu chưa đủ lớn, chưa xây dựng
và thiết kế được giao diện của ch
ương trình.
Hướng nghiên cứu tiếp theo của luận văn sẽ tập trung vào một số ứng dụng của thuật
toán Apriori trong Weka cho các ứng dụng khác như việc sắp xếp thời khóa biểu, sắp xếp
lịch dự giờ của Ban giám hiệu,








×