Tải bản đầy đủ (.docx) (30 trang)

Đánh giá chất lượng học tập của sinh viên dựa trên kỹ thuật khai phá dữ liệu.

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 (778.31 KB, 30 trang )

HV: HUỲNH THANH PHỤNG GVHD: PGS.TS. ĐỖ PHÚC
LỜI MỞ ĐẦU
Trong vài thập niên gần đây, cùng với sự phát triển công nghệ thông tin trên thế
giới, bằng những thành tựu của mình ngành công nghệ thông tin Việt Nam đã và đang
góp phần thúc đẩy nhiều ngành nghề và lĩnh vực khác nhau trong nước ngày một phát
triển.
Ngành giáo dục là một trong những ngành quan trọng bậc nhất trong công cuộc
xây dựng và phát triển đất nước, trong đó giáo dục đại học có vị trí quan trọng trong
việc đào tạo nhân tài. Chất lượng đào tạo là vấn đề quan trọng hàng đầu đối với trường
đại học. Việc đảm bảo và nâng cao chất lượng đào tạo đại học là một đòi hỏi ngày càng
mang tính bức thiết và cũng là một công việc khó khăn và mang tính quyết định đến
sứ mạng của nhà trường đại học.
Xuất phát từ nhu cầu thực tiễn về việc đánh giá chất lượng học tập của sinh viên
để hỗ trợ cho việc cải thiện công tác giảng dạy nhằm nâng cao chất lượng giảng dạy
của nhà trường. Khác với phương pháp đánh giá truyền thống, thực hiện chương trình
ứng dụng hỗ trợ đánh giá chất lượng học tập của sinh viên dựa trên kỹ thuật khai phá
dữ liệu.
Trang 1
Cơ sở dữ liệu
Làm sạch dữ liệu
Tích hợp dữ liệu
Kho dữ liệu
Chọn dữ liệu
Dữ liệu có liên quan
Khai phá dữ liệu.
Mẫu dữ liệu.
Tri thức
HV: HUỲNH THANH PHỤNG GVHD: PGS.TS. ĐỖ PHÚC
CHƯƠNG 1
TÌM HIỂU VỀ KHAI PHÁ DỮ LIỆU
1.1 Khái niệm khai phá dữ liệu và quá trình khai phá tri thức


Khai phá dữ liệu là rút hoặc khai phá các tri thức từ một lượng dữ liệu lớn, thuật
ngữ được rút gọn của thuật ngữ khai phá thông tin, tri thức từ dữ liệu.
Nhiều người xem khai phá dữ liệu là một khái niệm đồng nghĩa của một khái niệm nổi
tiếng khác là “Khám phá tri thức trong cơ sở dữ liêu” (Knowledge Discovery
Database: KDD). Thay vào đó, những người khác lại xem khai phá dữ liệu đơn giản là
một bước chủ yếu trong tiến trình KDD. Toàn bộ tiến trình KDD được mô tả trong
hình sau:
Hình 1: Tiến trình KDD
- Làm sạch dữ liệu: loại bỏ những dữ liệu không liên quan.
- Kết hợp dữ liệu: những dữ liệu từ nhiều nguồn được kết hợp với nhau.
- Lựa chọn dữ liệu: những dữ liệu có liên quan được dưa vào cơ sở dữ liệu.
Trang 2
Cơ sở dữ liệu Kho dữ liệu
Làm sạch và tích hợp dữ liệu. Lọc dữ liệu
Máy chủ của cơ sở dữ liệu hoặc kho dữ liệu
Bộ máy khai phá dữ liệu
Đánh giá mẫu
Giao diện đồ họa dành cho người dùng
Cơ sở tri thức
HV: HUỲNH THANH PHỤNG GVHD: PGS.TS. ĐỖ PHÚC
- Chuyển đổi dữ liệu: dữ liệu được chuyển đổi thành những dạng phù hợp cho
việc khai phá bằng cách thực thi những thao tác rút gọn hoặc tổng hợp tuỳ theo
từng trường hợp.
- Khai phá dữ liệu: một quá trình thiết yếu trong đó những phương pháp thông
minh được áp dụng để tách ra những mẫu dữ liệu.
- Đánh giá mẫu: xác định những mẫu nào thực sự đáng chú ý trình bày những cơ
sở tri thức trên một số giới hạn không đáng chú ý.
- Trình bày tri thức: trong đó những kĩ thuật trực quan hóa và trình bày tri thức
được dùng để trình bày những tri thức đã khai phá được cho người dùng.
Theo quan điểm khai phá dữ liệu là một tiến trình quan trọng trong tiến trình khai

phá dữ liệu từ nhiều dữ liệu trong nhiều cơ sở dữ liệu, kho dữ liệu hoặc những nơi chứa
thông tin khác. Vì vậy, kiến trúc của một hệ thống khai phá dữ liệu có thể gồm những
thành phần sau đây:
Hình 2: Kiến trúc của một hệ thống Khai phá dữ liệu
Trang 3
HV: HUỲNH THANH PHỤNG GVHD: PGS.TS. ĐỖ PHÚC
1.2 Giải thuật Apriori: Tìm kiếm những itemset phổ biến
Apriori là giải thuật hiệu quả để tìm thấy những itemset phổ biến đối với những
luật kết hợp luận lý. Apriori là phương pháp đệ qui, trong đó tập k-itemset phổ biến
được dùng để tạo ra tập (k+1)-itemset phổ biến, và tập 1-itemset sẽ được tìm đầu tiên.
Việc tìm kiếm mỗi tập k-itemset phổ biến yêu cầu duyệt qua toàn bộ cơ sở dữ liệu.
Để cải thiện hiệu quả của phương pháp tìm itemset này, ta chú ý đến một thuộc
tính quan trọng được gọi là thuộc tính Apriori, được phát biểu như sau: một tập con
khác rỗng của một itemset phổ biến cũng phổ biến. Thuộc tính này làm giảm không
gian tìm kiếm.
Giải thuật Apriori gồm:
Giả sử L
k
là một tập những k-itemset.
Bước 1: tự kết.
Để tìm L
k
, lấy L
k-1
tự kết với chính nó, sau khi tự kết sẽ cho kết quả là một tập
những k-itemset, tập này được kí hiệu là C
k
.
Bước 2: sàng lọc.
C

k
là tập cha của L
k
, những phần tử trong đó có thể phổ biến hoặc không phổ
biến. Ta duyệt qua cơ sở dữ liệu để xác định L
k
từ C
k
.
Vì C
k
có thể là rất lớn nên khi duyệt qua cơ sở dữ liệu sẽ rất phức tạp, nên ta
giảm kích thước của C
k
bằng thuộc tính Apriori, nghĩa là trong C
k
, bất kỳ tập con
(k-1) nào của một k-itemset không thuộc L
k-1
thì k-itemset đó bị loại ra khỏi C
k
.
Trang 4
HV: HUỲNH THANH PHỤNG GVHD: PGS.TS. ĐỖ PHÚC
null
AB AC AD AE BC BD BE CD CE DE
A B C D E
ABC ABD ABE ACD ACE ADE BCD BCE BDE CDE
ABCD ABCE ABDE ACDE BCDE
ABCDE

Không phải làm
Thấy tập không phổ biến
Hình 3: Trực quan về thuật toán Apriori
Ví dụ về thuật toán Apriori:
Hình 4: Ví dụ về thuật toán Apriori
Trang 5
Cơ sở dữ liệu TDB
duyệt lần 3
duyệt lần 2
duyệt lần 1
HV: HUỲNH THANH PHỤNG GVHD: PGS.TS. ĐỖ PHÚC
1.3 Cài đặt thuật toán
- Đầu tiên tính toán và tìm tập 1-itemset phổ biến.
- Lần duyệt thứ k: Sử dụng các tập L
k-1
của tập k-1 item phổ biến được tìm thấy ở
lần duyệt thứ k-1 để tạo tập dự kiến C
k
(dùng hàm apriori_gen). Tiếp theo duyệt
cơ sở dữ liệu và tính support cho C
k
.
- Tập hợp các tập k-itemset L
k
: là tập hợp của các tập k_itemset phổ biến, mỗi
phần tử là một tập có 2 trường itemset, support.
- C
k
: tập hợp các tập k-itemset dự kiến, mỗi phần tử của tập có 2 trường item set
và support.

-
k
C
: tập hợp của tập k_itemset dự kiến, khi TID của giao tác sinh ra nó kết hợp
với một itemset dự kiến.
 Thuật toán Apriori cơ bản như sau:
1)
1
L
= tìm_1-itemset_phổ_biến( D );
2) for ( k=2 ;
φ

−1k
L
; k++) {
3)
k
C
= apriori_gen(
1

k
L
,
supmin_
);
4) for each giao tác
Dt ∈
{

5)
t
C
= tập_con(
tC
k
,
);
6) for each ứng viên
t
Cc ∈
7) c.count++;
8) }
9)
}supmin_.{ ≥∈= countcCcL
kk
10) }
11) return
kk
LL ∪=
;
o Thủ tục apriori_gen:
Trang 6
HV: HUỲNH THANH PHỤNG GVHD: PGS.TS. ĐỖ PHÚC
Thủ tục apriori_gen (
1−k
L
:
)1(


k
-itemsets phổ biến;
supmin_
: độ hỗ trợ tối thiểu)
1) for each itemset
11 −

k
Ll
2) for each itemset
12 −

k
Ll
3) if
])1[]1[(])2[]2[( ])2[]2[(])1[]1[(
21212121
−=−∧−=−∧∧=∧=
klklklklllll

then {
4)
21
llc 
=
;
5) if tập_con_không_phổ_biến(
1
,
−k

Lc
) then
6) delete
c
;
7) else add
c
to
k
C
;
8) }
9) return
k
C
;
o Hàm tập_con_không_phổ_biến :
Thủ tục tập_con_không_phổ_biến (
1

k
L
:
)1(

k
-itemsets phổ biến;
supmin_
)
1) for each (

1−k
) tập con
s
của
c
2) if
1−

k
Ls
then
3) return TRUE;
4) return FALSE;
 Hàm tìm_luật:
1) for
k
= 1 đến chiều dài(
1−L
) {
2)
c
= tìm_tập_con (
L
,
k
);
3) for each
i
c
thuộc

c
{
4) vể trái =
i
c
;
5) vế phải =
i
cL −
;
6) độ tin cậy =
100*
)(
)(
i
cđohotro
Lđohotro
;
Trang 7
HV: HUỲNH THANH PHỤNG GVHD: PGS.TS. ĐỖ PHÚC
7) if độ tin cậy > độ tin cậy tối thiểu then {
8) thêm vào luật (vế trái -> vế phải (độ hỗ trợ, độ tin cậy))
9) }
10) }
11) }
1.4 Những thay đổi của giải thuật Apriori
Sau đây là các dạng thuật giải Apriori đã được cải tiến, trong đó các luật 1 đến 6 tập
trung vào việc cải thiện hiệu quả cho Apriori còn luật 7 và 8 xét các lượt mua hàng
qua thời gian.
- Kỹ thuật hash: băm số lần xuất hiện trong các lượt mua hàng của itemset.

- Giảm số lần quét dữ liệu.
- Giảm số lượt mua hàng cần phải duyệt trong những lần duyệt tương lai.
- Sự phân chia: phân chia dữ liệu để tìm những itemset ứng viên.
- Lấy mẫu: khai phá trên một tập con trên những dữ liệu cho trước.
- Tính toán itemset động: thêm những itemset ứng viên tại những thời điểm khác
nhau trong quá trình duyệt dữ liệu.
- Phân tích giỏ thị trường theo lịch: tìm kiếm những itemset phổ biến trong một
tập những khoảng thời gian do người dùng định nghĩa.
- Những mẫu có thứ tự: tìm các thứ tự của các lượt mua hàng phù hợp với thời
gian.
Chi tiết hai phương pháp cải tiến giải thuật Apriori nhằm giảm số lần so sánh và
tăng thời gian xử lí, có thể lưu trữ các tập dự kiến và các giao tác trong các kiểu cấu
trúc sau:
Hash tree
FP tree
- Hash tree
Trang 8
HV: HUỲNH THANH PHỤNG GVHD: PGS.TS. ĐỖ PHÚC
• Để tạo được các itemset dự kiến và kiểm tra độ hỗ trợ của từng tập dự kiến
thì ta phải duyệt tất cả các giao tác trong cơ sở dữ liệu rất nhiều lần.
• Để giảm bớt số lượng so sánh này, một cách rất hiệu quả là lưu trữ các tập
dự kiến trong một cấu trúc băm
• Thay vì phải so sánh mỗi giao tác với từng itemset dự kiến thì ta chỉ cần so
sánh mỗi giao tác với các tập dự kiến được chứa trong các buckets của cây
băm.
• Cấu trúc của Hash tree
o Một node chứa 1 danh sách các itemset (node lá) hay một bảng băm
(node trong)
o Node trong: mỗi bucket chứa con trỏ trỏ đến node khác. Node gốc ở mức
1. Node trong ở mức d trỏ đến các node ở mức d+1.

o Node lá lưu itemset.
o Khi thêm một itemset c: bắt đầu từ node gốc đi xuống cho đến khi tìm
được node lá để chèn nó.
o Sự phân nhánh dựa vào hàm băm của item thứ d của itemset.
o Khi số lượng itemset trong node lá vượt quá giới hạn thì node lá sẽ được
chuyển thành node trong
• Thực thi Apriori với Hash Tree
Yêu cầu: Cần có một hàm băm
Số itemset được lưu trong 1 node lá lớn nhất (nếu số itemset lớn hơn kích
thước max của lá thì sẽ được tách ra thành nhiều node).
Có 15 tập 3_item dự kiến:
{1 4 5}, {1 2 4}, {4 5 7}, {1 2 5}, {4 5 8}, {1 5 9}, {1 3 6}, {2 3 4}, {5 6
7}, {3 4 5}, {3 5 6}, {3 5 7}, {6 8 9}, {3 6 7}, {3 6 8}
Trang 9
1,4,7
2,5,8
3,6,9
Hàm băm
HV: HUỲNH THANH PHỤNG GVHD: PGS.TS. ĐỖ PHÚC

Hình 5: Ví dụ về cách duyệt transaction bằng cấu trúc Hashtree
• Tìm kiếm trên Hash tree: Dùng cây để tìm itemset trong một giao tác t
Trang 10
HV: HUỲNH THANH PHỤNG GVHD: PGS.TS. ĐỖ PHÚC
Bắt đầu từ node gốc, tìm tất cả các tập dự kiến chứa trong giao tác t như
sau:
o Nếu đang ở lá: ta tìm các itemset trong lá đó mà được chứa trong t và
thêm vào tham chiếu đến tập đó trong tập kết quả.
o Nếu đang ở node trong và đang tìm kiếm bằng giá trị băm của node thứ i,
ta tính toán giá trị băm cho các item sau i trong t, đưa các itemset vào

bucket tương ứng, rồi tiếp tục đi đến node lá.
o Nếu là node gốc thì tính hết giá trị băm của tất cả các item trong giao
tác.
− FP tree:
• Sử dụng phương pháp chia để trị đệ quy để khai phá tập phổ biến.
• Ý tưởng: Tạo ra một cây biểu diễn toàn bộ các giao tác trong cơ sở dữ liệu, và
như vậy sẽ đọc các giao tác nhanh hơn duyệt cơ sở dữ liệu.
• Tạo ra các tập dự kiến nhờ duyệt cây từ dưới lên và đưa ra các tập phổ biến
mà không cần duyệt cơ sở dữ liệu.
Ví dụ:
o VD: cho các item A,B,C,D,E có supp(item)>= minsupp.
o Đưa các item vào bảng Header theo thứ tự giảm dần của độ hỗ trợ. Và
giả sử là độ hỗ trợ giảm dần từ A,B,C,D,E
o Và các item không thoả mãn min_supp bị loại bỏ.
Xây dựng cây FP-Tree
Trang 11
HV: HUỲNH THANH PHỤNG GVHD: PGS.TS. ĐỖ PHÚC
Trang 12
HV: HUỲNH THANH PHỤNG GVHD: PGS.TS. ĐỖ PHÚC
Duyệt cây FP_Tree
Xây dựng cây điều kiện với E
Trang 13
HV: HUỲNH THANH PHỤNG GVHD: PGS.TS. ĐỖ PHÚC
Xét D nằm trong tập có E
Trang 14
HV: HUỲNH THANH PHỤNG GVHD: PGS.TS. ĐỖ PHÚC
Xét C nằm trong tập có D và E
Xét A trong tập có D, E
Hình 6: Ví dụ minh họa cách sử dụng cấu trúc FP_Tree
Trang 15

HV: HUỲNH THANH PHỤNG GVHD: PGS.TS. ĐỖ PHÚC
CHƯƠNG 2
XÂY DỰNG CHƯƠNG TRÌNH ỨNG DỤNG
2.1 Giới thiệu bài toán
Chương trình ứng dụng khai phá dữ liệu dữ liệu sinh viên và điểm số để tìm ra
những luật kết hợp nhằm hỗ trợ đánh giá kết quả học tập của sinh viên khoa Công
Nghệ Thông Tin trường Đại Học Tôn Đức Thắng. Chương trình được viết dựa trên
thuật toán Apriori để tìm luật kết hợp, phương pháp cải tiến của thuật toán này là sử
dụng cấu trúc Hashtree để lưu trữ những itemset dự kiến nhằm cải thiện tốc độ của
chương trình.
Chương trình thực hiện hai chức năng chính:
− Tìm luật kết hợp mạnh giữa các môn học theo dạng: học yếu môn học A
sẽ dẫn đến học yếu môn học B. Thao tác của người sử dụng trong chức năng
này là chọn một số môn học yếu (có phẩy dưới 5.0) để làm vế trái của luật,
sau đó thực hiện tìm luật, kết quả tìm được sẽ là những luật có dạng: học yếu
những môn ở vế trái sẽ dẫn đến học yếu một số môn xuất hiện ở vế phải,
đồng thời có được độ hỗ trợ và độ tin cậy của những luật vừa tìm được.
− Tính giá trị của luật bao gồm giá trị độ hỗ trợ, độ tin cậy của luật đó:
thao tác của người dùng trong chức năng này, người dùng chọn môn học làm
vế trái, chọn môn học làm vế phải của luật một cách bất kỳ, sau đó cho thực
thi, kết quả sẽ cho biết giá trị độ hỗ trợ, độ tin cậy của luật mà người dùng
vừa chọn.
Trang 16
HV: HUỲNH THANH PHỤNG GVHD: PGS.TS. ĐỖ PHÚC
2.2 Mô tả dữ liệu
Cơ sở dữ liệu dùng cho chương trình khai phá dữ liệu là cơ sở dữ liệu filter_data
và lược đồ quan hệ của các bảng dữ liệu được sử dụng chủ yếu được mô tả trong hình
sau:
Hình 7: Lược đồ quan hệ của các bảng trong cơ sở dữ liệu data_filter
2.3 Mô tả chi tiết chương trình

Khai phá dữ liệu học tập của sinh viên theo hướng khai phá các luật kết hợp.
Mục đích của chương trình là đưa ra các luật kết hợp liên quan đến vấn đề học tập của
sinh viên.
Bài toán đặt ra cho giai đoạn này là khai phá dữ liệu bằng giải thuật Apriori, kết
hợp với phương pháp cải tiến sử dụng Hash tree trên cơ sở dữ liệu filter_data.
Chương trình được cài đặt theo mô hình 3 tầng:
Trang 17
HV: HUỲNH THANH PHỤNG GVHD: PGS.TS. ĐỖ PHÚC
- Tầng liên kết cơ sở dữ liệu.
- Tầng xử lý chính.
- Tầng giao tiếp với người dùng.
2.3.1 Các cấu trúc dữ liệu lưu trữ đối tượng dữ liệu
Ứng dụng sử dụng dữ liệu có sẵn trong cơ sở dữ liệu để thực thi các thao tác,
gồm các đối tượng tương đương các đối tượng dữ liệu chính như sau:
o SinhVien: đối tượng lưu trữ các thông tin về một sinh viên.
o Lop: thông tin về lớp học.
o MonHoc: các thông tin của môn học.
o Diem: lưu điểm của sinh viên tương ứng với một môn học.
Hình 8: Các đối tượng dữ liệu chính sử dụng trong chương trình
Trang 18
Sv1 Sv2 Sv(N-1) SvN………
Môn1
Môn2
MônM
Môn1
Môn2
MônJ
Môn1
Môn2
MônK

Môn1
Môn2
MônH
HV: HUỲNH THANH PHỤNG GVHD: PGS.TS. ĐỖ PHÚC
Các đối tượng này dùng để thực tế hóa các dòng dữ liệu được truy vấn từ cơ sở
dữ liệu filter_data, mỗi đối tượng tương đương với 1 dòng dữ liệu trong bảng tương
ứng
2.3.2 Các cấu trúc dữ liệu sử dụng trong phần xử lý của bài toán
2.3.2.1 Cấu trúc SVTrans
Giải thuật Apriori được áp dụng tốt nhất trên dữ liệu dạng giao tác (transaction),
khác với dữ liệu dạng quan hệ ta đang dùng (nhằm thuận tiện cho việc lưu trữ cũng
như truy vấn hoặc xem trước dữ liệu). Vì vậy, ta cần phải chuyển dữ liệu đang có thành
dạng transaction ngắn gọn, giải pháp đưa ra là sử dụng cấu trúc dạng mảng 2 chiều như
sau:
o Chiều thứ nhất lưu mã số của sinh viên (hoặc thứ tự của sinh viên đó trong
mảng sinh viên).
o Chiều thứ hai lưu mã số (hoặc thứ tự của môn học trong mảng môn học) của
những môn mà sinh viên đó học theo dạng chuỗi, cách nhau bởi dấu phẩy
“,”.
Hình 9: Cấu trúc của dữ liệu điểm của SV theo dạng transaction
Trang 19
HV: HUỲNH THANH PHỤNG GVHD: PGS.TS. ĐỖ PHÚC
Hình 10: cấu trúc dữ liệu SVTrans gồm các thuộc tính và các phương thức
- bool sinhvien: với ý nghĩa giao tác này có được duyệt ở lượt tiếp theo hay
không. Đồng thời các đối tượng SVTrans sẽ được lưu thành một mảng, với số
lượng tương ứng với số sinh viên có trong cơ sở dữ liệu, như vậy số thứ tự của
sinh viên trong mảng SVTrans sẽ tương ứng số thứ tự của sinh viên đó trong dữ
liệu sinh viên.
- string monhoc: lưu vị trí của môn học trong dữ liệu môn học, mỗi môn học
được ngăn cách bởi dấu phẩy “,”

2.3.2.2 Cấu trúc ItemSet
Các đối tượng thao tác và kết quả của giải thuật Apriori sử dụng chủ yếu là dạng
cấu trúc ItemSet, mỗi itemset sẽ bao gồm một tập các item, và một con số thể hiện độ
hỗ trợ của itemset đó, đối tượng ItemSet được thiết kế như sau:
Hình 11: Thuộc tính và phương thức của cấu trúc ItemSet
Trang 20
HV: HUỲNH THANH PHỤNG GVHD: PGS.TS. ĐỖ PHÚC
2.3.2.3 Cấu trúc CayHash
Sử dụng cấu trúc cây Hash để cải tiến giải thuật Apriori trong việc tìm các tập
itemset phổ biến, cấu trúc cây Hash đáp ứng các nhu cầu thao tác của chương trình,
gồm một số các thuộc tính sau:
Hình 12: Thuộc tính của cấu trúc Cây Hash
- Trong đó 5 thuộc tính private: anhvan, canban, chuyennganh, coso, chinh tri
mang ý nghĩa là 5 nhánh của cây Hash, mỗi nhánh chính là một cây Hash.
- 5 thuộc tính static: s_anhvan, s_canban, s_chinhtri, s_chuyennganh, s_coso là
các chuỗi chứa các điều kiện phân nhánh tương ứng với 5 nhánh của cây.
- ArrayList dl chứa bên trong nó là tập những đối tượng dạng ItemSet. Thuộc tính
này lưu các ItemSet sau khi đã được hash vào nút lá cây. Nghĩa là chỉ có nút nào
là nút lá thì thuộc tính này mới có chứa các itemset.
- bool duyet là thuộc tính thể hiện nút đang xét thuộc cây Hash này đã được duyệt
qua chưa.
Ngoài các thuộc tính căn bản để hình thành một cây Hash đáp ứng nhu cầu của bài
toán, cấu trúc CayHash còn bao gồm các phương thức:
Trang 21
HV: HUỲNH THANH PHỤNG GVHD: PGS.TS. ĐỖ PHÚC
Hình 13: Phương thức của cấu trúc Cây Hash
2.3.2.4 Lớp KhaiThac
Lớp Khai Thác là lớp xử lý chính yếu trong chương trình ứng dụng, đại diện
cho tầng xử lý của chương trình, lớp này có nhiệm vụ đọc thông tin từ cơ sở dữ liệu
thông qua lớp Dữ Liệu, những dữ liệu này đã được lưu thành danh sách các đối tượng

tương ứng và dùng những đối tượng này cho các thao tác xử lý chính của mình. Nhiệm
vụ xử lý là tìm ra những itemset phổ biến và tìm kiếm các luật theo yêu cầu được gửi
xuống từ lớp giao tiếp người dùng.
Hình 14: Thuộc tính của lớp KhaiThac
Trang 22
HV: HUỲNH THANH PHỤNG GVHD: PGS.TS. ĐỖ PHÚC
Hình 15. Các phương thức của Lớp khai phá
2.3.2.5 Lớp LuatKetHop
Lớp LuatKetHop dùng để lưu trữ dạng kết quả của chương trình tìm luật kết hợp. Cấu
trúc của lớp LuatKetHop được mô tả trong hình sau:
Hình 16 : Cấu trúc một đối tượng LuatKetHop
Trang 23
HV: HUỲNH THANH PHỤNG GVHD: PGS.TS. ĐỖ PHÚC
2.3.2.6 Lớp DuLieu
Lớp dữ liệu dùng để kết nối với cơ sở dữ liệu, tải dữ liệu vào các đối tượng
tương ứng như đối tượng sinh viên, lớp, môn học, điểm. Lớp này đại diện cho tầng liên
kết cơ sở dữ liệu của chương trình. Sau khi thực hiện xong việc tải dữ liệu thì đóng kết
nối lại.
Hình 17: Thuộc tính và phương thức lớp Dữ Liệu
Trang 24
HV: HUỲNH THANH PHỤNG GVHD: PGS.TS. ĐỖ PHÚC
2.3.3 Demo chương trình
Khi chương trình bắt đầu, người dùng sẽ gặp form yêu cầu chuyển dữ liệu để
bắt đầu tải dữ liệu cho các thao tác xử lý của chương trình.
Hình 18: Form bắt đầu chương trình
Chương trình ứng dụng gồm có hai form chính để thao tác:
 Form thứ nhất dùng để tìm luật kết hợp. Ý nghĩa các control trên form này được
hiểu như sau:
− ListBox Môn học : Liệt kê tất cả các môn học có điểm trung bình dưới
5.0

− ListBox Môn học được chọn : Liệt kê những môn học sau khi được chọn
từ listbox môn học, tương ứng với các điều kiện vế trái của luật cần tìm.
− ListBox Kết quả: Liệt kê những luật tìm được sau khi “Thực thi”, luật
được trình bày lần lượt dưới dạng:
(Vế Trái). => (Vế Phải) [độ hỗ trợ = X , độ tin cậy = Y]
− Nút ‘ >>>’ : Sau khi người dùng chọn môn học ở Listbox môn học, nhấn
nút này để chuyển những môn được chọn sang ListBox Môn học được
chọn, và vế trái của luật sẽ gồm những môn học vừa được chọn này.
− Nút ‘<<<’ : Sau khi người dùng chọn môn học cho vế trái nếu muốn loại
ra một số môn thì chọn những môn đó, nhấn vào nút này để chuyển
ngược lại môn đó từ ListBox Môn được chọn sang ListBox Môn học.
Trang 25

×