khai phÁ luẬt kẾt hỢp cÁc mÔn hỌc cỦa sinh viÊn

119
KHAI PHÁ LUẬT KẾT HỢP CÁC MÔN HỌC CỦA SINH VIÊN Lời cam đoan Tôi cam đoan rằng, ngoại trừ các kết quả tham khảo từ các công trình khác đã được ghi trong luận văn, các công việc trình bày trong luận văn này là do chính nhóm tôi thực hiện, không phần nào được sao chép từ các công trình khác. Trương Công Vũ Huỳnh Văn Vinh KHOA KHOA HỌC VÀ KỸ THUẬT MÁY TÍNH 1

Upload: sms-management-vs-technology

Post on 30-Oct-2014

1.907 views

Category:

Technology


1 download

DESCRIPTION

 

TRANSCRIPT

Page 1: KHAI PHÁ LUẬT KẾT HỢP CÁC MÔN HỌC CỦA SINH VIÊN

KHAI PHÁ LUẬT KẾT HỢP CÁC MÔN HỌC CỦA SINH VIÊN

Lời cam đoan

Tôi cam đoan rằng, ngoại trừ các kết quả tham khảo từ các công trình khác đã được

ghi trong luận văn, các công việc trình bày trong luận văn này là do chính nhóm tôi thực

hiện, không phần nào được sao chép từ các công trình khác.

Trương Công Vũ

Huỳnh Văn Vinh

KHOA KHOA HỌC VÀ KỸ THUẬT MÁY TÍNH 1

Page 2: KHAI PHÁ LUẬT KẾT HỢP CÁC MÔN HỌC CỦA SINH VIÊN

KHAI PHÁ LUẬT KẾT HỢP CÁC MÔN HỌC CỦA SINH VIÊN

Lời cảm ơn

Lời đầu tiên, tôi muốn gởi lời cám ơn chân thành đến cô Võ Thị Ngọc Châu đã tận

tình giúp đỡ, hướng dẫn chúng tôi trong suốt thời gian thực hiện đề tài thực tập tốt nghiệp

này.

Tôi cũng muốn bày tỏ lòng biết ơn với tất cả các thầy cô của khoa Khoa học và Kỹ

thuật máy tính nói riêng cũng như tất cả các thầy cô của trường đại học Bách Khoa nói

chung, đã tận tình dạy bảo, truyền đạt kiến thức cho tôi trong suốt những năm ngồi ghế nhà

trường.

Tôi cũng gởi lời cảm ơn đến gia đình, đã tạo mọi điều kiện tốt nhất để tôi có thể theo

đuổi con đường học tập của mình.

KHOA KHOA HỌC VÀ KỸ THUẬT MÁY TÍNH 2

Page 3: KHAI PHÁ LUẬT KẾT HỢP CÁC MÔN HỌC CỦA SINH VIÊN

KHAI PHÁ LUẬT KẾT HỢP CÁC MÔN HỌC CỦA SINH VIÊN

Tóm tắt đề tài

Với sự bùng nổ và phát triển của công nghệ thông tin đã mang lại nhiều hiệu quả đối

với khoa học cũng như các hoạt động thực tế, trong đó khai phá dữ liệu là một lĩnh vực

mang lại hiệu quả thiết thực cho con người. Khai phá dữ liệu đã giúp người sử dụng thu

được những tri thức hữu ích từ những cơ sở dữ liệu hoặc các kho dữ liệu khổng lồ khác.

Cơ sở dữ liệu trong các đơn vị, tổ chức kinh doanh, quản lý khoa học chứa đựng nhiều

thông tin tiềm ẩn, phong phú và đa dạng, đòi hỏi phải có những phương pháp nhanh, phù

hợp chính xác, hiệu quả để lấy được những thông tin bổ ích.

Một trong các nội dung cơ bản nhất trong khai phá dữ liệu và rất phổ biến là phát

hiện các luật kết hợp. Phương pháp này nhằm tìm ra các tập phần tử thường xuất hiện đồng

thời trong cơ sở dữ liệu và rút ra các luật về ảnh hưởng của một tập phần tử dẫn đến sự

xuất hiện của một (hoặc một tập) phần tử khác như thế nào. Bên cạnh đó, nhu cầu khai phá

khi dữ liệu gia tăng là rất cần thiết hiện nay bởi kích thước lưu trữ dữ liệu ngày càng nhiều

nên đòi hỏi tốc độ xử lý cũng như dung lượng bộ nhớ hệ thống phải đảm bảo. Vì thế, yêu

cầu cần có những thuật toán hiệu quả cho việc phát hiện luật kết hợp.

Việc dự đoán trước kết quả học tập của sinh viên có thể giúp sinh viên cũng như tổ

chức giáo dục – đào tạo có được những định hướng phù hợp để hỗ trợ sinh viên, giúp sinh

viên không rơi vào những tình huống khó khăn trong việc hoàn tất chương trình học của

mình, ví dụ như: Sinh viên có quá nhiều môn phải học lại mà chưa biết nên chọn môn nào

để học. Với các kỹ thuật khai phá dữ liệu, bài toán phân tích luật kết hợp các môn học dựa

trên kết quả học tập của sinh viên có thể hỗ trợ cho vấn đề này. Tuy nhiên, dữ liệu thu thập

từ một hệ thống giáo dục dựa trên việc đăng ký theo quy chế tín chỉ có những đặc điểm

riêng, làm cho bài toán phân tích luật kết hợp các môn học gặp nhiều khó khăn và thử

thách. Một trong những khó khăn đó là dữ liệu đầu vào của việc khai phá từ các khóa học

khác nhau thì không giống nhau, dữ liệu khác nhau về môn học, số lượng môn học,

chương trình đào tạo,…Khó khăn về việc biểu diễn thông tin đầu ra để người dùng thấy

được ý nghĩa của những thông tin đó.

Do đó, đề tài này hướng đến bài toán phân tích luật kết hợp các môn học dựa trên các

kết quả học tập của sinh viên trong hệ thống giáo dục theo quy chế tín chỉ. Mục đích của

đề tài là xác định những giải thuật khai phá luật kết hợp hiện tại nào phù hợp cho bài toán

này cũng như là thực hiện một số cải tiến làm cho việc dự đoán trạng thái học tập của sinh

viên được chính xác hơn.

KHOA KHOA HỌC VÀ KỸ THUẬT MÁY TÍNH 3

Page 4: KHAI PHÁ LUẬT KẾT HỢP CÁC MÔN HỌC CỦA SINH VIÊN

KHAI PHÁ LUẬT KẾT HỢP CÁC MÔN HỌC CỦA SINH VIÊN

Hiện nay có rất nhiều giải thuật khai phá luật kết hợp đang được sử dụng trong thực

tế, trong đó phổ biến nhất là hai giải thuật Apriori và FP-Growth. Như vậy, mục tiêu của

để tài là sẽ là khảo sát và ứng dụng các giải thuậtApriori và FP-Growth vào bài toán phân

tích luật kết hợp các môn học dựa vào kết quả học tập của sinh viên. Một trong những ứng

dụng đó là xây dựng hệ hỗ trợ ra quyết định cho sinh viên hoặc những người dùng quản lý

trong giáo dục.

KHOA KHOA HỌC VÀ KỸ THUẬT MÁY TÍNH 4

Page 5: KHAI PHÁ LUẬT KẾT HỢP CÁC MÔN HỌC CỦA SINH VIÊN

KHAI PHÁ LUẬT KẾT HỢP CÁC MÔN HỌC CỦA SINH VIÊN

Thesis summary

With the outbreak and development of information technology has brought more

effective for scientific as well as real activities, including data mining is a field that gives

practical effect to humans. Data mining helps users gain useful knowledge from the

database or the giant database. Database in the unit, business organization and

management of science contains many hidden information, rich and varied, requiring fast

approaches, exact match, to take effective useful information.

One of the most basic content in data mining and very popular is discovered

association rules. This method to find the set of elements often appear simultaneously in

the database and draw the law of the influence of a set of elements lead to the appearance

of a (or a set) of other elements. In addition, data mining demand when the current

increase is necessary because the storage size is more and more demanding data processing

speed and memory capacity to ensure the system. Therefore, the need for efficient

algorithms for discovering association rules.

The predictable student learning outcomes can help students as well as education and

training organizations have the appropriate orientation to support students and help

students do not fall into the difficult situation in the completion of his program, for

example: there are too many students to repeat courses that do not know to choose which

courses to learn. With data mining techniques, association rules analysis problem subjects

based on student learning outcomes can help this problem. However, collected data from

an educational system based on the registration in accordance with the credit specific

characteristics, make problem analysis association rules subjects difficult and challenging.

One of the difficulties is that the input data of exploring from different courses are not the

same, different data on the subject, the number of courses, training programs, etc. The

difficulty of the output information to a user that the meaning of that information.

Hence, this topic to the association rules problem analysis courses based on learning

outcomes of students in the education system according to the credits. The purpose of this

topic is to determine the association rules mining algorithms currently appropriate for this

problem as well as implementing a number of improvements made to predict the learning

status of students be more accurate .

KHOA KHOA HỌC VÀ KỸ THUẬT MÁY TÍNH 5

Page 6: KHAI PHÁ LUẬT KẾT HỢP CÁC MÔN HỌC CỦA SINH VIÊN

KHAI PHÁ LUẬT KẾT HỢP CÁC MÔN HỌC CỦA SINH VIÊN

Currently there are many association rule mining algorithms are used in

practice, the most common of which are two algorithms Apriori and FP-

Growth.Thus, the goal of this project is to survey and application of Apriori and FP-

Growth algorithm to the problem of association rule analysis of subjects based on

student learning outcomes. One of these applications is to build decision support

systems for students or those used in management education.

KHOA KHOA HỌC VÀ KỸ THUẬT MÁY TÍNH 6

Page 7: KHAI PHÁ LUẬT KẾT HỢP CÁC MÔN HỌC CỦA SINH VIÊN

KHAI PHÁ LUẬT KẾT HỢP CÁC MÔN HỌC CỦA SINH VIÊN

Mục lục

Lời cam đoan................................................................................................................1

Lời cảm ơn....................................................................................................................2

Tóm tắt đề tài................................................................................................................3

Thesis summary............................................................................................................5

Mục lục.........................................................................................................................7

Danh mục hình............................................................................................................10

Danh mục bảng...........................................................................................................12

Các ký hiệu.................................................................................................................13

Chương 1: Giới thiệu..................................................................................................14

1.1 Tổng quan đề tài................................................................................................14

1.2 Mục tiêu............................................................................................................15

1.3 Phạm vi.............................................................................................................15

Chương 2: Khảo sát các giải thuật khai phá...............................................................16

2.1 Giới thiệu weka.................................................................................................16

2.1.1 Giới thiệu....................................................................................................16

2.1.2 Các giải thuật khai phá luật kết hợp được hỗ trợ trong weka....................17

2.2 Giải thuật Apriori..............................................................................................17

2.2.1 Chi tiết giải thuật........................................................................................17

2.2.2 Khuyết điểm...............................................................................................18

2.2.3 Cải tiến giải thuật Apriori...........................................................................19

2.3 Giải thuật FPGrowth.........................................................................................19

2.3.1 Ý tưởng giải thuật.......................................................................................19

2.3.2 Các bước giải thuật.....................................................................................19

2.3.3 Giải thuật FP-Tree......................................................................................20

2.3.4 Giải thuật FP-Growth.................................................................................20

2.3.5 Đánh giá giải thuật.....................................................................................21

2.4 Giải thuật khai phá luật kết hợp gia tăng..........................................................21

2.4.1 Các trường hợp...........................................................................................21

2.4.2 Các bước giải thuật.....................................................................................22

2.4.3 So sánh.......................................................................................................23

KHOA KHOA HỌC VÀ KỸ THUẬT MÁY TÍNH 7

Page 8: KHAI PHÁ LUẬT KẾT HỢP CÁC MÔN HỌC CỦA SINH VIÊN

KHAI PHÁ LUẬT KẾT HỢP CÁC MÔN HỌC CỦA SINH VIÊN

2.5 Các độ đo được sử dụng [13]............................................................................24

2.5.1 Các độ đo trong weka.................................................................................24

2.5.2 Độ hỗ trợ....................................................................................................24

2.5.3 Độ tin cậy...................................................................................................25

2.5.4 Tham số metricType...................................................................................25

2.5.5 Độ đo cosine...............................................................................................27

2.5.6 Sử dụng các tham số trong đề tài:..............................................................27

Chương 3: Thực hiện khai phá trên tập dữ liệu sinh viên..........................................28

3.1 Khảo sát tập dữ liệu học tập sinh viên..............................................................28

3.2 Thực hiện các giải thuật với tập dữ liệu sinh viên............................................31

3.2.1 Thực hiện giải thuật Apriori.......................................................................31

3.2.2 Thực hiện giải thuật FP-Growth.................................................................33

3.2.3 Thực hiện giải thuật khai phá gia tăng(FUFP tree maintenance)...............34

3.3 Thực hiện các giải thuật với tập dữ liệu thực tế của sinh viên..........................35

3.3.1 Kết quả thực hiện giải thuật Apriori từ dữ liệu học kỳ 1 khóa 2006 với min

support là 0.05..............................................................................................................36

3.3.2 Kết quả thực hiện giải thuật FP-Growth từ dữ liệu học kỳ 1 khóa 2006 với

min support là 0.05.......................................................................................................36

3.3.3 Kết quả thực hiện giải thuật gia tăng từ dữ liệu học kỳ 3 khóa 2005 và dữ

liệu gia tăng học kỳ 1 khóa 2006 với min support là 0.02............................................37

Chương 4: Xây dựng hệ thống...................................................................................38

4.1 Giới thiệu hệ thống............................................................................................38

4.1.1 Chức năng khảo sát và khai phá dữ liệu.....................................................38

4.1.2 Chức năng hỗ trợ ra quyết định..................................................................39

4.1.3 Các bước thực hiện khai phá trong hê thống..............................................40

4.2 Kiến trúc hệ thống.............................................................................................44

4.2.1 Mô hình Model – View – Controller (MVC) [11].....................................44

4.2.2 Kiến trúc hệ thống [12]..............................................................................46

4.3 Phát triển hệ thống............................................................................................52

4.3.1 Lược đồ Usecase........................................................................................52

4.3.2 Lược đồ tuần tự:.........................................................................................61

KHOA KHOA HỌC VÀ KỸ THUẬT MÁY TÍNH 8

Page 9: KHAI PHÁ LUẬT KẾT HỢP CÁC MÔN HỌC CỦA SINH VIÊN

KHAI PHÁ LUẬT KẾT HỢP CÁC MÔN HỌC CỦA SINH VIÊN

4.3.2 Hiện thực....................................................................................................64

4.3.3 Hình ảnh demo...........................................................................................68

Chương 5: Kết luận.....................................................................................................77

5.1 Đánh giá kết quả đạt được.................................................................................77

5.1.1 Đối với các giải thuật khai phá:..................................................................77

5.1.2 Đối với yêu cầu của đề tài:.........................................................................79

5.2 Hướng phát triển...............................................................................................80

Tài liệu tham khảo......................................................................................................81

KHOA KHOA HỌC VÀ KỸ THUẬT MÁY TÍNH 9

Page 10: KHAI PHÁ LUẬT KẾT HỢP CÁC MÔN HỌC CỦA SINH VIÊN

KHAI PHÁ LUẬT KẾT HỢP CÁC MÔN HỌC CỦA SINH VIÊN

Danh mục hình

Hình 2.1 trường hợp khi dữ liệu mới được thêm vào dữ liệu cũ [1]..........................22

Hình 2.2 Kết quả 4 trường hợp [1].............................................................................23

Hình 2.3 So sánh thời gian thực thi [1].......................................................................24

Hình 2.4 So sánh về số lượng nodes [1].....................................................................25

Hình 3.1 Cây FP-Tree khi thực hiện giải thuật FP-Growth........................................34

Hình 3.2 Header table và cây khi thực hiện giải thuật gia tăng..................................35

Hình 4.1 Trình tự các bước khi thực hiện khai phá....................................................41

Hình 4.2 Sơ đồ chứa bước lọc dữ liệu........................................................................43

Hình 4.3 Mô hình Model – View – Controller [11]...................................................45

Hình 4.4 Mô hình Model – View – Controller phức tạp [11].....................................46

Hình 4.5 Kiến trúc tổng quan hệ thống......................................................................47

Hình 4.6 Kiến trúc chi tiết hệ thống...........................................................................48

Hình 4.7 Lược đồ usecase...........................................................................................53

Hình 4.8 Chi tiết hóa usecase hỗ trợ ra quyết định.....................................................57

Hình 4.9 Usecase lựa chọn môn học để kiểm tra.......................................................58

Hình 4.10 Usecase dự đoán những môn nên học.......................................................58

Hình 4.11 Usecase khuyến cáo một môn học.............................................................59

Hình 4.12 Usecase khuyến cáo nhóm các môn học....................................................60

Hình 4.13 Usecase phát hiện những sinh viên học tập bất thường.............................60

Hình 4.14 Lược đồ tuần tự khai phá dữ liệu...............................................................62

Hình 4.15 Lược đồ tuần tự khuyến cáo môn học.......................................................64

Hình 4.16 Giao diện chọn dữ liệu khai phá................................................................68

Hình 4.17 Giao diện chọn giải thuật khai phá............................................................69

Hình 4.18 Xem thông tin khai phá.............................................................................70

Hình 4.19 Giao diện hiển thị các phần tử thường xuyên............................................70

Hình 4.20 Giao diện hiển thị các luật kết hợp............................................................71

Hình 4.21 Giao diện hiển thị dữ liệu gia tăng.............................................................71

Hình 4.22 Giao diện bước 1 chức năng kiểm tra môn học.........................................72

Hình 4.23 Giao diện bước 2 chức năng kiểm tra môn học.........................................72

Hình 4.24 Giao diện bước 3 chức năng kiểm tra môn học.........................................73

Hình 4.25 Giao diện bước 4 chức năng kiểm tra môn học.........................................73

Hình 4.26 Chức năng xem môn học...........................................................................74

KHOA KHOA HỌC VÀ KỸ THUẬT MÁY TÍNH 10

Page 11: KHAI PHÁ LUẬT KẾT HỢP CÁC MÔN HỌC CỦA SINH VIÊN

KHAI PHÁ LUẬT KẾT HỢP CÁC MÔN HỌC CỦA SINH VIÊN

Hình 4.27 Giao diện bước 1 chức năng khuyến cáo môn học....................................74

Hình 4.28 Giao diện bước 2 chức năng khuyến cáo môn học....................................74

Hình 4.29 Xem tỉ lệ đậu rớt của môn học...................................................................75

Hình 4.30 Xem kết quả học tập của sinh viên............................................................75

Hình 4.31 Trạng thái học tập thể hiện dạng pie chart.................................................76

Hình 4.32 Trạng thái học tập thể hiện dạng bar chart................................................76

KHOA KHOA HỌC VÀ KỸ THUẬT MÁY TÍNH 11

Page 12: KHAI PHÁ LUẬT KẾT HỢP CÁC MÔN HỌC CỦA SINH VIÊN

KHAI PHÁ LUẬT KẾT HỢP CÁC MÔN HỌC CỦA SINH VIÊN

Danh mục bảng

Bảng 2.1 Ví dụ minh họa các độ đo...........................................................................26

Bảng 3.1 Tập dữ liệu khi canh theo chương trình đào tạo..........................................29

Bảng 3.2 Tập dữ liệu sau khi xử lý việc học lệch giữa các sinh viên.........................30

Bảng 3.3 Bảng xếp loại sinh viên theo điểm..............................................................31

Bảng 3.4 Bảng các điểm đặc biệt................................................................................31

Bảng 3.5 Bảng dữ liệu ban đầu cho giải thuật Apriori...............................................32

Bảng 3.6 Bảng L1 chạy ví dụ của giải thuật Apriori..................................................32

Bảng 3.7 Bảng C2 chạy ví dụ của giải thuật Apriori..................................................33

Bảng 3.8 Bảng L2 chạy ví dụ của giải thuật Apriori..................................................33

Bảng 3.9 Bảng C3 chạy ví dụ của giải thuật Apriori..................................................33

Bảng 3.10 Bảng L3 chạy ví dụ của giải thuật Apriori................................................33

Bảng 3.11 Bảng kết quả chạy ví dụ của giải thuật FP-Growth...................................34

Bảng 3.12 Bảng tập dữ liệu mới khi khai phá gia tăng..............................................35

Bảng 3.13 Bảng kết quả chạy ví dụ của giải thuật khai phá gia tăng.........................35

Bảng 3.14 Bảng kết quả chạy giải thuật Apriori trên dữ liệu HK1 khóa 2006..........36

Bảng 3.15 Bảng kết quả chạy giải thuật FP-Growth trên dữ liệu HK1 khóa 2006....36

Bảng 3.16 Bảng kết quả chạy giải thuật gia tăng trên dữ liệu khóa 2005 và 2006... .37

Bảng 4.1 Bảng chương trình đào tạo..........................................................................50

Bảng 4.2 Bảng khóa học.............................................................................................50

Bảng 4.3 Bảng môn học trước....................................................................................51

Bảng 5.1 Kết quả so sánh Apriori và FP-Growth của dữ liệu HK3 khóa 2005..........77

Bảng 5.2 Kết quả so sánh Apriori và FP-Growth của dữ liệu HK1 khóa 2006..........78

Bảng 5.3 Kết quả so sánh FUFP và FP-Growth của dữ liệu HK1 khóa 2006............79

KHOA KHOA HỌC VÀ KỸ THUẬT MÁY TÍNH 12

Page 13: KHAI PHÁ LUẬT KẾT HỢP CÁC MÔN HỌC CỦA SINH VIÊN

KHAI PHÁ LUẬT KẾT HỢP CÁC MÔN HỌC CỦA SINH VIÊN

Các ký hiệu

FUFP-Tree maintenance: Fast updated frequent pattern tree maintenance algorithm

CSDL: Cơ sở dữ liệu

KPDL: Khai phá dữ liệu ( Data mining )

SV: Sinh viên

D : dữ liệu cũ

T : tập các giao dịch mới

U : Cơ sở dữ liệu cũ và mới ( D U T )

d : số lượng các giao dịch trong D

t : số lượng các giao dịch trong T

SD(I ) : số lần xuất hiện của item I trong D

ST(I) : số lần xuất hiện của item I trong T

SU(I) : số lần xuất hiện của item I trong U

Sup : ngưỡng hỗ trợ

Insert_Items : tập các item trong giao dich mới được tái xử lý để cập nhật FUFP-

tree

Rescan_Items : tập các item trong giao dịch cũ được tái xử lý để cập nhật FUFP-

tree

Rescan_Transactions : tập các giao dịch trong tập giao dịch cũ chứa các item trong

Rescan_Items

KHOA KHOA HỌC VÀ KỸ THUẬT MÁY TÍNH 13

Page 14: KHAI PHÁ LUẬT KẾT HỢP CÁC MÔN HỌC CỦA SINH VIÊN

KHAI PHÁ LUẬT KẾT HỢP CÁC MÔN HỌC CỦA SINH VIÊN

Chương 1: Giới thiệu

1.1 Tổng quan đề tài

Ngày nay, các phương tiện lưu trữ có dung lượng ngày càng lớn, và các hệ quản trị

cơ sở dữ liệu cũng phát triển mạnh mẽ, cung cấp cho người dùng khả năng lưu trữ dữ liệu

không giới hạn. Dữ liệu tuy nhiều nhưng những giá trị tri thức mà nó chứa đựng lại chưa

được sử dụng một cách hiệu quả. Với những thành công trong các công trình nghiên cứu

trong lĩnh vực khai phá dữ liệu, con người đã khai thác được những giá trị tri thức từ các

dữ liệu được lưu trữ, và sử dụng chúng để giải quyết các bài toán trong nhiều lĩnh vực

quan trọng của đời sống.

Trong các tổ chức giáo dục đào tạo như các trường đại học, cao đẳng, … thông tin về

điểm các môn học của sinh viên các khóa đều được lưu trữ lại, nhưng các tri thức chứa

trong đó chưa được khai thác một cách có hiệu quả. Với các kỹ thuật khai phá dữ liệu, bài

toán phân tích luật kết hợp các môn sinh viên dựa trên kết quả học tập sẽ giúp khai thác

được những tri thức chứa trong cơ sở dữ liệu điểm của sinh viên. Bài toán phân tích luật

kết hợp các môn học sẽ giúp dự đoán trước kế hoạch cần học cho sinh viên, để từ đó các tổ

chức giáo dục cũng như là mỗi sinh viên có được những định hướng phù hợp để hỗ trợ

sinh viên không rơi vào các tình huống khó khăn không mong đợi.

Tuy nhiên, mỗi tổ chức giáo dục lại có những quy chế học vụ cũng như là các

chương trình đào tạo khác nhau cho các ngành khác nhau. Đề tài này sẽ hướng tới việc giải

quyết bài toán phân tích mối liên quan các môn học dựa trên quy chế tín chỉ của Khoa

Khoa Học và Kỹ Thuật Máy Tính – Đại học Bách Khoa Tp.HCM.

Với hệ thống giáo dục dựa trên quy chế đăng ký học theo tín chỉ, dữ liệu thu thập

được chứa những đặc điểm riêng làm cho bài toán phân tích luật kết hợp gặp nhiều khó

khăn và thử thách. Bên cạnh đó, chương trình đào tạo thường xuyên được thay đổi để đáp

ứng được yêu cầu ngày càng cao về chất lượng giáo dục. Chính điều này làm cho dữ liệu

sinh viên giữa các khóa không có sự nhất quán.

Hiện nay, có rất nhiều giải thuật phân tích luật kết hợp khác nhau, và mỗi giải thuật

lại có những điểm mạnh cũng như là điểm yếu khác nhau. Do đó, mục đích của đề tài cũng

sẽ khảo sát một vài giải thuật khai phá luật kết hợp hiện hành để từ đó có thể xác định

được giải thuật nào phù hợp với bài toán phân tích luật kết hợp các môn học dựa vào kết

quả học tập.

KHOA KHOA HỌC VÀ KỸ THUẬT MÁY TÍNH 14

Page 15: KHAI PHÁ LUẬT KẾT HỢP CÁC MÔN HỌC CỦA SINH VIÊN

KHAI PHÁ LUẬT KẾT HỢP CÁC MÔN HỌC CỦA SINH VIÊN

Ngoài ra, đề tài cũng hiện thực giải thuật khai phá luật kết hợp gia tăng được áp dụng

khi có dữ liệu gia tăng trong quá trình giáo dục. Công việc hiện thực giải thuật phải đảm

bảo được tính chính xác và hiệu suất của giải thuật cũng được chấp nhận trong phạm vi

cho phép.

Đề tài sẽ hiện thực một hệ thống cho phép tổ chức đào tạo có thể tạo nên các tập dữ

liệu thường xuyên và từ đó xây dựng các luật kết hợp từ những giải thuật đã khảo sát cùng

với các độ đo đã chọn. Hệ thống cũng cho phép lựa chọn các tập dữ liệu huấn luyện khác

nhau và thực hiện các khảo sát trên các tập này để có cái nhìn khái quát về quá trình học

tập của các sinh viên trong tập dữ liệu. Một chức năng quan trọng của website là cho phép

dự đoán các môn học cần thiết trong các học kỳ tiếp theo của các sinh viên với các bộ phân

tích luật kết hợp đã xây dựng trước đó.

1.2 Mục tiêu

Với các yêu cầu đã đặt ra ở phần 1.1, đề tài sẽ tập trung vào các mục tiêu sau:

Khảo sát các giải thuật khai phá luật kết hợp hiện đang có: Apriori, FP-

Growth và FUFP-tree maintenance algorithm.

Khảo sát tập dữ liệu học tập của sinh viên Khoa Khoa Học và Kỹ Thuật Máy

tính và chuẩn bị dữ liệu cho bài toán phân tích luật kết hợp các môn học dựa

vào kết quả học tập.

Thực hiện phân tích sinh viên với các giải thuật đã khảo sát và tập dữ liệu đã

chuẩn bị.

Xây dựng hệ thống cho phép thực hiện khảo sát dữ liệu, xây dựng các kết quả

khai phá tập dữ liệu sinh viên, cũng như việc xây dựng các chức năng hỗ trợ

ra quyết định cho người dùng trong học tập. Ngoài ra hệ thống cũng hỗ trợ

thêm nhiều chức năng khác để giúp sinh viên có thể xem được những thông

tin liên quan trong học tập.

1.3 Phạm vi

Đề tài sử dụng dữ liệu điểm số của sinh viên Khoa KHKT Máy Tính từ học kỳ 1

năm 2005 đến học kỳ 1năm 2009.

Giải thuật :

Giải thuật Apriori và FP-Growth : nhóm sử dụng trực tiếp các hàm của bộ

thư viện weka.

Giải thuật FUFP : nhóm tự hiện thực trên nền tảng của bộ thư viện weka.

KHOA KHOA HỌC VÀ KỸ THUẬT MÁY TÍNH 15

Page 16: KHAI PHÁ LUẬT KẾT HỢP CÁC MÔN HỌC CỦA SINH VIÊN

KHAI PHÁ LUẬT KẾT HỢP CÁC MÔN HỌC CỦA SINH VIÊN

Chương 2: Khảo sát các giải thuật khai phá

Trong lĩnh vực Data Mining, mục đích của luật kết hợp (Association Rule - AR) là

tìm ra các mối quan hệ kết hợp(association) hay tương quan(correlation) giữa các đối

tượng trong khối lượng lớn dữ liệu. Những luật kết hợp này có dạng X =>Y.

Trong bài toán phân tích giỏ thị trường, luật kết hợp X =>Y có thể được hiểu rằng

những người mua các mặt hàng trong tập X cũng thường mua các mặt hàng trong tập Y. X

và Y gọi là itemset. Ví dụ, nếu X = {Apple, Banana} và Y = {Cherry, Durian} và ta có

luật kết hợp X =>Y thì chúng ta có thể nói rằng những người mua Apple và Banana thì

cũng thường mua Cherry và Durian.

Theo quan điểm thống kê, X được xem là biến độc lập (Independent variable) còn Y

được xem là biến phụ thuộc (Dependent variable)

Để thu được các luật kết hợp, ta thường áp dụng 2 tiêu chí: minimum support

(min_sup) và  minimum confidence (min_conf). Các luật thỏa mãn có support và

confidence thỏa mãn (lớn hơn hoặc bằng)  cả Minimum support và Minimum

confidence gọi là các luật mạnh (Strong Rule). Minimum support và Minimum

confidence gọi là các giá trị ngưỡng (threshold) và phải được xác định trước khi sinh các

luật kết hợp.

2.1 Giới thiệu weka

2.1.1 Giới thiệu

Phần mềm WEKA được xây dựng bằng ngôn ngữ Java, cấu trúc gồm hơn 600 lớp, tổ

chức thành 10 packages.[5, 6, 7, 8]

Các chức năng chính của phần mềm:

Khảo sát dữ liệu: tiền xử lí dữ liệu, phân lớp, gom nhóm dữ liệu, và khai thác

luật kết hợp.

Thực nghiệm mô hình: cung cấp phương tiện để kiểm chứng, đánh giá các

mô hình học.

Biểu diễn trực quan dữ liệu bằng nhiều dạng đồ thị khác nhau

Xử lý dữ liệu trong weka

Dữ liệu có thể được nhập vào từ một tập tin có khuôn dạng: arff, csv, ...

Dữ liệu cũng có thể được đọc vào từ một địa chỉ URL, hoặc từ một CSDL

thông qua JDBC.

Weka cung cấp nhiều bộ lọc dữ liệu gọi là filters

Rời rạc hóa (Discretization)

KHOA KHOA HỌC VÀ KỸ THUẬT MÁY TÍNH 16

Page 17: KHAI PHÁ LUẬT KẾT HỢP CÁC MÔN HỌC CỦA SINH VIÊN

KHAI PHÁ LUẬT KẾT HỢP CÁC MÔN HỌC CỦA SINH VIÊN

Chuẩn hóa (Normalization)

Lấy mẫu (Re-sampling)

Lựa chọn thuộc tính (Attribute selection)

Thay thế giá trị thiếu (Replace MissingValues)

............

2.1.2 Các giải thuật khai phá luật kết hợp được hỗ trợ trong weka

Apriori

FP-Growth

Filtered Associator

Generalized Sequence Patterns

Hotspot

Tertius

Do yêu cầu của đề tài, nên nhóm chỉ sử dụng lại và cải tiến các giải thuật Apriori và

FP-Growth.

2.2 Giải thuật Apriori

2.2.1 Chi tiết giải thuật

Ý tưởng:

- Tìm tất cả frequent itemsets:

k-itemset (itemsets gồm k items) được dùng để tìm (k+1) itemset.  Đầu tiên tìm 1-itemset (ký hiệu L1). L1 được dùng để tìm L2 (2-itemsets). L2 được

dùng để tìm L3 (3-itemset) và tiếp tục cho đến khi không có k-itemset được tìm thấy.- Từ frequent itemsets sinh ra các luật kết hợp mạnh (các luật kết hợp thỏa mãn 2

tham số min_sup và min_conf)

Input: cơ sở dữ liệu D ,min_sup

Output: các tập mẫu thường xuyên trong D.

Giải thuật:

Li : các tập thường xuyên i phần tử ( frequent i-itemsets)

Ci : các tập dự tuyển i phần tử.

1.Tìm L1 từ tập dữ liệu D.

2.Thực hiện vòng lặp sau :

Sử dụng hàm apriori-gen để xây dựng Ck+1 từ Lk .

Tính độ hỗ trợ của mỗi phần tử trong Ck+1 (*).

Lk+1 = { c thuộc Ck+1 | độ hỗ trợ của c >= min_sup }

KHOA KHOA HỌC VÀ KỸ THUẬT MÁY TÍNH 17

Page 18: KHAI PHÁ LUẬT KẾT HỢP CÁC MÔN HỌC CỦA SINH VIÊN

KHAI PHÁ LUẬT KẾT HỢP CÁC MÔN HỌC CỦA SINH VIÊN

3.Các tập Li chính là các tập cần tìm.

Hàm apriori-gen :

Sử dụng phép hợp để tạo Ck+1 từ Lk

Loại bỏ các tập trong Ck+1 chứa các tập con k-phần tử không thuộc Lk.

Giải thuật Apriori :

Thực hiện (*) bằng cách duyệt qua D

Giải thuật Apriori TID:

Thực hiện (*) bằng cách duyệt qua :

Mỗi phần tử trong có dạng <TID, { Xk } >

tương ứng với cơ sở dữ liệu D

với k > 1 được xây dựng như sau: thành phần của tương ứng với giao dịch

t là <t.TID,{ c thuộc Ck | c được chứa trong t}>

So sánh Aprori và AprioriTID :

Qua thực nghiệm người ta thấy rằng : trong những lần duyệt đầu tiên thì Aprori

nhanh hơn AprioriTID , nhưng càng về sau thì AprioriTID lại nhanh hơn.Nguyên nhân là

do :

Cả 2 đều sinh ra tập dữ tuyển như nhau

Apriori thực hiện việc kiểm tra với CSDL

AprioriTID thực hiện việc kiểm tra với tập .

Càng về sau kích thước của tập Ck càng nhỏ so với CSDL. Khi tập Ck đủ nhỏ để vừa

vẹn trong bộ nhớ ,thì thậm chí không còn phải chịu chi phí cho việc ghi nó trên đĩa.

Giải thuật AprioriHybrid:

Dùng Apriori trong những lần duyệt đầu

Chuyển qua AprioriTID khi thấy rằng tập vừa vẹn trong bộ nhớ.

2.2.2 Khuyết điểm

Tạo ra nhiều tập dự tuyển:

104 frequent 1-itemsets nhiều hơn 107 (≈104(104-1)/2) 2-itemsets dự tuyển

Một k-itemset cần ít nhất 2k -1 itemsets dự tuyển trước đó.

Kiểm tra tập dữ liệu nhiều lần:

Chi phí lớn khi kích thước các itemsets tăng lên dần.

Nếu k-itemsets được khám phá thì cần kiểm tra tập dữ liệu k+1 lần.

KHOA KHOA HỌC VÀ KỸ THUẬT MÁY TÍNH 18

Page 19: KHAI PHÁ LUẬT KẾT HỢP CÁC MÔN HỌC CỦA SINH VIÊN

KHAI PHÁ LUẬT KẾT HỢP CÁC MÔN HỌC CỦA SINH VIÊN

2.2.3 Cải tiến giải thuật Apriori

Giải thuật Apriori có thể được cải tiến như sau:

Kỹ thuật dựa trên bảng băm (hash-based technique): Một k-itemset ứng với hashing

bucket count nhỏ hơn minimum support threshold không là một frequent itemset.

Giảm giao dịch (transaction reduction): một giao dịch không chứa frequent k-itemset

nào thì không cần được kiểm tra ở các lần sau( k+1- itemset).

Phân hoạch (partitioning) : một itemset phải frequent trong ít nhất một phân hoạch

thì mới có thể frequent trong toàn bộ tập dữ liệu.

Lấy mẫu (sampling): Khai phá chỉ tập con dữ liệu cho trước với một trị support

threshold nhỏ hơn và cần một phương pháp để xác định tính toàn diện(completeness).

Đếm itemset động (dynamic itemset counting): Chỉ thêm các itemsets dự tuyển khi

tất cả các tập con của chúng được dự đoán là frequent.

2.3 Giải thuật FPGrowth

2.3.1 Ý tưởng giải thuật

Mở rộng của cấu trúc cây prefix (prefix tree), được gọi là cây mẫu phổ biến (frequent

pattern tree hoặc gọi tắt là FP- tree) dùng để nén dữ liệu thích hợp.

Khai phá phát triển (growth) từng đoạn dựa trên Fp-tree.

Kỹ thuật tìm kiếm được dùng ở đây là dựa vào sự phân chia và chế ngự (divide-and-

conquer method) để phân rã nhiệm vụ khai phá thành tập các nhiệm vụ nhỏ hơn với giới

hạn các mẫu trong các CSDL nhằm thu gọn không gian tìm kiếm.

2.3.2 Các bước giải thuật

Đầu tiên, thuật toán duyệt CSDL lần thứ nhất để tính độ hỗ trợ của các tập mục (đếm

số lần xuất hiện của từng mục).

Tiếp đến, những mục không đủ độ hỗ trợ bị loại. Các mục còn lại được sắp theo thứ

tự giảm dần của độ hỗ trợ (cũng tức là giảm dần theo số lần xuất hiện trong CSDL), ta

nhận được danh sách L các mục đã sắp xếp.

Duyệt CSDL lần thứ 2, với mỗi tác vụ t, loại các mục không đủ độ hỗ trợ, các mục

còn lại theo thứ tự giống như xuất hiện trong L (tức là thứ tự giảm dần theo độ hỗ trợ)

được đưa vào cây FP-tree.

Phần tiếp theo thuật toán khai phá tìm các mẫu phổ biến trên cây FP-tree đã xây

dựng mà không cần duyệt lại CSDL nữa.

2.3.3 Giải thuật FP-Tree

Gốc của cây nhãn null, các đường đi trên cây biểu diễn item prefixs.

KHOA KHOA HỌC VÀ KỸ THUẬT MÁY TÍNH 19

Page 20: KHAI PHÁ LUẬT KẾT HỢP CÁC MÔN HỌC CỦA SINH VIÊN

KHAI PHÁ LUẬT KẾT HỢP CÁC MÔN HỌC CỦA SINH VIÊN

Các liên kết trên cây: liên kết các mục xuất hiện có tên giống nhau.

Mỗi nút, (trừ nút gốc) bao gồm: Tên mục (item identifier), Count: số đếm.

Node link: liên kết đến nút tiếp theo trên cây có cùng tên

Bảng các đầu mục phổ biến (header table): bắt đầu cho các liên kết

Thủ tục thêm một dãy các mục (đã sắp giảm dần theo độ hỗ trợ) của một tác vụ vào

cây thực hiện đệ quy như sau:

Procedure insert_tree(string [p|P], tree có gốc T)

(ở đó p là mục thứ nhất của dãy các mục và P là phần còn lại. Trong lần duyệt thứ

hai, với mỗi tác vụ t, gọi thủ tục insert_tree(t’,T), ở đó t’ là nội dung của tác vụ t sau khi đã

bỏ các mục không phổ biến và sắp theo thứ tự giảm dần của độ hỗ trợ, T là gốc của cây) :

1. Procedure insert_tree(string[p|P],tree có gốc T)

2. Nếu T có nút con N mà N.itemname=p thì N.count++

3. ngược lại

4. Tạo một nút mới N;

5. N.itemname:=p;N.count:=1

6. Thay đổi nút liên kết cho p bao gồm N;

7. Nếu p khác rỗng

7.1 gọi thủ tục insert_tree(P,N);

2.3.4 Giải thuật FP-Growth

Sau khi xây dựng xong FP-tree cho CSDL, việc khai phá tìm các mẫu phổ biến chỉ

thực

hiện trên cây FP-tree mà không cần duyệt CSDL nữa.

Thuật toán FP-growth như sau:

Bắt đầu từ dưới lên của bảng header và cây, với mỗi mục A: dùng n liên kết

duỵêt qua tất cả các nút trên cây mà xuất hiện A, với mỗi nút mà n.itemname=A,

xác định các tập phổ biến có xuất hiện A, thực hiện bằng cách chỉ cần tìm các

đường đi từ gốc tới n.

Input: cây FP-Tree của CSDL D, ngưỡng min_sup

Output: Một tập đầy đủ các mẫu phổ biến F

Procedure FP-growth(Tree,)

Nếu cây Tree chứa một đường đơn P thì

Với tất cả các tổ hợp (ký hiệu ) của các nút trong đường đi P

Sinh ra mẫu với support=độ hỗ trợ nhỏ nhất của các nút trong ;

KHOA KHOA HỌC VÀ KỸ THUẬT MÁY TÍNH 20

Page 21: KHAI PHÁ LUẬT KẾT HỢP CÁC MÔN HỌC CỦA SINH VIÊN

KHAI PHÁ LUẬT KẾT HỢP CÁC MÔN HỌC CỦA SINH VIÊN

Ngược lại: với mỗi mục ai trong header table của Tree{

Sinh ra := ai với support=ai.count;

Xây dựng cơ sở mẫu phụ thuộc của và sau đó FP-tree phụ thuộc của là

Tree;

Nếu Tree thì gọi FP-growth(Tree,) }

2.3.5 Đánh giá giải thuật

Độ phức tạp về thời gian:

Chỉ duyệt CSDL 2 lần

Thời gian xây dựng cây là O(n), ở đó n là số các tác vụ của CSDL. Tức là

tuyến tính với số các tác vụ.

Độ phức tạp về không gian:

O(n), n là số các tác vụ của CSDL

Độ cao của cây được giới hạn bởi kích thước của tác vụ lớn nhất

Đặc điểm

Không tạo tập itemsets dự tuyển

Sử dụng cấu trúc dữ liệu nén dữ liệu từ tập dữ liệu

Giảm chi phí kiểm tra tập dữ liệu

Chi phí chủ yếu là đếm và xây dựng cây FP-tree lúc đầu

Hiệu quả và co giãn tốt cho việc khám phá các frequent itemsets dài lẫn ngắn

2.4 Giải thuật khai phá luật kết hợp gia tăng

2.4.1 Các trường hợp

Hình 2.1 trường hợp khi dữ liệu mới được thêm vào dữ liệu cũ [1]

KHOA KHOA HỌC VÀ KỸ THUẬT MÁY TÍNH 21

Page 22: KHAI PHÁ LUẬT KẾT HỢP CÁC MÔN HỌC CỦA SINH VIÊN

KHAI PHÁ LUẬT KẾT HỢP CÁC MÔN HỌC CỦA SINH VIÊN

Hình 2.2 Kết quả 4 trường hợp [1]

2.4.2 Các bước giải thuật

Input:

Tập dữ liệu cũ ,bảng header và FUFP-tree tương ứng của nó

Ngưỡng hỗ trợ sup

Tập giao dịch mới.

Output:

FUFP-tree mới.

Các bước:

Bước 1: Tính số lần xuất hiện (count) của các item trong tập giao dịch mới.

Bước 2: Xác định các large item ( count >= t*sup) và small item trong tập giao dịch

mới

Bước 3: Thực hiện các bước sau đối với các item là large-item trong cơ sở dữ liệu

cũ và mới.

a. SU(I) = SD(I) + ST(I)

b. Cập nhập count của I trong Header-Table thành SU(I)

c. Put I vào tập các Insert_items.

Bước 4: Thực hiên các bước sau đối với các item là small-item trong tập giao dịch

mới nhưng là large-item trong cơ sở dữ liệu cũ.

a. SU(I) = SD(I) + ST(I)

b. Nếu SU(I) >= (d+t)*sup thì I là large-item trong cả tập dữ liệu mới:

a. Cập nhập count của I trong Header-Table thành SU(I)

b. Add I vào tập Insert_items

c. Nếu SU(I) < (d+t)*sup thì I là small-item trong cả tập dữ liệu mới và

remove I khỏi Header-table và FUFP-tree

Bước 5: Thực hiên các bước sau đối với các item là large-item trong tập giao dịch

mới nhưng là small-item trong cơ sở dữ liệu cũ.

a. Duyệt cơ sở dữ liệu cũ để tính SD(I)

KHOA KHOA HỌC VÀ KỸ THUẬT MÁY TÍNH 22

Page 23: KHAI PHÁ LUẬT KẾT HỢP CÁC MÔN HỌC CỦA SINH VIÊN

KHAI PHÁ LUẬT KẾT HỢP CÁC MÔN HỌC CỦA SINH VIÊN

b. SU(I) = SD(I) + ST(I)

c. Nếu SU(I) >= (d+t)*sup thì I là large-item trong cả tập dữ liệu mới:

a. Add I vào Insert_items và Rescan_items

b. Put các giao dịch trong cơ sở dữ liệu cũ chứa I vào

Rescan_Transactions

Bước 6: Sắp xếp các item trong Rescan_items

Bước 7:Insert các item trong Rescan_items vào cuối của Header_table theo thứ tự

đã sắp xếp

Bước 8: Chạy lại các giao dịch trong Rescan_Transactions như giải thuật FP-

Growth,chỉ xét các item thuộc tập Rescan_Items

Bước 9: Chạy lại các giao dịch mới như giải thuật FP-Growth, chỉ xét các item thuộc

tập Insert_Items

2.4.3 So sánh

Kết quả khảo sát từ [1] gồm 400000 tập giao dịch và có 5000 tập giao dịch mới được

thêm vào. Minimum support là 4%. Kết quả khảo sát(hình 2.3 và hình 2.4) cho thấy rằng

thời gian thực thi của giải thuật FUFP-tree nhỏ hơn nhiều so với giải thuật FP-growth, so

sánh về số lượng nodes được tạo ra thì cả hai giải thuật tạo ra gần như là bằng nhau.

Hình 2.3 So sánh thời gian thực thi [1]

KHOA KHOA HỌC VÀ KỸ THUẬT MÁY TÍNH 23

Page 24: KHAI PHÁ LUẬT KẾT HỢP CÁC MÔN HỌC CỦA SINH VIÊN

KHAI PHÁ LUẬT KẾT HỢP CÁC MÔN HỌC CỦA SINH VIÊN

Hình 2.4 So sánh về số lượng nodes [1]

2.5 Các độ đo được sử dụng [13]

2.5.1 Các độ đo trong weka

lowerBoundMinSupport: Cận dưới của minimum support.

metricType: Có 4 loại metricType là Confidence, Lift , Leverage và Conviction. 

Minimum metric score: Chỉ quan tâm đến các luật có metric score cao hơn giá trị

này.

numRules: Số luật muốn tìm (các luật sẽ được sắp xếp theo thứ tự giảm dần của

metric score.

significanceLevel: Mức ý nghĩa (chỉ dùng khi metricType là confidence).

upperBoundMinSupport: Cận trên của minimum support (bắt đầu lặp lại việc

giảm minimum support từ upperBoundMinSupport đến lowerBoundMinSupport).

2.5.2 Độ hỗ trợ

Độ hỗ trợ (Support) của luật kết hợp X =>Y là tần suất của giao dịch chứa tất cả các

items trong cả hai tập X và Y. Ví dụ, support của luật X =>Y là 5% có nghĩa là  5% các

giao dịch X và Y được mua cùng nhau.

Công thức để tính support của luật X =>Y như sau:

Trong đó: 

N là tổng số giao dịch.

n(X U Y) là số giao dịch chứa X và Y

2.5.3 Độ tin cậy

KHOA KHOA HỌC VÀ KỸ THUẬT MÁY TÍNH 24

Page 25: KHAI PHÁ LUẬT KẾT HỢP CÁC MÔN HỌC CỦA SINH VIÊN

KHAI PHÁ LUẬT KẾT HỢP CÁC MÔN HỌC CỦA SINH VIÊN

Độ tin cậy (Confidence) của luật kết hợp X =>Y là xác suất xảy ra Y khi đã biết X.

Ví dụ độ tin cậy của luật kết hợp {Apple} =>Banana} là 80% có nghĩa là 80% khách hàng

mua Apple cũng mua Banana.

Công thức để tính độ tin cậy của luật kết hợp X =>là xác suất có điều kiện Y khi đã

biết X như sau :

Trong đó: 

n(X) là số giao dịch chứa X

Những luật mà có confidence và support lớn hơn ngưỡng tối thiểu cho phép của nó

gọi là luật kết hợp mạnh.

2.5.4 Tham số metricType

Là các thang đo dùng để đánh giá các mô hình (thuật toán) phát hiện luật kết hợp.

Có 4 thang đo thường được sử dụng là Confidence, Lift , Leverage và Conviction.

Trong đó thang đo Leverage ít được sử dụng và có thể dùng lift để phản ánh ý nghĩa của

thang đo Leverage.

Giả sử ta có Transaction Database gồm 5 giao dịch và 4 items như sau :

ID milk bread butter Beer

1 1 1 0 0

2 0 0 1 0

3 0 0 0 1

4 1 1 1 0

5 0 1 0 0

KHOA KHOA HỌC VÀ KỸ THUẬT MÁY TÍNH 25

Page 26: KHAI PHÁ LUẬT KẾT HỢP CÁC MÔN HỌC CỦA SINH VIÊN

KHAI PHÁ LUẬT KẾT HỢP CÁC MÔN HỌC CỦA SINH VIÊN

Bảng 2.1 Ví dụ minh họa các độ đo

Confidence  (độ tin cậy): là tỷ lệ của số giao dịch có chứa YX với số giao dịch

có chứa X. Đơn vị tính %.

Confidence  của luật kết hợp X=>Y được định nghĩa như sau:

Với cơ sở dữ liệu giao dịch trên ta có confidence của luật kết hợp{milk, bread} =>

{butter} là 0.2/0.4=0.5 . Điều này có nghĩa là 50% giao dịch mua milk và bread thì mua

butter.

Lift: là một độ đo về sự tương quan giữa các tập thường xuyên với nhau. Giả sử ta có

2 tập thường xuyên X và Y. Sự xuất hiện của tập thường xuyên X là độc lập với sự xuất

hiện của tập thường xuyên Y nếu supp(X U Y) = supp(X).supp(Y). Ngược lại thì tập

thường xuyên X và Y là phụ thuộc và tương quan lẫn nhau.

Lift của luật kết hợp X=>Y là tỷ số giữa giao dịch hỗ trợ X và Y với tích của các

giao dịch hỗ trợ X và các giao dịch hỗ trợ Y.

Giá trị lift(X==>Y) nằm trong đoạn [0,+∞].

Nếu lift(X==>Y) nhỏ hơn 1 thì sự xuất hiện của X là tương quan nghịch so với sự

xuất hiện của Y. Ngược lại, lift(X==>Y) lớn hơn 1 thì sự xuất hiện của X là tương quan

thuận so với sự xuất hiện của Y.

Nếu lift(X==>Y) bằng 1 thì sự xuất hiện của X và Y là độc lập với nhau.

Với cơ sở dữ liệu về giao dịch đã cho, ta có lift của luật kết hợp{milk, bread} =>

{butter}  là  0.2/(0.4 x 0.4) =1.25. Điều này có nghĩa là {milk, bread} tương quan thuận

với {butter}.

Leverage: của luật kết hợp X=>Y được định nghĩa như sau:

Leverage(X =>Y) = supp(X U Y ) - supp(X).supp(Y).

Giá trị leverage(X =>Y) nằm trong khoảng [−0.25, 0.25]

Ý nghĩa leverage tương tự lift.

Conviction: của luật kết hợp X=>Y cho biết tần suất mong muốn X xảy ra mà không

cần Y (cũng có thể xem Conviction cho biết tần suất của luật sinh ra các dự đoán không

chính xác).

Conviction của luật kết hợp X=>Y được định nghĩa như sau:

KHOA KHOA HỌC VÀ KỸ THUẬT MÁY TÍNH 26

Page 27: KHAI PHÁ LUẬT KẾT HỢP CÁC MÔN HỌC CỦA SINH VIÊN

KHAI PHÁ LUẬT KẾT HỢP CÁC MÔN HỌC CỦA SINH VIÊN

Với cơ sở dữ liệu giao dịch trên ta có conviction của luật kết hợp{milk, bread} =>

{butter} là (1-0.4)/(1-0.5)= 1.2

Chẳng hạn, Conviction của luật kết hợp {milk, bread} => {butter} là 1.2 có nghĩa

rằng luật này có thể sinh ra các dự đoán không chính xác khoảng 20%.

2.5.5 Độ đo cosine

Cosine là một cách khác để đo độ tương quan giữa tiền đề và hậu quả khi chúng

được xem như là hai vec tơ nhị phân. Giá trị 1 cho thấy rằng các vec tơ trùng nhau. Giá trị

0 chỉ xảy ra khi tiền đề và hậu quả không có sự trùng lặp nhau. Dãy giá trị này nằm trong

đoạn[0, 1].

Cosine được định nghĩa như sau:

Phép đo cosine có thể được xem là phép đo nâng cao của phép đo lift. Bằng việc lấy

căn bậc hai các xác suất của A và B, giá trị cosine chỉ bị ảnh hưởng bởi các độ hỗ trợ A, B

và A U B mà không bị ảnh hưởng bởi tổng số giao dịch.

2.5.6 Sử dụng các tham số trong đề tài:

Trong đề tài này, nhóm đã sử dụng các độ đo và phiên bản phần mềm như sau:

Độ hỗ trợ: Dùng trong quá trình tìm tập thường xuyên.

Độ tin cậy: Dùng trong quá trình tìm luật kết hợp.

Độ đo cosine và lift: Hỗ trợ tìm các tập luật chính xác hơn.

Phiên bản phần mềm và bộ thư viện Weka là 3.6.8.

KHOA KHOA HỌC VÀ KỸ THUẬT MÁY TÍNH 27

Page 28: KHAI PHÁ LUẬT KẾT HỢP CÁC MÔN HỌC CỦA SINH VIÊN

KHAI PHÁ LUẬT KẾT HỢP CÁC MÔN HỌC CỦA SINH VIÊN

Chương 3: Thực hiện khai phá trên tập dữ liệu sinh viên

3.1 Khảo sát tập dữ liệu học tập sinh viên

Trong lĩnh vực khai phá dữ liệu nói chung và trong bài toán khai phá luật kết hợp nói

riêng, quá trình tiền xử lý dữ liệu đóng một vai trò vô cùng quan trọng. Một tập dữ liệu sau

khi đã được tiền xử lý với các kỹ thuật phù hợp như thu giảm dữ liệu, làm sạch dữ liệu,

chuẩn hóa, … thì sẽ cho kết quả khai phá tốt hơn so với một tập dữ liệu thô ban đầu. Bên

cạnh đó, mỗi giải thuật khai phá dữ liệu có những yêu cầu khác nhau về dữ liệu, ví dụ giải

thuật FP-Growth thì cần chuẩn hóa dữ liệu về dạng nhị phân, … Để việc khai phá dữ liệu

sinh viên đạt được độ chính xác cao, tập dữ liệu kết quả học tập cần được khảo sát để tìm

ra các vấn đề trong nó và từ đó áp dụng các kỹ thuật tiền xử lý khác nhau để giải quyết các

vấn đề đó.

Đối với hệ thống giáo dục dựa trên quy chế tín chỉ, sinh viên được chọn các môn học

một cách linh hoạt. Tại một thời điểm hay học kỳ nào đó, số lượng môn học cũng như các

môn học tích lũy của mỗi sinh viên là khác nhau, gây khó khăn cho việc khai phá dữ liệu.

Tuy việc đăng ký học của sinh viên là linh hoạt, nhưng mỗi sinh viên đều phải tuân theo

chương trình đào tạo của Khoa quy định. Do đó, để giải quyết vấn đề khác nhau giữa số

lượng môn học và các môn học, dữ liệu sẽ được canh theo chương trình đào tạo. Khi đó,

tập dữ liệu có dạng là một mảng hai chiều, trong đó, mỗi cột là một môn học có trong

chương trình đào tạo, mỗi hàng là dữ liệu về điểm của một sinh viên.

Toán 1 NMĐT HĐH CSDL … Tự chọn 1 Tự chọn 2 Kết quả

6.1 8.6 9.0 5.5 … 6.4 5.5 TN

7.5 9.5 6.7 8.9 … 9.1 CTN

… … … … … … … …

5.6 4.6 6.7 5.4 … 3.5 CC1

KHOA KHOA HỌC VÀ KỸ THUẬT MÁY TÍNH 28

Page 29: KHAI PHÁ LUẬT KẾT HỢP CÁC MÔN HỌC CỦA SINH VIÊN

KHAI PHÁ LUẬT KẾT HỢP CÁC MÔN HỌC CỦA SINH VIÊN

Bảng 3.1 Tập dữ liệu khi canh theo chương trình đào tạo

Khi đã canh theo chương trình đào tạo tất cả mọi sinh viên đều có số lượng môn học

là như nhau, vấn đề còn lại là điền điểm số cho mỗi môn học của sinh viên. Tuy nhiên, các

môn mà sinh viên đã học là không giống nhau. Ví dụ tại một thời điểm, sinh viên A đã

hoàn thành môn Cơ sở dữ liệu nên có điểm cho môn học này, trong khi sinh viên B chưa

học môn này. Chính sự học lệch giữa các sinh viên làm cho tập dữ liệu không được nhất

quán. Để giải quyết sự không nhất quán này, những môn nào mà sinh viên chưa học sẽ

được gán giá trị là ‘NULL’ trong cơ sở dữ liệu, những môn nào đã được học rồi sẽ có điểm

số chính là điểm tổng kết của môn học đó. Cho một môn học sinh viên có thể đăng ký học

nhiều lần. Do đó, ta chỉ lấy điểm cao nhất để dùng trong quá trình khai phá, dù đó là điểm

đậu hay rớt. Khi chuẩn bị dữ liệu cho từng giải thuật khai phá cụ thể, giá trị ‘NULL’ sẽ

được gán những giá trị cụ thể.

Toán 1 NMĐT HĐH CSDL … Tự chọn 1 Tự chọn 2 Kết quả

6.1 8.6 9.0 5.5 … 6.4 4.5 CTN

7.5 9.5 6.7 8.9 … NULL 9.1 CTN

… … … … … … … …

5.6 4.6 6.7 5.4 … 3.5 NULL CC1

KHOA KHOA HỌC VÀ KỸ THUẬT MÁY TÍNH 29

Page 30: KHAI PHÁ LUẬT KẾT HỢP CÁC MÔN HỌC CỦA SINH VIÊN

KHAI PHÁ LUẬT KẾT HỢP CÁC MÔN HỌC CỦA SINH VIÊN

Bảng 3.2 Tập dữ liệu sau khi xử lý việc học lệch giữa các sinh viên

Theo chương trình đào tạo, mỗi sinh viên phải hoàn thành năm môn tự chọn. Do các

môn tự chọn có sự tương đương nhau, nên khi một sinh viên không hoàn thành môn này

thì có thể hoặc học lại môn này ở học kỳ sau hoặc đăng ký một môn tự chọn khác. Vì vậy,

khi lấy điểm cho các môn tự chọn, ta sắp xếp các môn theo điểm và lấy năm môn khác

nhau có điểm cao nhất.

Dữ liệu dùng để huấn luyện được thu thập từ kết quả học tập của sinh viên của nhiều

khóa khác nhau, và chương trình đào tạo của mỗi khóa có thể không giống nhau, nên xảy

ra vấn đề không đồng nhất môn học giữa các khóa. Ví dụ môn học A được giảng dạy ở

khóa 2005 nhưng không có trong chương trình của khóa 2007. Để tạo sự đồng nhất trong

dữ liệu, ta tra bảng các môn học tương đương giữa các khóa để sắp xếp điểm của các môn

của khóa trước vào đúng cột điểm của môn tương đương với nó trong khóa sau.

Lúc này, tập dữ liệu tương đối đã đồng nhất và có thể dùng cho quá trình khai phá.

Tuy nhiên, mỗi giải thuật khai phá khác nhau cần chuẩn bị những loại dữ liệu khác nhau.

Đối với bài toán khai phá luật kết hợp trên dữ liệu học tập sinh viên đang khảo sát, các giải

thuật được sử dụng là Apriori, FP-Growth và giải thuật khai phá gia tăng(FUFP tree

maintenance).

Đối với các giải thuật khai phá luật kết hợp Apriori và FP-Growth, dữ liệu phải được

chuẩn hóa về dạng nhị phân trước khi được dùng để khai phá. Trong trường hợp này, dữ

liệu học tập của sinh viên được xử lý dựa vào điểm tổng kết của kết quả học tập. Ví dụ,

nếu khảo sát tập các môn học thường xuyên rớt thì cần xử lý những môn học có điểm tổng

kết >= 5.0 là đậu, còn điểm tổng kết mà < 5.0 thì được xử lý là rớt.

Xếp loại Thang điểm 10

Đậu điểm >= 5.0

Rớt điểm < 5.0

KHOA KHOA HỌC VÀ KỸ THUẬT MÁY TÍNH 30

Page 31: KHAI PHÁ LUẬT KẾT HỢP CÁC MÔN HỌC CỦA SINH VIÊN

KHAI PHÁ LUẬT KẾT HỢP CÁC MÔN HỌC CỦA SINH VIÊN

Bảng 3.3 Bảng xếp loại sinh viên theo điểm

Ngoài các điểm bình thường trong thang 10, phòng Đào Tạo còn quy định thêm các

điểm chữ (giá trị tương ứng lớn hơn 10) dùng trong các trường hợp đặc biệt, được gọi là

các điểm đặc biệt.

Điểm số Điểm chữ Ý nghĩa – tên điểm Ghi chú

11 F Cấm thi Tính như điểm 0

12 M Miễn thi Ghi chú tạm trong bảng điểm

13 F Vắng thi không phép Tính như điểm 0

14 I Vắng thi có phép Tính chưa tích lũy

15 Z Chưa nhận điểm Ghi chú tạm thời

16 X Miễn học Tích lũy, ghi trong mục bảo lưu và

không tính vào ĐTBHK

17 R Rút môn học Không tính điểm

18 H Hủy môn học Xóa hoàn toàn trong dữ liệu điểm

Bảng 3.4 Bảng các điểm đặc biệt

Cuối cùng sau khi xử lý các trường hợp của điểm số, ta sẽ sẽ quy đổi các điểm số của

sinh viên như sau:

KHOA KHOA HỌC VÀ KỸ THUẬT MÁY TÍNH 31

Page 32: KHAI PHÁ LUẬT KẾT HỢP CÁC MÔN HỌC CỦA SINH VIÊN

KHAI PHÁ LUẬT KẾT HỢP CÁC MÔN HỌC CỦA SINH VIÊN

Điểm số Điểm chữ Ý nghĩa – tên điểm Điểm sau khi đã quy đổi

>= 5 Đậu

< 5 Rớt

11 F Cấm thi Rớt

12 M Miễn thi Không xét

13 F Vắng thi không phép Rớt

14 I Vắng thi có phép Không xét

15 Z Chưa nhận điểm Ghi chú tạm thời

16 X Miễn học Không xét

17 R Rút môn học Không xét

18 H Hủy môn học Không xét

Bảng 3.5 Bảng các điểm đặc biệt

3.2 Thực hiện các giải thuật với tập dữ liệu sinh viên

3.2.1 Thực hiện giải thuật Ap riori

Giả sử ta có tập dữ liệu ban đầu như hình 3.5, mỗi hàng là một transaction, mỗi mã

số môn học là trong một transaction là một item. Ví dụ như trong transaction 1có các items

001021, 004008, 006039.

KHOA KHOA HỌC VÀ KỸ THUẬT MÁY TÍNH 32

Page 33: KHAI PHÁ LUẬT KẾT HỢP CÁC MÔN HỌC CỦA SINH VIÊN

KHAI PHÁ LUẬT KẾT HỢP CÁC MÔN HỌC CỦA SINH VIÊN

TID MSSV Items

1 50503660 001021,004008,006039

2 50503647 004008,005005,008001

3 50503636 004008,004009,006038

4 50503625 001021,004008,005005

5 50503600 001021,004009

6 50503591 004008,004009

7 50503566 001021,004009

8 50503562 001021,004008,004009,006039

9 50503543 001021,004008,004009

10 50503527 007005,007014

Bảng 3.5 Bảng dữ liệu ban đầu cho giải thuật Apriori

Kết quả chạy giải thuật của tập dữ liệu trên với độ hỗ trợ bằng 2 như sau:

Xây dựng L1

ItemSets Count

004008 8

001021 6

004009 6

006039 2

005005 2

Bảng 3.6 Bảng L1 chạy ví dụ của giải thuật Apriori

Xây dựng C2 từ L1

KHOA KHOA HỌC VÀ KỸ THUẬT MÁY TÍNH 33

Page 34: KHAI PHÁ LUẬT KẾT HỢP CÁC MÔN HỌC CỦA SINH VIÊN

KHAI PHÁ LUẬT KẾT HỢP CÁC MÔN HỌC CỦA SINH VIÊN

ItemSets Count

{004008,001021} 4

{004008,004009} 4

{004008,006039} 2

{004008,005005} 2

{001021,004009} 4

{001021,006039} 2

Bảng 3.7 Bảng C2 chạy ví dụ của giải thuật Apriori

Xây dựng L2

ItemSets Count

{004008,001021} 4

{004008,004009} 4

{004008,006039} 2

{004008,005005} 2

{001021,004009} 4

{001021,006039} 2

Bảng 3.8 Bảng L2 chạy ví dụ của giải thuật Apriori

Xậy dựng C3 từ L2

ItemSets Count

{004008,001021,004009} 2

{004008,001021,006039} 2

Bảng 3.9 Bảng C3 chạy ví dụ của giải thuật Apriori

Xây dựng L3

ItemSets Count

{004008,001021,004009} 2

{004008,001021,006039} 2

KHOA KHOA HỌC VÀ KỸ THUẬT MÁY TÍNH 34

Page 35: KHAI PHÁ LUẬT KẾT HỢP CÁC MÔN HỌC CỦA SINH VIÊN

KHAI PHÁ LUẬT KẾT HỢP CÁC MÔN HỌC CỦA SINH VIÊN

Bảng 3.10 Bảng L3 chạy ví dụ của giải thuật Apriori

Như vậy, sau khi chạy xong giải thuật ta thu được hai tập thường xuyên là:

{004008,001021,004009} và {004008,001021,006039}. Cả hai tập thường xuyên này có

độ hỗ trợ là 2 bằng với độ hỗ trợ được giả thiết đưa ra ban đầu.

3.2.2 Thực hiện giải thuật FP-Growth

Với tập dữ liệu như giải thuật Apriori ở bảng 3.5 và độ hỗ trợ là 2, ta xây dựng được

header table và cây như sau:

Hình 3.1 Cây FP-Tree khi thực hiện giải thuật FP-Growth

Khám phá các mẫu thường xuyên từ cây FP-Tree đã xây dựng

Item Conditional pattern base Conditional FP-Tree Frequent patterns generated

00102

1

{{004008: 4}} {004008: 4} {004008, 001021: 4}

00400

9

{{001021,004008:2}{004008:2}

{001021:2}}

{004008:4,001021:2}

{001021:2}

{004008,004009:4},{001021,004009:4},

{004008,001021,004009:2}

00500

5

{{001021,004008:1}{004008:1}} {004008:2} {004008, 005005: 2}

00603

9

{{001021, 004008:1}

{001021, 004008, 004009: 1}}

{001021, 004008: 2} {001021, 006039: 2}, {004008,

006039:2},{001021,004008, 006039: 2}

KHOA KHOA HỌC VÀ KỸ THUẬT MÁY TÍNH 35

Page 36: KHAI PHÁ LUẬT KẾT HỢP CÁC MÔN HỌC CỦA SINH VIÊN

KHAI PHÁ LUẬT KẾT HỢP CÁC MÔN HỌC CỦA SINH VIÊN

Bảng 3.11 Bảng kết quả chạy ví dụ của giải thuật FP-Growth

3.2.3 Thực hiện giải thuật khai phá gia tăng(FUFP tree maintenance)

Với tập dữ liệu ban đầu như giải thuật Apriori ở bảng 3.5, ta xây dựng được header

table và cây như giải thuật FP-Growth ở hình 3.1 trên. Giả sử có tập giao dịch mới được

thêm vào như được trình bày ở bảng 3.12.

KHOA KHOA HỌC VÀ KỸ THUẬT MÁY TÍNH 36

Page 37: KHAI PHÁ LUẬT KẾT HỢP CÁC MÔN HỌC CỦA SINH VIÊN

KHAI PHÁ LUẬT KẾT HỢP CÁC MÔN HỌC CỦA SINH VIÊN

No. MSSV items

1 50503636 001021, 004008

2 50503600 004008, 008001, 004009

3 50503591 001021, 006038

4 50503583 004008, 006038, 005005

5 50503562 001021, 006038, 007014

6 50503762 001021, 006039

Bảng 3.12 Bảng tập dữ liệu mới khi khai phá gia tăng

Kết quả của header table và cây sau khi thực hiện khai phá gia tăng

Hình 3.2 Header table và cây khi thực hiện giải thuật gia tăng

Khám phá các mẫu thường xuyên từ cây FP-Tree đã xây dựng

Item Conditional pattern base Conditional FP-Tree Frequent patterns generated

00102

1

{{004008: 5}} {004008: 5} {004008, 001021: 5}

00400

9

{{004008:3}{001021, 004008:2}

{001021:2}}

{004008:5}

{001021:4}

{004008,004009:5},{001021,004009:4},

00603

8

{{004009, 004008: 1}

{004008: 1} {001021: 2}}

KHOA KHOA HỌC VÀ KỸ THUẬT MÁY TÍNH 37

Page 38: KHAI PHÁ LUẬT KẾT HỢP CÁC MÔN HỌC CỦA SINH VIÊN

KHAI PHÁ LUẬT KẾT HỢP CÁC MÔN HỌC CỦA SINH VIÊN

Bảng 3.13 Bảng kết quả chạy ví dụ của giải thuật khai phá gia tăng

3.3 Thực hiện các giải thuật với tập dữ liệu thực tế của sinh viên

3.3.1 Kết quả thực hiện giải thuật Apriori từ dữ liệu học kỳ 1 khóa 2006 với min

support là 0.05

Các thông số Giải thuật Apriori

Độ hỗ trợ 0.04999999999999999

Độ tin cậy 0.9

Số tập giao dịch 342

Số thuộc tính 273

Số luật tạo ra 28

Số item tối đa trong tập thường

xuyên4

Số tập thường xuyên có 1 item 10

Số tập thường xuyên có 2 item 18

Số tập thường xuyên có 3 item 10

Số tập thường xuyên có 4 item 1

Thời gian chạy 231ms

KHOA KHOA HỌC VÀ KỸ THUẬT MÁY TÍNH 38

Page 39: KHAI PHÁ LUẬT KẾT HỢP CÁC MÔN HỌC CỦA SINH VIÊN

KHAI PHÁ LUẬT KẾT HỢP CÁC MÔN HỌC CỦA SINH VIÊN

Bảng 3.14 Bảng kết quả chạy giải thuật Apriori trên dữ liệu HK1 khóa 2006

3.3.2 Kết quả thực hiện giải thuật FP-Growth từ dữ liệu học kỳ 1 khóa 2006 với min

support là 0.05

Các thông số Giải thuật FP-Growth

Độ hỗ trợ 0.05

Độ tin cậy 0.9

Số tập giao dịch 342

Số thuộc tính 273

Số luật tạo ra 28

Số item tối đa trong tập thường

xuyên4

Số tập thường xuyên có 1 item 10

Số tập thường xuyên có 2 item 18

Số tập thường xuyên có 3 item 10

Số tập thường xuyên có 4 item 1

Thời gian chạy 151ms

KHOA KHOA HỌC VÀ KỸ THUẬT MÁY TÍNH 39

Page 40: KHAI PHÁ LUẬT KẾT HỢP CÁC MÔN HỌC CỦA SINH VIÊN

KHAI PHÁ LUẬT KẾT HỢP CÁC MÔN HỌC CỦA SINH VIÊN

Bảng 3.15 Bảng kết quả chạy giải thuật FP-Growth trên dữ liệu HK1 khóa 2006

So với kết quả chạy bằng giải thuật Apriori như bảng 3.14, ta thấy được kết quả thu

được từ giải thuật FP-Growth ở bảng 3.15 giống nhau về số tập giao dịch tạo ra, số thuộc

tính, số luật tạo ra, số tập thường xuyên, chỉ khác nhau về thời gian chạy. Giải thuật

Apriori chạy mất 231ms, giải thuật FP-Growth chạy mất 151ms.

3.3.3 Kết quả thực hiện giải thuật gia tăng từ dữ liệu học kỳ 3 khóa 2005 và dữ liệu

gia tăng học kỳ 1 khóa 2006 với min support là 0.0 2

Các thông số Giải thuật khai phá gia tăng

Độ hỗ trợ 0.02

Độ tin cậy 0.9

Số tập giao dịch 724

Số thuộc tính 273

Số luật tạo ra 67

Số item tối đa trong tập thường

xuyên4

Số tập thường xuyên có 1 item 17

Số tập thường xuyên có 2 item 44

Số tập thường xuyên có 3 item 31

Số tập thường xuyên có 4 item 6

Thời gian chạy 52ms

Bảng 3.16 Bảng kết quả chạy giải thuật gia tăng trên dữ liệu khóa 2005 và 2006

KHOA KHOA HỌC VÀ KỸ THUẬT MÁY TÍNH 40

Page 41: KHAI PHÁ LUẬT KẾT HỢP CÁC MÔN HỌC CỦA SINH VIÊN

KHAI PHÁ LUẬT KẾT HỢP CÁC MÔN HỌC CỦA SINH VIÊN

Chương 4: Xây dựng hệ thống

4.1 Giới thiệu hệ thống

Với các kết quả đạt được của việc tìm hiểu lý thuyết và thực nghiệm ở các chương

trước, chương này sẽ đi vào quá trình xây dựng hệ thống website hỗ trợ người dùng trong

việc lựa chọn môn học của sinh viên khoa Khoa Học và Kỹ Thuật Máy Tính.

Website được xây dựng với các chức năng khảo sát tập dữ liệu học tập của sinh viên

dùng cho quá trình khai phá, xây dựng các tập thường xuyên, lưu trữ và sử dụng các tập

thường xuyên tạo ra các luật kết hợp giúp sinh viên lựa chọn môn học phù hợp trong học

tập, xem thông tin của một nhóm sinh viên có cùng đặc điểm cũng như thông tin chi tiết về

quá trình học tập của từng sinh viên.

Hệ thống website cũng hiện thực việc phân quyền người dùng theo cấp độ giảng viên

và sinh viên. Mỗi người dùng được cấp một username và password để đăng nhập. Sau khi

đã đăng nhập thành công, thì người dùng có thể sử dụng được những các chức năng của

chương trình tùy thuộc vào quyền hạn của người dùng đó.

4.1.1 Chức năng khảo sát và khai phá dữ liệu

Chức năng khảo sát dữ liệu cung cấp cho người dùng cái nhìn tổng quan về tập dữ

liệu đang được xem xét. Chức năng này cho biết được số lượng sinh viên cho từng trạng

thái học tập, mỗi trạng thái sẽ chiếm bao nhiêu phần trăm. Ngoài ra, các môn học (các

thuộc tính của tập dữ liệu) cũng được liệt kê. Đối với mỗi môn học, người dùng có thể biết

được mối tương quan về điểm số của sinh viên và các thống kê về kết quả học tập của sinh

viên cho môn học này. Tất cả các thống kê đều được trình bày dưới dạng các biểu đồ trực

quan giúp người dùng dễ dàng có cái nhìn bao quát về tập dữ liệu.

Trước khi có thể giúp sinh viên lựa chọn các môn học trong một tương lai nào đó,

người dùng cần phải lựa chọn một tập dữ liệu đã có sẵn, xây dựng tập dữ liệu thường

xuyên và sau đó là tạo ra các luật kết hợp với các độ đo, nhằm xác định sự tương quan

trong điểm số của tập các môn học.

Kết quả của quá trình khai phá dữ liệu sẽ tạo ra các tập thường xuyên và luật kết hơp.

Các tập thường xuyên sẽ bao gồm những môn học có cùng một mối liên hệ nào đó,

ví dụ như tập các môn học thường rớt chung với nhau,... Dựa vào tập thường xuyên, người

dùng có thể biết được những môn học nào là thường rớt chung với nhau hay thường

đậu,..Qua đó người dùng có thể có những lựa chọn tốt hơn dựa trên kết quả của các tập

thường xuyên.

KHOA KHOA HỌC VÀ KỸ THUẬT MÁY TÍNH 41

Page 42: KHAI PHÁ LUẬT KẾT HỢP CÁC MÔN HỌC CỦA SINH VIÊN

KHAI PHÁ LUẬT KẾT HỢP CÁC MÔN HỌC CỦA SINH VIÊN

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 đó: hỗ trợ và độ tin cậy. Tất cả các tập luật kết hợp sinh ra phải thỏa các

ngưỡng giá trị của mãn hai độ đo này.

Sau bước sinh ra luật kết hợp, những tùy chọn cho việc lọc những luật kết hợp này

cần được thực hiện. Đối với hệ thống đăng ký môn học theo quy chế tín chỉ, việc đăng ký

học của sinh viên là linh hoạt. Tại một thời điểm hay học kỳ nào đó, số lượng môn học

cũng như các môn học tích lũy của mỗi sinh viên là khác nhau. Chính điều này đã làm cho

việc sinh ra các luật kết hợp còn nhiều luật không chính xác. Các tùy chọn lọc luật này bao

gồm như: lọc theo môn tiên quyết, lọc theo môn học trước, lọc theo độ đo, lọc theo môn

học. Người dùng có thể chọn một hoặc nhiều điều kiện lọc cùng lúc.

Ngoài ra hệ thống còn cung cấp chức năng khai phá gia tăng dùng để khai phá khi có

một tập dữ liệu mới thêm vào cùng với tập dữ liệu cũ đã khai phá. Đối với chức năng khai

phá gia tăng, người dùng có những tùy chọn gần giống với những tùy chọn ban đầu khi

khảo sát dữ liệu. Người dùng có thể chọn một trong hai giải thuật khai phá là: FP-Growth

và FUFP-tree maintenance.

4.1.2 Chức năng hỗ trợ ra quyết định

Dữ liệu sau bước khai phá dữ liệu ở dạng các tập thường xuyên hay dạng tập luật.

Nhưng dữ liệu vẫn đang còn ở dạng tổng quát và còn nhiều tính trừu tượng ở trong đó.

Dựa vào những tri thức sau khi khảo sát, người dùng có thể có nhiều cách hiểu khác nhau.

Các tri thức đó chưa có tính định hướng và giải quyết một công việc cụ thể nào đó trong

thực tế.

Chức năng hỗ trợ ra quyết định là một ứng dụng thực tế của việc áp dụng các giải

thuật khai phá luật kết hợp vào bài toán điểm số các môn học của sinh viên. Ví dụ như bài

toán lựa chọn môn học đối với những sinh viên rớt nhiều, bài toán đăng ký môn học đối

với tất cả sinh viên, bài toán phát hiện những sinh viên bất thường đối với giáo viên.

Chức năng hỗ trợ ra quyết định phải bao gồm bước khảo sát dữ liệu trước đó. Sau

khi khảo sát dữ liệu, những tri thức thu được sẽ được áp dụng cho từng bài toán cụ thể để

hỗ trợ ra quyết định trong giáo dục.

Các chức năng hỗ trợ ra quyết định:

KHOA KHOA HỌC VÀ KỸ THUẬT MÁY TÍNH 42

Page 43: KHAI PHÁ LUẬT KẾT HỢP CÁC MÔN HỌC CỦA SINH VIÊN

KHAI PHÁ LUẬT KẾT HỢP CÁC MÔN HỌC CỦA SINH VIÊN

Đưa ra môn học và hệ thống sẽ cho biết có nên học môn học đó hay không:

Người dùng sử dụng chức năng này để kiểm tra một môn học cụ thể nào đó

đối với tình trạng sinh viên hiện tại. Kết quả trả về sẽ cho biết môn học đó có

nên học hay không nên học. Sinh viên có thể xem chi tiết lý do vì sao lại có

kết quả như vậy để hiểu thêm về môn học đó.

Dự đoán tập các môn nên học: Chức năng này sẽ dựa vào kết quả học tập

hiện tại của một sinh viên rồi đưa ra dự đoán những môn học nên học cho

những học kỳ tiếp theo của sinh viên đó. Mỗi môn học được dự đoán sẽ hiển

thị kèm theo những lý do tại sao chọn môn học đó. Dựa vào những dự đoán

này sinh viên sẽ có những lựa chọn hợp lý cho việc đăng ký môn học.

Khuyến cáo một môn học cụ thể nào đó: Khi sử dụng chức năng này người

dùng sẽ nhập môn học mà mình đang học và kết quả trả về sẽ là những

khuyến cáo đối với môn học đó. Kết quả đó có được là dựa vào việc kiểm tra

tập dữ liệu của những sinh viên khóa trước cũng đã từng học môn học đó.

Các mức khuyến cáo có thể là:

o Môn thường đậu.

o Môn ít có nguy cơ rớt.

o Môn có nguy cơ rớt.

o Môn có nguy cơ rớt cao.

Khuyến cáo một nhóm các môn học: tương tự chức năng khuyến cáo môn

học và bây giờ là người dùng có thể xem khuyến cáo theo một nhóm các môn

học.

Phát hiện những sinh viên bất thường: Người dùng sử dụng chức năng này

thường là giảng viên hay những người quản lý trong giáo dục. Việc phát hiện

những sinh viên bất thường trong quá trình học tập là thật sự cần thiết trong

quá trình giảng dạy. Dựa vào kết quả trả về người dùng sẽ biết được những

môn học mà sinh viên bất thường đã học và kết quả điểm số của môn học đó.

Sau khi phát hiện những sinh viên bất thường, những người quản lý giáo dục

sẽ có những chính sách tốt hơn để hỗ trợ quá trình học tập của những sinh

viên này.

4.1.3 Các bước thực hiện khai phá trong hê thống

KHOA KHOA HỌC VÀ KỸ THUẬT MÁY TÍNH 43

Page 44: KHAI PHÁ LUẬT KẾT HỢP CÁC MÔN HỌC CỦA SINH VIÊN

KHAI PHÁ LUẬT KẾT HỢP CÁC MÔN HỌC CỦA SINH VIÊN

Hình 4.1 Trình tự các bước khi thực hiện khai phá

KHOA KHOA HỌC VÀ KỸ THUẬT MÁY TÍNH 44

Page 45: KHAI PHÁ LUẬT KẾT HỢP CÁC MÔN HỌC CỦA SINH VIÊN

KHAI PHÁ LUẬT KẾT HỢP CÁC MÔN HỌC CỦA SINH VIÊN

a. Giai đoạn chọn dữ liệu khai phá: Ở bước này người dùng phải chọn tập dữ liệu

đầu vào để sử dụng cho các quá trình khai phá sau này. Dữ liệu đầu vào bao gồm tập dữ

liệu học tập của các khóa và tập các giải thuật khai phá.

Đối với tùy chọn dữ liệu: Người dùng có thể chọn cụ thể dữ liệu một khóa,

một học kỳ cụ thể nào đó hoặc có thể chọn toàn bộ dữ liệu.

Đối với tùy chọn giải thuật: Người dùng chọn một trong hai giải thuật là

Apriori và FP-Growth. Đối với trường hợp gia tăng, người dùng có hai giải

thuật để chọn là: FUFP tree maintenance và FP-Growth. Bên cạnh việc chọn

giải thuật người dùng còn có thể chọn các độ đo để phục vụ cho quá trình

khai phá.

b. Giai đoạn tiền xử lý dữ liệu: Sau khi chọn dữ liệu khai phá, quá trình tiếp theo là

chuẩn hóa những dữ liệu này thành những dữ liệu mà có thể khai phá được. Tùy thuộc vào

mục đích khai phá mà dữ liệu sẽ được tiền xử lý một cách thích hợp. Ví dụ: khai phá

những môn thương xuyên rớt thì dữ liệu ban đầu sẽ được phân thành hai loại, những môn

trên 5.0 là những môn đã học qua và ngược lại là những môn rớt, quá trình khai phá chỉ

thực hiện trên những môn rớt.

c. Giai đoạn khảo sát dữ liệu: Khảo sát dữ liệu là một bước trung gian trước khi

quá trình khai phá tìm ra các tập thường xuyên. Giai đoạn này sẽ thống kê lại các dữ liệu

ban đầu để người dùng có cái nhìn tổng quát về tập dữ liệu được chọn để khai phá.

d. Giai đoạn xây dựng tập thường xuyên: Dựa vào những dữ liệu và giải thuật

được chọn, giai đoạn này sẽ áp dụng giải thuật được chọn để khai phá tập dữ liệu đó. Kết

quả của quá trình khai phá này là các tập thường xuyên. Những tập thường xuyên là tập

những môn học có một mối liên hệ với nhau. Ví dụ như tập những môn học thường xuyên

rớt hay những môn thường xuyên đậu.

e. Giai đoạn xây dựng luật kết hợp: Sau quá trình xây dựng tập thường xuyên là

đến giai đoạn xây dựng luật kết hợp. Dựa trên những tập thường xuyên đã tạo ra và độ tin

cậy ban đầu, quá trình khai phá sẽ tạo ra tập những luật kết hợp thỏa mãn độ tin cậy.

f. Lọc tập luật kết hợp: Quá trình hiển thị luật kết hợp có thể còn chứa nhiều luật

không chính xác. Ở giai đoạn này, người dùng sau khi đã khai phá và xem được các tập

luật kết hợp thì có thể chọn xóa đi những luật không đúng và vô nghĩa.

Sơ đồ lọc tập luật kết hợp được trình bày ở hình 4.2:

KHOA KHOA HỌC VÀ KỸ THUẬT MÁY TÍNH 45

Page 46: KHAI PHÁ LUẬT KẾT HỢP CÁC MÔN HỌC CỦA SINH VIÊN

KHAI PHÁ LUẬT KẾT HỢP CÁC MÔN HỌC CỦA SINH VIÊN

Hình 4.2 Sơ đồ lọc tập luật kết hợp

Các điều kiện lọc dữ liệu :

Có 1 số môn học thường không có ảnh hưởng gì đến các môn học khác. Do

đó khi sinh luật kết hợp sẽ tạo ra 1 số luật không cần thiết. Ví dụ : các môn

thể dục, giáo dục quốc phòng.

Có thể có tập các môn học thường xuyên tất yếu phải có, những môn như vậy

cũng sẽ không đưa vào trong quá trình tính toán. Ví dụ : các môn thực tập,

môn luận văn tốt nghiệp.

Lọc theo tập các tập thứ tự môn tiên quyết trước đó.

Lọc theo môn song hành.

Loại bỏ những tập luật dư thừa, không hợp lý, không cần thiết. Ví dụ như :

những môn học xã hội những môn học tự nhiên, như vậy là không cần

thiết cho người dùng tham khảo.

g. Lưu lại kết quả khai phá: Sau khi loại đi những luật không cần thiết người dùng

có thể lưu lại kết quả vừa khai phá để sử dụng sau này.

h. Giai đoạn hỗ trợ ra quyết định: Giai đoạn hỗ trợ ra quyết định là áp dụng những

kết quả khai phá đã thực hiện vào những bài toán thực tế. Đối với đề tài này giai đoạn này

sẽ hỗ trợ người dùng trong việc ra quyết định trong giáo dục.

KHOA KHOA HỌC VÀ KỸ THUẬT MÁY TÍNH 46

Page 47: KHAI PHÁ LUẬT KẾT HỢP CÁC MÔN HỌC CỦA SINH VIÊN

KHAI PHÁ LUẬT KẾT HỢP CÁC MÔN HỌC CỦA SINH VIÊN

Bên cạnh các chức năng trên, chương trình còn giúp người dùng theo dõi quá trình

học tập của sinh viên thông qua chức năng xem thông tin sinh viên. Người dùng sẽ lựa

chọn một trong các tiêu chí để xem thông tin sinh viên: thông tin của một sinh viên, các

sinh viên trong cùng một lớp, cùng một khóa hoặc các sinh viên có cùng trạng thái học tập.

Thông tin về từng sinh viên sẽ bao gồm các bảng điểm cho từng học kỳ, thông tin về điểm

trung bình học kỳ, điểm trung bình tích lũy, số tín chỉ tích lũy cho từng học kỳ và tổng số

tín chỉ tích lũy. Các thông tin về điểm trung bình và số tín chỉ được trình bày dưới dạng đồ

thị giúp người dùng có cái nhìn trực quan về diễn biến trong quá trình học tập của sinh

viên.

Tập dữ liệu được dùng của chương trình là dữ liệu về điểm số các môn học của sinh

viên Khoa Khoa Học và Kỹ Thuật Máy Tính. Hiện tại, tập dữ liệu bao gồm điểm của sinh

viên năm khóa 2005, 2006, 2007, 2008 và 2009, tính từ học kỳ 1 năm học 2005 đến học kỳ

1 năm học 2009, bao gồm cả các học kỳ hè. Với mỗi sinh viên, dữ liệu bao gồm Mã số

sinh viên, họ tên, lớp, khóa, và điểm của tất cả các môn mà sinh viên đã học trong thời

gian từ học kỳ 1 năm 2005 đến học kỳ 1 năm 2009.

Do quy chế học tín chỉ, sinh viên có thể học một môn học nhiều hơn một lần trong

các học kỳ khác nhau nên một môn có thể xuất hiện ở nhiều học kỳ khác nhau.

Tập dữ liệu được cung cấp ban đầu dưới dạng các file Excel chứa thông tin về điểm

số của sinh viên cho các học kỳ, thông tin chi tiết về sinh viên, các môn học trong chương

trình đào tạo, và trạng thái học tập của các sinh viên từ học kỳ 1 năm 2005 đến học kỳ 1

năm 2009.

Để thuận tiện cho quá trình truy vấn và xử lý, tất cả dữ liệu sẽ được lưu trữ trong cơ

sở dữ liệu MySQL. Quá trình xử lý và đưa dữ liệu từ file dữ liệu gốc vào CSDL MySQL

cũng được hệ thống thực hiện tự động.

4.2 Kiến trúc hệ thống

4.2.1 Mô hình Model – View – Controller (MVC) [11]

Mô hình Model – View – Controller (MVC) là kiến trúc phần mềm được sử dụng

rộng rãi trong các ứng dụng công nghệ thông tin. Mô hình này chia ứng dụng thành ba

thành phần độc lập với nhau: Model, View và Controller. Mỗi thành phần thực hiện một

nhiệm vụ khác nhau và không ảnh hưởng lẫn nhau.

KHOA KHOA HỌC VÀ KỸ THUẬT MÁY TÍNH 47

Page 48: KHAI PHÁ LUẬT KẾT HỢP CÁC MÔN HỌC CỦA SINH VIÊN

KHAI PHÁ LUẬT KẾT HỢP CÁC MÔN HỌC CỦA SINH VIÊN

Thành phần Model là tập hợp các lớp chứa dữ liệu, xử lý các quy tắc nghiệp vụ, thực

hiện truy vấn và xử lý dữ liệu từ cơ sở dữ liệu. Thông thường, một lớp thuộc thành phần

Model là ánh xạ của một bảng trong cơ sở dữ liệu. Ví dụ ta dùng lớp Student để mô tả dữ

liệu từ bảng Student trong cơ sở dữ liệu, bao gồm các thuộc tính như StudentId,

StudentName, … và các phương thức để truy vấn, xử lý dữ liệu và thực hiện các quy tắc

nghiệp vụ của ứng dụng.

Thành phần View chịu trách nhiệm hiển thị các thông tin cho người dùng.

Thành phần Controller là các lớp làm nhiệm vụ liên lạc giữa Model và View. Các

lớp này xử lý các tương tác của người dùng với các giao diện, gọi các lớp Model để truy

vấn, xử lý dữ liệu và cuối cùng là chọn một View thích hợp để hiển thị thông tin về cho

người dùng. Thành phần View chỉ làm nhiệm vụ hiển thị thông tin, trong khi thành phần

Controller điều khiển dòng nhập xuất của người dùng.

Hình 4.3 Mô hình Model – View – Controller [11]

Một cách phức tạp hơn để hiểu về MVC :

KHOA KHOA HỌC VÀ KỸ THUẬT MÁY TÍNH 48

Page 49: KHAI PHÁ LUẬT KẾT HỢP CÁC MÔN HỌC CỦA SINH VIÊN

KHAI PHÁ LUẬT KẾT HỢP CÁC MÔN HỌC CỦA SINH VIÊN

Hình 4.4 Mô hình Model – View – Controller phức tạp [11]

Ưu điểm của việc thiết kế ứng dụng theo mô hình MVC là mối liên hệ giửa các

thành phần model, view và controller được duy trì rõ ràng. Các thành phần này có thể

được kiểm tra độc lập với nhau. Việc phân chia này giúp chúng ta có thể ứng dụng có

được kiến trúc rõ ràng, rành mạch, làm cho quá trình hiện thực cũng như bảo trì dễ dàng và

nhanh chóng. Bên cạnh đó, việc thêm chức năng mới vào ứng dụng cũng thuận lợi, không

ảnh hưởng nhiều đến các thành phần khác đã có trong hệ thống.

Tuy nhiên, mô hình MVC cũng có những khuyết điểm. Nếu ứng dụng nhỏ thì việc

áp dụng mô hình này sẽ làm cho ứng dụng trở nên phức tạp, tốn nhiều thời gian cho quá

trình phát triển. Ngoài ra, việc phân chia ứng dụng thành nhiều tầng sẽ gây tốn thời gian

cho quá trình trao đổi dữ liệu giữa các tầng.

4.2.2 Kiến trúc hệ thống [12]

Hệ thống được thiết kế theo mô hình MVC đã giới thiệu ở trên. Do chương trình

không hiện thực lại các giải thuật khai phá luật kết hợp mà sử dụng các giải thuật đã được

hiện thực bởi thư viện khai phá dữ liệu Weka(ngoại trừ giải thuật khai phá gia tăng là phát

triển lên từ weka, weka không có sẵn) nên hệ thống sẽ gọi thư viện Weka khi cần tạo ra

các tập thường xuyên và xây dựng luật kết hơp . Sau khi đã lấy dữ liệu từ cơ sở dữ liệu

bằng các lớp Model, thành phần Controller sẽ gọi thư viện Weka để thực hiện khai phá, và

sau đó trả về kết quả, và kết quả sẽ được hiển thị với View thích hợp.

KHOA KHOA HỌC VÀ KỸ THUẬT MÁY TÍNH 49

Page 50: KHAI PHÁ LUẬT KẾT HỢP CÁC MÔN HỌC CỦA SINH VIÊN

KHAI PHÁ LUẬT KẾT HỢP CÁC MÔN HỌC CỦA SINH VIÊN

Hình 4.5 Kiến trúc tổng quan hệ thống

Website hỗ trợ ra quyết định trong học tập của sinh viên bao gồm các khối chức

năng được mô tả chi tiết trong sơ đồ ở hình 4.6 dưới đây.

KHOA KHOA HỌC VÀ KỸ THUẬT MÁY TÍNH 50

Page 51: KHAI PHÁ LUẬT KẾT HỢP CÁC MÔN HỌC CỦA SINH VIÊN

KHAI PHÁ LUẬT KẾT HỢP CÁC MÔN HỌC CỦA SINH VIÊN

Hình 4.6 Kiến trúc chi tiết hệ thống

Các khối trong thành phần Controller nhận yêu cầu và thông tin của người dùng, gọi

thành phần Model để tương ứng với yêu cầu và lựa chọn View thích hợp để hiển thị thông

tin trả về cho người dùng, bao gồm: Xem thông tin sinh viên, khảo sát dữ liệu, xây dựng

luật kết hợp và hỗ trợ ra quyết định về giáo dục.

Xem thông tin Sinh viên: Xử lý các yêu cầu về việc xem thông tin về sinh viên của

người dùng. Các tiêu chí mà người dùng có thể lựa chọn bao gồm xem thông tin của một

sinh viên, xem danh sách các sinh viên cùng khóa học, hoặc cùng lớp sinh viên, hoặc có

cùng trạng thái học tập. Sau khi xử lý yêu cầu, Model tương ứng được gọi để truy vấn

thông tin từ cơ sở dữ liệu và thông tin về sinh viên được hiển thị trên một View phù hợp.

KHOA KHOA HỌC VÀ KỸ THUẬT MÁY TÍNH 51

Page 52: KHAI PHÁ LUẬT KẾT HỢP CÁC MÔN HỌC CỦA SINH VIÊN

KHAI PHÁ LUẬT KẾT HỢP CÁC MÔN HỌC CỦA SINH VIÊN

Khảo sát dữ liệu: Người dùng có thể lựa chọn khảo sát toàn bộ tập dữ liệu, khảo sát

dữ liệu theo khóa, theo học kỳ hoặc theo các môn học trong chương trình đào tạo. Yêu cầu

sẽ được xử lý và gọi Model để lấy dữ liệu phù hợp với tiêu chí lựa chọn của người dùng.

Sau đó, thông tin về tập dữ liệu được hiển thị cho người dùng trên một View thích hợp

được chọn bởi Controller.

Xây dựng tập thường xuyên/luật kết hợp: Quá trình xây dựng luật kết hợp trải qua

nhiều bước nối tiếp nhau. Tại mỗi bước, người dùng sẽ lựa chọn các thông số đầu vào

thích hợp để xây dựng luật kết hợp. Các thông số này sẽ được xử lý và dùng để lấy dữ liệu

dùng cho quá trình khai phá từ cơ sở dữ liệu. Sau khi đã có được tập dữ liệu thích hợp thì

thư viện khai phá dữ liệu Weka được gọi để thực hiện việc xây dựng các luật kết hợp từ

các tập thường xuyên. Cuối cùng, thông tin chi tiết về các luật kết hợp được xây dựng sẽ

được hiển thị cho người dùng.

Hỗ trợ ra quyết định về giáo dục: Người dùng có thể lựa chọn dự đoán các môn

học có nên học hay không của một sinh viên cụ thể hoặc các sinh viên cùng một lớp. Bên

cạnh đó, người dùng có chọn một (hoặc nhiều) môn học có sẵn để thực hiện dự đoán trạng

thái các môn học đó. Hệ thống cũng hỗ trợ thêm các chức năng khuyến cáo các môn học

và tìm ra những sinh viên có kết quả học tập bất thường. Với chọn lựa của người dùng, dữ

liệu sẽ được lấy từ cơ sở dữ liệu và thư viện Weka được gọi để thực hiện việc dự đoán dựa

vào tập dữ liệu đã chọn. Cuối cùng, thông tin về trạng thái sinh viên được hiển thị lại cho

người dùng.

Các khối trong thành phần Model thực hiện chức năng truy vấn và xử lý các dữ liệu

lấy từ cơ sở dữ liệu, bao gồm Lấy dữ liệu khảo sát / huấn luyện, Chuẩn bị dữ liệu dự đoán

và Lấy thông tin sinh viên.

Lấy dữ liệu khảo sát / huấn luyện: Lấy dữ liệu học tập của sinh viên từ cơ sở dữ

liệu và thực hiện xử lý dữ liệu dùng cho các giải thuật khai phá khác nhau. Với giải thuật

Apriori và FP-Growth, tập dữ liệu được nhị phân hóa(true, false) theo kết quả học tập của

các môn học. Đối với giải thuật khai phá gia tăng(FUFP-tree maintenance), tập dữ liệu

được thêm vào phải cùng định dạng với tập dữ liệu cũ. Tập dữ liệu sẽ được trả về cho

thành phần Controller.

Chuẩn bị dữ liệu dự đoán từ dữ liệu đã khai phá: Tùy thuộc vào việc người dùng

lựa chọn các chức năng cần thiết của một sinh viên hoặc một lớp sinh viên mà thành phần

Model sẽ truy vấn dữ liệu phù hợp. Bên cạnh đó, dữ liệu này sẽ được xử lý tại Model (nhị

phân hóa) để phù hợp với giải thuật khai phá luật kết hợp được lựa chọn. Sau khi dữ liệu

đã được chuẩn bị, chúng được trả về cho thành phần Controller theo yêu cầu.

KHOA KHOA HỌC VÀ KỸ THUẬT MÁY TÍNH 52

Page 53: KHAI PHÁ LUẬT KẾT HỢP CÁC MÔN HỌC CỦA SINH VIÊN

KHAI PHÁ LUẬT KẾT HỢP CÁC MÔN HỌC CỦA SINH VIÊN

Lấy thông tin sinh viên: Tùy vào tiêu chí lựa chọn của người dùng, thành phần

Model sẽ truy vấn thông tin sinh viên từ cơ sở dữ liệu và trả về cho thành phần Controller.

Ở tầng database sẽ lưu trữ những thông tin điểm số sinh viên, thông tin môn học,

môn học tương đương, chương trình đào tạo, thứ tự môn tiên quyết, khóa học,…Ngoài ra

database còn lưu trữ những thông tin sau khi đã khai phá thành công ở những lần sử dụng

trước.

Lưu trữ dữ liệu chương trình đào tạo: Ứng với mỗi chương trình đào tạo sẽ tạo ra

hai bảng chuong_trinh_dao_tao của sinh viên khoa học máy tính và kỹ thuật máy tính với

cấu trúc như sau được tạo ra:

ID Masomonhoc ID_hocky ID_khoahoc

1 505003 1 2003

2 503001 1 2003

...

Bảng 4.1 Bảng chương trình đào tạo

Cột ID sẽ tăng tự động khi insert dữ liệu vào bảng và là khóa chính của

bảng.

Với mỗi chương trình đào tạo có thể sẽ phải thêm vào khảng 50 hàng

mới, việc này sẽ gây trùng lặp dữ liệu nhưng sẽ không ảnh hưởng đến

không gian lưu trữ của bộ nhớ.

Cột ID_hocky sẽ cho biết được môn học đó thuộc học kỳ nào theo

chương trình đào tạo và dữ liệu cột này không được null.

Cột ID_khoahoc sẽ liên kết tới bảng khoa_hoc, cột này sẽ cho biết được

những môn học thuộc khóa học này và dữ liệu cột này không được null.

Lưu trữ dữ liệu khóa học:

ID ID_khoahoc Mo_ta

1 2003 Áp dụng từ khóa 2003 đến 2005

2 2006 Áp dụng cho khóa 2006

...

KHOA KHOA HỌC VÀ KỸ THUẬT MÁY TÍNH 53

Page 54: KHAI PHÁ LUẬT KẾT HỢP CÁC MÔN HỌC CỦA SINH VIÊN

KHAI PHÁ LUẬT KẾT HỢP CÁC MÔN HỌC CỦA SINH VIÊN

Bảng 4.2 Bảng khóa học

Cột ID tự động tăng khi insert và là khóa chính của bảng.

Cột ID_khoahoc không được null để cho biết dữ liệu thuộc khóa học nào.

Cột mo_ta sẽ miêu tả phạm vi áp dụng của khóa học đó. Cột này dùng để

miêu tả cho những người quản trị hiểu được phạm vi áp dụng của chương

trình đào tạo.

Lưu trữ dữ liệu các môn học trước trong bảng mon_hoc_truoc:

ID ID_monhoc Thu_tu Id_nhom ID_khoahoc

1 505003 1 1 2003

2 505004 2 1 2003

3 505005 3 1 2003

4 505003 1 2 2006

5 506006 2 2 2006

...

KHOA KHOA HỌC VÀ KỸ THUẬT MÁY TÍNH 54

Page 55: KHAI PHÁ LUẬT KẾT HỢP CÁC MÔN HỌC CỦA SINH VIÊN

KHAI PHÁ LUẬT KẾT HỢP CÁC MÔN HỌC CỦA SINH VIÊN

Bảng 4.3 Bảng môn học trước

Cột ID sẽ tăng tự động khi insert dữ liệu vào bảng và là khóa chính của bảng.

Mỗi môn học có thể có nhiều môn tiên quyết và một môn tiên quyết cũng sẽ

có thể có nhiều môn phụ thuộc nên dữ liệu ở cột ID_monhoc có thể trùng lặp

lại, dựa vào cột thu_tu và cột id_nhom, ta có thể tìm được thứ tự các môn học

trước sau trong điều kiện môn tiên quyết. Cách lưu này giải quyết được

trường hợp một môn học có thể có một tập các môn tiên quyết hay các môn

tiên quyết kéo theo lẫn nhau.

Ví dụ: Anh văn 1 Anh văn 2 Anh văn 3 Anh văn 4.

Cột ID_khoahoc sẽ cho biết môn học đó thuộc khóa học nào và dữ liệu cột

này không được null.

Lưu ý:

Tất cả các bảng trong CSDL đều mặc định có thuộc tính ID tự động tăng lên khi

insert dữ liệu để làm khóa chính của bảng. Mặc dù cách thêm thuộc tính ID vào tất cả các

bảng là dư thừa nhưng sẽ đảm bảo rằng tất cả các bảng đều có một khóa chính duy nhất và

dữ liệu có thể được đưa vào cơ sở dữ liệu một cách dễ dàng.

Cách lưu dữ liệu như trên có ưu điểm:

Lọc dữ liệu theo từng chương trình đào tạo

Từ mã số môn học có thể biết được id học kỳ, từ đó biết được thứ tự học các

môn học theo chương trình đào tạo .

Dựa vào thứ tự các môn học theo thời gian và các môn học tiên quyết, có thể

loại bỏ các luật không phù hợp theo từng chương trình đào tạo.

Theo cách lưu này trong trường hợp chương trình đào tạo thay đổi, hệ thống

sẽ phải thêm những dữ liệu mới vào bảng chương trình đào tạo. Mặc dù có

những dư thừa dữ liệu nhưng việc này sẽ không ảnh hưởng nhiều đến không

gian lưu trữ của bộ nhớ, chủ yếu là thêm những dòng dữ liệu mới vào bảng

chương trình đào tạo.

Công việc lọc dữ liệu cho đầu ra sẽ dựa trên những điều kiện khác nhau:

môn học tiên quyết, nhóm môn học con, những luật dư thừa,...

4.3 Phát triển hệ thống

4.3.1 Lược đồ Usecase

KHOA KHOA HỌC VÀ KỸ THUẬT MÁY TÍNH 55

Page 56: KHAI PHÁ LUẬT KẾT HỢP CÁC MÔN HỌC CỦA SINH VIÊN

KHAI PHÁ LUẬT KẾT HỢP CÁC MÔN HỌC CỦA SINH VIÊN

Hình 4.7 Lược đồ usecase

Đặc tả usecase Khảo sát dữ liệu

Mô tả chung: Thực hiện việc khảo sát tập dữ liệu giúp người dùng có cái nhìn tổng

quát về các đặc điểm của tập dữ liệu được lựa chọn.

Actor: Người dùng

Tiền điều kiện: Người dùng phải đăng nhập thành công vào hệ thống.

Hậu điều kiện: không có.

KHOA KHOA HỌC VÀ KỸ THUẬT MÁY TÍNH 56

Page 57: KHAI PHÁ LUẬT KẾT HỢP CÁC MÔN HỌC CỦA SINH VIÊN

KHAI PHÁ LUẬT KẾT HỢP CÁC MÔN HỌC CỦA SINH VIÊN

Dòng sự kiện cơ bản:

1. Người dùng chọn chức năng Khảo sát dữ liệu.

2. Hệ thống trả về trang cho phép người dùng lựa chọn tập dữ liệu cần khảo sát.

3. Người dùng chọn tập dữ liệu cần khảo sát.

4. Hệ thống trả về trang chứa biểu đồ phân bố các trạng thái học tập của sinh

viên trong tập dữ liệu cùng với các môn học trong tập dữ liệu.

5. Người dùng chọn môn học để xem thông tin về kết quả học tập của môn này.

6. Hệ thống trả về kết quả học tập của sinh viên cho môn học được lựa chọn.

Người dùng có thể lựa chọn để xem thông tin học tập của môn học khác.

Dòng sự kiện khác: Tại bước 3, nếu người dùng không chọn tập dữ liệu huấn luyện

thì hệ thống trả về trang chứa thông báo lỗi.

Đặc tả usecase Xây dựng tập thường xuyên

Mô tả chung: Usecase thực hiện chức năng xây dựng các tập thường xuyên từ những

dữ liệu đã có trong quá khứ. Quá trình này bao gồm nhiều bước nối tiếp nhau: Chọn dữ

liệu khảo sát, Khảo sát dữ liệu, Chọn giải thuật khai phá luật kết hợp, Xây dựng tập thường

xuyên và Lưu trữ các tập thường xuyên.

Actor: Người dùng

Tiền điều kiện: Người dùng đăng nhập thành công vào hệ thống.

Hậu điều kiện: không có.

Dòng sự kiện cơ bản:

1. Người dùng chọn chức năng Xây dựng tập thường xuyên.

2. Thực hiện usecase Khảo sát dữ liệu.

3. Sau khi khảo sát dữ liệu, người dùng chọn giải thuật khai phá luật kết hợp để

xây dựng.

4. Hệ thống chuyển đến trang cho phép lựa chọn giải thuật khai phá để xây

dựng.

5. Người dùng chọn một hoặc nhiều giải thuật khai phá để thực hiện huấn luyện.

6. Hệ thống thực hiện các giải thuật huấn luyện đã lựa chọn. Sau khi thực hiện

huấn luyện thì hệ thống trả về trang chứa các độ đo dùng đánh giá các tập

thường xuyên và các tập thường xuyên vừa xây dựng

7. Người dùng chọn Lưu trữ các tập thường xuyên đã xây dựng.

8. Hệ thống lưu trữ lại các tập thường xuyên và hiển thị trang chứa kết quả của

việc lưu trữ này.

KHOA KHOA HỌC VÀ KỸ THUẬT MÁY TÍNH 57

Page 58: KHAI PHÁ LUẬT KẾT HỢP CÁC MÔN HỌC CỦA SINH VIÊN

KHAI PHÁ LUẬT KẾT HỢP CÁC MÔN HỌC CỦA SINH VIÊN

Dòng sự kiện khác: tại bước 5, nếu người dùng không chọn giải thuật khái phá luật

kết hợp nào thì hệ thống trả về trang chứa thông báo lỗi.

Đặc tả usecase Xây dựng luật kết hợp

Mô tả chung: Usecase thực hiện chức năng xây dựng các luật kết hợp từ những dữ

liệu đã có trong quá khứ. Quá trình này bao gồm nhiều bước nối tiếp nhau: Chọn dữ liệu

khảo sát, Khảo sát dữ liệu, Chọn giải thuật khai phá luật kết hợp, Xây dựng luật kết hợp,

Lọc luật kết hợp và Lưu trữ luật kết hợp.

Actor: Người dùng

Tiền điều kiện: Người dùng đăng nhập thành công vào hệ thống.

Hậu điều kiện: không có.

Dòng sự kiện cơ bản:

1. Người dùng chọn chức năng Xây dựng luật kết hợp.

2. Thực hiện usecase Khảo sát dữ liệu.

3. Sau khi khảo sát dữ liệu, người dùng chọn giải thuật khai phá luật kết hợp để

xây dựng.

4. Hệ thống chuyển đến trang cho phép lựa chọn giải thuật khai phá để xây

dựng.

5. Người dùng chọn một hoặc nhiều giải thuật khai phá để thực hiện huấn luyện.

6. Hệ thống thực hiện các giải thuật huấn luyện đã lựa chọn. Sau khi thực hiện

huấn luyện thì hệ thống trả về trang chứa các độ đo dùng đánh giá các tập

thường xuyên và thông tin về các luật kết hợp mới xây dựng.

7. Người dùng có thể thực hiện chức năng lọc luật kết hợp và loại bỏ những luật

không hợp lý.

8. Người dùng chọn lưu trữ các luật kết hợp đã xây dựng.

9. Hệ thống lưu trữ lại các luật kết hợp và hiển thị trang chứa kết quả của việc

lưu trữ này.

Dòng sự kiện khác: tại bước 5, nếu người dùng không chọn giải thuật khái phá luật

kết hợp nào thì hệ thống trả về trang chứa thông báo lỗi.

Đặc tả usecase Xem thông tin sinh viên

Mô tả chung: Usecase cho phép xem thông tin chi tiết về điểm của một sinh viên

cũng như của các sinh viên cùng một khóa, cùng một lớp hoặc có cùng trạng thái học tập.

Actor: Người dùng

Tiền điều kiện: Người dùng đăng nhập thành công vào hệ thống.

Hậu điều kiện: không có.

KHOA KHOA HỌC VÀ KỸ THUẬT MÁY TÍNH 58

Page 59: KHAI PHÁ LUẬT KẾT HỢP CÁC MÔN HỌC CỦA SINH VIÊN

KHAI PHÁ LUẬT KẾT HỢP CÁC MÔN HỌC CỦA SINH VIÊN

Dòng sự kiện cơ bản:

1. Người dùng chọn chức năng Xem thông tin Sinh viên.

2. Hệ thống trả về trang cho phép người dùng lựa chọn xem thông tin của một

sinh viên hoặc một nhóm sinh viên có cùng đặc điểm.

3. Người dùng chọn một hoặc một nhóm sinh viên để xem thông tin chi tiết.

4. Nếu người dùng chọn một sinh viên, hệ thống trả về thông tin chi tiết về sinh

viên này, bao gồm bảng điểm cho từng học kỳ và các biểu đồ miêu tả quá

trình học tập của sinh viên. Nếu người dùng chọn một nhóm thì hệ thống trả

về trang chứa các thông tin cơ bản của các sinh viên trong nhóm.

Dòng sự kiện khác: Tại bước 4, nếu người dùng nhập vào mã số sinh viên không

đúng hoặc không tồn tại thì hệ thống trả về trang chứa thông báo lỗi.

Đặc tả usecase Hỗ trợ ra quyết định

Mô tả chung: Thực hiện các chức năng dự đoán để hỗ trợ sinh viên trong việc ra

quyết định đúng đắn trong học tập.

Actor: Người dùng.

Tiền điều kiện: Người dùng đăng nhập thành công vào hệ thống.

Hậu điều kiện: Không có.

Dòng sự kiện cơ bản:

1. Người dùng chọn chức năng Hỗ trợ ra quyết định.

2. Hệ thống trả về trang cho phép người dùng chọn một chức năng hỗ trợ ra

quyết định cụ thể nào đó.

3. Người dùng nhập một mã số sinh viên (nếu cần) hoặc chọn một tập các khóa

sinh viên(nếu cần). Người dùng cũng chọn một hoặc nhiều môn học để thực

hiện dự đoán.

4. Nếu người dùng chọn một sinh viên thì hệ thống trả về kết quả dự đoán của

sinh viên đó. Nếu người dùng chọn nhóm sinh viên thì hệ thống trả về bảng

kết quả dự đoán cho tất cả các sinh viên cùng loại đó.

Dòng sự kiện khác 1: Tại bước 4, nếu mã số sinh viên nhập vào không tồn tại hoặc

không đúng thì hệ thống trả về trang thông báo lỗi.

Dòng sự kiện khác 2: Tại bước 4, nếu người dùng không chọn môn học nào thì hệ

thống trả về trang thông báo lỗi.

Chi tiết của usecase hỗ trợ ra quyết định

KHOA KHOA HỌC VÀ KỸ THUẬT MÁY TÍNH 59

Page 60: KHAI PHÁ LUẬT KẾT HỢP CÁC MÔN HỌC CỦA SINH VIÊN

KHAI PHÁ LUẬT KẾT HỢP CÁC MÔN HỌC CỦA SINH VIÊN

Hình 4.8 Chi tiết hóa usecase hỗ trợ ra quyết định

Chi tiết từng usecase của chức năng hỗ trợ ra quyết định

Lựa chọn môn học để kiểm tra:

KHOA KHOA HỌC VÀ KỸ THUẬT MÁY TÍNH 60

Page 61: KHAI PHÁ LUẬT KẾT HỢP CÁC MÔN HỌC CỦA SINH VIÊN

KHAI PHÁ LUẬT KẾT HỢP CÁC MÔN HỌC CỦA SINH VIÊN

Hình 4.9 Usecase lựa chọn môn học để kiểm tra

o Sinh viên chọn môn học cần kiểm tra.

o Hệ thống sẽ kiểm tra trạng thái của môn học đó trong các lần khai phá

cũ.

o Kết quả trả về: trạng thái của môn học đó

Dự đoán những môn nên học

Hình 4.10 Usecase dự đoán những môn nên học

KHOA KHOA HỌC VÀ KỸ THUẬT MÁY TÍNH 61

Page 62: KHAI PHÁ LUẬT KẾT HỢP CÁC MÔN HỌC CỦA SINH VIÊN

KHAI PHÁ LUẬT KẾT HỢP CÁC MÔN HỌC CỦA SINH VIÊN

o Người dùng nhập sinh viên cần dự đoán

o Hệ thống sẽ kiểm tra danh sách các môn chưa học của sinh viên

o Kết quả trả về : danh sách các môn nên học cho sinh viên này

Khuyến cáo cụ thể một môn học

Hình 4.11 Usecase khuyến cáo một môn học

o Người dùng nhập môn học và sinh viên cần dự đoán.

o Hệ thống sẽ kiểm tra danh sách các môn học của sinh viên.

o Kết quả trả về: các mức khuyến cáo của môn học

Khuyến cáo nhóm các môn học

KHOA KHOA HỌC VÀ KỸ THUẬT MÁY TÍNH 62

Page 63: KHAI PHÁ LUẬT KẾT HỢP CÁC MÔN HỌC CỦA SINH VIÊN

KHAI PHÁ LUẬT KẾT HỢP CÁC MÔN HỌC CỦA SINH VIÊN

Hình 4.12 Usecase khuyến cáo nhóm các môn học

o Người dùng nhập sinh viên và chọn nhóm môn học cần dự đoán

o Hệ thống tiến hành kiểm tra danh sách các môn học của sinh viên

o Kết quả trả về : mức khuyến cáo cho mỗi môn học.

Phát hiện sinh viên học tập bất thường

Hình 4.13 Usecase phát hiện những sinh viên học tập bất thường

KHOA KHOA HỌC VÀ KỸ THUẬT MÁY TÍNH 63

Page 64: KHAI PHÁ LUẬT KẾT HỢP CÁC MÔN HỌC CỦA SINH VIÊN

KHAI PHÁ LUẬT KẾT HỢP CÁC MÔN HỌC CỦA SINH VIÊN

o Người dùng chọn nhóm sinh viên cần kiểm tra

o Hệ thống sẽ tiến hành kiểm tra kết quả học tập của sinh viên và đối

chiếu với những tập luật và tập thường xuyên đã khai phá được.

o Kết quả trả về : danh sách những sinh viên có kết quả học bất thường.

4.3.2 Lược đồ tuần tự:

Lược đồ tuần tự “Khai phá dữ liệu”:

Chức năng khai phá dữ liệu là một trong những chức năng chính của hệ thống, bao

gồm các 5 bước đầu tiên được minh họa trong hình 4.1. Chức năng này cho phép người

dùng xây dựng nên các tập thường xuyên và luật kết hợp của các môn học dựa trên kết quả

học tập. Khi người dùng chọn chức năng “khai phá dữ liệu” từ trình duyệt, yêu cầu này

được xử lý bởi các phương thức của lớp Controller. Lớp Controller nhận tất cả các yêu cầu

của người dùng trong quá trình khai phá dữ liệu, gởi yêu cầu đến MiningModel để xử lý,

và cuối cùng là chọn view thích hợp để hiển thị kết quả về cho người dùng. MiningModel

thực hiện việc xây dựng các việc khảo sát dữ liệu, xây dựng tập thường xuyên và luật kết

hợp, lưu lại các kết quả khai phá cũng như sử dụng chúng để thực hiện chức năng hỗ trợ ra

quyết định cho người dùng. Lớp InfoView là tập hợp các trang dùng để hiển thị dữ liệu

thích hợp đến người dùng.

Bước đầu tiên trong quá trình khai phá là chọn dữ liệu. Lớp Controller sẽ trả về giao

diện trang web để người dùng có thể lựa chọn tập dữ liệu để khảo sát. Website cung cấp

cho người dùng bốn sự chọn lựa tập dữ liệu, bao gồm Chọn toàn bộ dữ liệu, Chọn dữ liệu

theo khóa, Chọn dữ liệu theo học kỳ và Chọn dữ liệu theo trạng thái học tập. Chọn toàn bộ

dữ liệu sẽ lấy tất cả dữ liệu hiện đang có trong cơ sở dữ liệu. Chọn dữ liệu theo khóa cho

phép người dùng giới hạn được sinh viên thuộc cùng một khóa hoặc nhiều hơn một khóa.

Việc chọn theo khóa học của sinh viên sẽ chọn các đối tượng có cùng đặc điểm về thời

gian cũng như chương trình đào tạo. Hiện tại, cơ sở dữ liệu của hệ thống bao gồm sinh

viên thuộc bốn khóa là 2005, 2006, 2007 và 2008. Chọn dữ liệu theo học kỳ giúp người

dùng chọn lựa học kỳ nào muốn dùng để khai phá. Theo quy chế đăng ký học tín chỉ của

trường đại học Bách Khoa, mỗi sinh viên được học tối đa 13 học kỳ chính, không kể các

học kỳ hè và dự thính. Trạng thái học tập của sinh viên gồm các loại như: đã tốt ngiệp,

cảnh cáo lần 1, cảnh cáo lần 2, buộc thôi học, chưa tốt nghiệp. Chọn dữ liệu theo trạng thái

học tập sẽ giới hạn được số sinh viên trong một phạm vi trạng thái học tập.

KHOA KHOA HỌC VÀ KỸ THUẬT MÁY TÍNH 64

Page 65: KHAI PHÁ LUẬT KẾT HỢP CÁC MÔN HỌC CỦA SINH VIÊN

KHAI PHÁ LUẬT KẾT HỢP CÁC MÔN HỌC CỦA SINH VIÊN

Sau khi người dùng chọn một tập dữ liệu để thực hiện huấn luyện, yêu cầu được gởi

đến lớp Controller. Lớp này tùy thuộc vào yêu cầu người dùng mà gọi phương thức tương

ứng của lớp MiningModel để lấy về tập dữ liệu khai phá. Với tập dữ liệu trả về từ

MiningModel, lớp Controller sẽ chọn view thích hợp từ InfoView, và hệ thống sẽ trả về

trang chứa các giao diện để người dùng có cái nhìn khái quát về tập dữ liệu.

Người dùng có thể chọn chức năng lưu lại các kết quả khai phá mới xây dựng. Lớp

Controller sẽ gọi MiningModel để lưu trữ lại kết quả đã khai phá.

Quá trình “khai phá dữ liệu” được thể hiện trong lược đồ tuần tự ở hình 4.14 dưới

đây:

Hình 4.14 Lược đồ tuần tự khai phá dữ liệu

Lược đồ tuần tự “Khuyến cáo môn học”

Controller nhận và xử lý các yêu cầu của người dùng khi muốn truy cập thông

tin của một hoặc một nhóm sinh viên. StudentModel có nhiệm vụ truy vấn thông tin của

sinh viên từ cơ sở dữ liệu, xử lý các thông tin trả về theo từng yêu cầu cụ thể. Lớp View

bao gồm các trang hiển thị thông tin của sinh viên đến người dùng.

KHOA KHOA HỌC VÀ KỸ THUẬT MÁY TÍNH 65

Page 66: KHAI PHÁ LUẬT KẾT HỢP CÁC MÔN HỌC CỦA SINH VIÊN

KHAI PHÁ LUẬT KẾT HỢP CÁC MÔN HỌC CỦA SINH VIÊN

Khi người dùng chọn chức năng “Khuyến cáo môn học” trong menu Hỗ trợ ra quyết

định từ trình duyệt, yêu cầu này được gởi đến lớp Controller. Tại đây, phương thức tương

ứng xử lý yêu cầu này được gọi. Phương thức này lấy View cho phép người dùng nhập vào

các thông tin của sinh viên để thực hiện việc dự đoán trạng thái, và trang này được trả về

cho người dùng.

Hiện tại, Website cung cấp cho người dùng hai phương thức để thực hiện khuyến cáo

môn học: Khuyến cáo từng môn học và khuyến cáo cho một nhóm môn học. Người dùng

xem khuyến cáo của một môn học bằng cách nhập một mã số môn học cụ thể. Các lớp

môn học được hiển thị dưới dạng drop down list. Dữ liệu được dùng để khuyến cáo là

những thông tin đã khai phá được lưu lại trước đó.

Tùy vào việc người dùng lựa chọn khuyến cáo một môn học hay một nhóm môn học

mà phương thức thích hợp của lớp Controller được thực thi. Nhìn chung, hai phương thức

này thực hiện các công việc giống nhau, chỉ khác nhau ở dữ liệu được lấy từ cơ sở dữ liệu:

Một môn học hay một lớp môn học. Lớp Controller sẽ gởi các thông số về dữ liệu sinh

viên cần lấy để dự đoán đến lớp StudentModel.

Với thông tin sinh viên trả về từ lớp StudentModel, Lớp Controller sẽ chọn view

thích hợp từ lớp View, và hệ thống sẽ trả về trang chứa giao diện để hiển thị kết quả

khuyến cáo môn học cho người dùng.

Quá trình “Khuyến cáo của môn học” được thể hiện trong lược đồ tuần tự ở hình

4.15 dưới đây:

KHOA KHOA HỌC VÀ KỸ THUẬT MÁY TÍNH 66

Page 67: KHAI PHÁ LUẬT KẾT HỢP CÁC MÔN HỌC CỦA SINH VIÊN

KHAI PHÁ LUẬT KẾT HỢP CÁC MÔN HỌC CỦA SINH VIÊN

Hình 4.15 Lược đồ tuần tự khuyến cáo môn học

4.3.2 Hiện thực

Tập dữ liệu học tập của sinh viên Khoa Khoa Học và Kỹ Thuật Máy Tính ban đầu ở

dạng file Excel, bao gồm thông tin chi tiết về sinh viên, điểm của các môn mà sinh viên đã

học từ học kỳ 1 năm 2005 đến học kỳ 1 năm 2009, thông tin chi tiết về các môn học và

trạng thái của sinh viên đến học kỳ 1 năm 2009. Để thuận lợi cho quá trình sử dụng, tập dữ

liệu được chuyển qua lưu trong cơ sở dữ liệu MySQL.

1. Công nghệ hiện thực :

Đề tài không hiện thực lại các giải thuật khai phá luật kết hợp mà dùng các

giải thuật được hiện thực sẵn của thư viện khai phá dữ liệu Weka. Thư viện

Weka được viết bằng Java và website cũng hiện thực bằng công nghệ Java

nên có thể dùng được những thư viện có sẵn của weka cho chương trình.

Website được hiện thực dựa trên công nghệ MVC 2.0, sử dụng ngôn ngữ lập

trình Java và một số mã nguồn mở có sẵn của Java.

Website chạy dựa trên localhost dùng tomcat server. Hệ quản trị cơ sở dữ liệu

là MySQL version 5.5.28.

2. Phân quyền người dùng :

Người dùng gồm có ba nhóm chính :

KHOA KHOA HỌC VÀ KỸ THUẬT MÁY TÍNH 67

Page 68: KHAI PHÁ LUẬT KẾT HỢP CÁC MÔN HỌC CỦA SINH VIÊN

KHAI PHÁ LUẬT KẾT HỢP CÁC MÔN HỌC CỦA SINH VIÊN

a. Người dùng là sinh viên : Chỉ sử dụng được các chức năng hỗ trợ ra

quyết định(Không xem được sinh viên bất thường) và xem kết quả học

tập của sinh viên đó.

b. Người dùng là giáo viên : Sử dụng được toàn bộ chức năng hỗ trợ ra

quyết định, xem kết quả học tập của sinh viên và chức năng khai phá dữ

liệu. Người dùng này được chỉnh sửa dữ liệu khai phá do mình thực hiện.

c. Người dùng quản trị : Sử dụng được toàn bộ chức năng.

3. Hiện thực các chức năng khai phá:

Khai phá dữ liệu:

Thực hiện khai phá như đã trình bày ở mục 4.1.1.

Về việc lưu lại kết quả sau khi khai phá :

Người dùng có thể khai phá nhưng có thể không lưu lại kết quả .

Để giải quyết vấn đề này : kết quả sau khi khai phá sẽ được lưu vào các bảng tạm,

khi người dùng chọn lưu lại kết quả , mới thực hiện việc chuyển dữ liệu từ các bảng tạm

vào bảng chính và thực hiện xóa dữ liệu ở các bảng tạm.

Cách này cũng áp dụng khi người dùng chỉnh sửa dữ liệu khai phá được ( lọc tập luật

kết hợp và tập thường xuyên) : dữ liệu sẽ được chuyển ra các bảng tạm, việc thực hiện

chỉnh sửa dữ liệu của người dùng sẽ được cập nhật trên các bảng này. Khi người dùng thực

hiện lưu lại kết quả: xóa dữ liệu cũ trong bảng chính, chuyển dữ liệu từ bảng tạm vào bảng

chính.

Lọc luật kết hợp: Sau khi khai phá, kết quả thu được là những tập thường xuyên và

tập luật. Những tập luật kết hợp này mới chỉ là kết quả thu được sau khi chạy giải thuật

dựa trên tập dữ liệu các môn học do người dùng chọn. Vì vậy, dựa trên những điều kiện để

lọc luật người dùng có thể xem được những luật chính xác hơn, loại bỏ đi những tập luật

không có ý nghĩa.

a. Lọc theo môn học trước:

Những tập luật có dạng: L R , một tập phần tử vế trái kéo theo một tập phần tử vế

phải. Tập các phần tử ở đây chính là tập các môn học. Kết quả học tập của sinh viên phụ

thuộc vào quá trình đăng ký môn học, do đó thứ tự các môn học của từng sinh viên có thể

khác nhau so với chương trình đào tạo và khác so với những sinh viên khác. Như vậy sẽ có

nhiều luật được tạo ra sau khi khai phá là không hợp lý so với chương trình đào tạo: Môn

học trước ở vế phải và môn học sau ở vế trái của luật kết hợp.

Với mỗi luật L R, ta có mã giả xử lý như sau:

KHOA KHOA HỌC VÀ KỸ THUẬT MÁY TÍNH 68

Page 69: KHAI PHÁ LUẬT KẾT HỢP CÁC MÔN HỌC CỦA SINH VIÊN

KHAI PHÁ LUẬT KẾT HỢP CÁC MÔN HỌC CỦA SINH VIÊN

Một số kỹ thuật làm giảm thời chạy của chương trình:

Với mỗi lần check sẽ lưu lại giá trị trả về hàm check của hai môn học. Với

những lần check sau, nếu vẫn là hai môn học đó thì trả về kết quả ngay mà

không cần kiểm tra tiếp.

Mỗi lần chạy hàm check, thực hiện lấy dữ liệu của hai môn học từ database.

Ở bước này, ta tạo một biến toàn cục lưu lại dữ liệu mỗi môn học. Những lần

kiểm tra sau, có thể lấy trực tiếp mà không cần truy vấn vào database.

b. Lọc theo độ đo (cosine, lift, confidence):

Số luật kết hợp sinh ra nhiều, người dùng có thể thực hiện nhập lại các độ đo để lọc

lại các tập luật, làm cho số tập luật hiển thị ra ít hơn.

c. Lọc theo môn học:

Một số môn học có thể không ảnh hưởng đến những môn học khác hoặc ngược lại.

Người dùng có thể chỉ định những môn học này để thực hiện lọc luật.

Cách thức lọc: Loại bỏ các luật chứa môn học hoặc một nhóm môn học do người

dùng chỉ định.

Khai phá gia tăng:

Ở mỗi lần khai phá của người dùng, hệ thống không những lưu lại kết quả của lần

khai phá đó mà còn lưu lại cả những thông số đầu vào của việc khai phá gồm: những thông

số về dữ liệu và giải thuật.

Chức năng khai phá gia tăng không áp dụng giải thuật FUFP Tree Maintenance mà

chỉ cho phép thêm dữ liệu mới vào và áp dụng một trong hai giải thuật là FP-Growth và

Apriori để khai phá.

Các bước khai phá gia tăng:

Bước 1: Lấy thông tin dữ liệu đầu vào của lần khai phá cũ trong cơ sở dữ liệu.

Bước 2: Cập nhật thêm dữ liệu người dùng thêm vào.

KHOA KHOA HỌC VÀ KỸ THUẬT MÁY TÍNH 69

Page 70: KHAI PHÁ LUẬT KẾT HỢP CÁC MÔN HỌC CỦA SINH VIÊN

KHAI PHÁ LUẬT KẾT HỢP CÁC MÔN HỌC CỦA SINH VIÊN

Bước 3: Tiến hành khai phá và lưu dữ liệu khai phá được như một lần khai phá mới

nhưng vẫn giữ kết quả của lần khai phá cũ.

Lý do không áp dụng giải thuật FUFP Tree Maintenance để khai phá gia tăng:

Lượng dữ liệu học tập của sinh viên là không lớn, thời gian chạy của giải

thuật khai phá gia tăng so với các giải thuật FP-Growth và Apriori là gần như

nhau.

Ngoài ra, khi thực hiện giải thuật khai phá gia tăng thì phải tốn chi phí lưu trữ

cây (từ giải thuật FP-Tree) trong cơ sở dữ liệu.

Thời gian lưu cây vào cơ sở dữ liệu sẽ làm cho quá trình khai phá chạy lâu

hơn so với bình thường.

4. Hiện thực các chức năng hỗ trợ ra quyết định:

Kiểm tra 1 môn học:

Khi người dùng thực hiện việc kiểm tra môn học S cho một sinh viên A.

Các bước trong quá trình kiểm tra như sau:

Bước 1: Từ kết quả học tập của sinh viên A, hệ thống sẽ tìm ra tập môn học đã đậu

và rớt của sinh viên A.

Bước 2: Truy vấn tập luật từ cơ sở dữ liệu.

Bước 3: Thực hiện kiểm tra trên từng luật cho môn học S

Giải thuật kiểm tra:

a. Trường hợp luật đậu : Tập môn học đậu => tập môn học đâu.

b. Trường hợp luật rớt : Tập môn học rớt => Tập môn học rớt:

Giải thuật như trên: Thay tập môn học đậu (passSub) bằng tập môn học rớt của sinh

viên.

Bước 4: Đưa ra quyết định cho môn học S: Dựa vào kết quả chạy của bước 3, tùy

thuộc vào trường hợp đậu hay trường hợp rớt mà đưa ra quyết định môn học S.

KHOA KHOA HỌC VÀ KỸ THUẬT MÁY TÍNH 70

Page 71: KHAI PHÁ LUẬT KẾT HỢP CÁC MÔN HỌC CỦA SINH VIÊN

KHAI PHÁ LUẬT KẾT HỢP CÁC MÔN HỌC CỦA SINH VIÊN

Trường hợp luật liên quan là những luật đậu: Kết luận môn học S là môn nên học.

Trường hợp luật liên quan là những luật rớt: Kết luận môn học S là môn không nên

học.

Trường hợp tập luật liên quan rỗng: Kết luận là không có dữ liệu.

Kiểm tra nhiều môn học:

Tiến hành kiểm tra từng môn học như trên và S bây giờ là một tập các môn học.

Ngoài việc kiểm tra S với các tập luật kết hợp, còn phải kiểm tra S với các tập thường

xuyên.

Truy vấn tập thường xuyên từ cơ sở dữ liệu. Với mỗi tập thường xuyên L kiểm tra

xem S có phải là tập con của L (hay chính là L) hay không. Nếu thỏa mãn, trả về các thông

số của L cho tập môn học S.

Kiểm tra sinh viên bất thường:

Tiến hành kiểm tra một hay một nhóm sinh viên.

Cách kiểm tra:

Bước 1: Chọn tập thường xuyên đậu trong cơ sở dữ liệu

Bước 2: Tìm tập môn học rớt của sinh viên từ kết quả học tập

Bước 3: Kiểm tra tập môn học rớt của sinh viên có thuộc tập thường xuyên đậu hay

không.

Bước 4: Sau bước 3, nếu tập môn học rớt của sinh viên thuộc tập thường xuyên đậu.

Kết luận sinh viên đó bất thường.

4.3.3 Hình ảnh demo

Hình dưới đây là giao diện website demo khi người dùng chọn chức năng khai phá

luật kết hợp

Giao diện cho người dùng chọn dữ liệu được trình bày ở hình 4.16:

Hình 4.16 Giao diện chọn dữ liệu huấn luyện

KHOA KHOA HỌC VÀ KỸ THUẬT MÁY TÍNH 71

Page 72: KHAI PHÁ LUẬT KẾT HỢP CÁC MÔN HỌC CỦA SINH VIÊN

KHAI PHÁ LUẬT KẾT HỢP CÁC MÔN HỌC CỦA SINH VIÊN

Sau khi chọn xong phần dữ liệu, người dùng phải tiếp tục chọn phần giải thuật. Tùy

chọn giải thuật gồm có phần chọn giải thuật, độ hỗ trợ, độ tin cậy, số luật tối đa hiển thị và

loại quan hệ của các môn học là gì.

Giao diện cho người dùng chọn giải thuật được trình bày ở hình 4.17:

Hình 4.17 Giao diện chọn giải thuật khai phá

Sau khi người dùng chọn một tập dữ liệu để thực hiện khai phá và các giải thuật

cùng với các độ đo liên quan, người dùng có thể nhấp vào các chức năng mà mình muốn

thực hiện khai phá. Sau khi người dùng nhấn nút khai phá thì website sẽ tự động chuyển

đến trang hiển thị thông tin sau khi đã khai phá.

Xem thông tin sau khi khai phá được trình bày ở hình 4.18:

KHOA KHOA HỌC VÀ KỸ THUẬT MÁY TÍNH 72

Page 73: KHAI PHÁ LUẬT KẾT HỢP CÁC MÔN HỌC CỦA SINH VIÊN

KHAI PHÁ LUẬT KẾT HỢP CÁC MÔN HỌC CỦA SINH VIÊN

Hình 4.18 Xem thông tin khai phá

Sau khi người dùng thực hiện khai phá, website sẽ hiển thị các thông tin sau khi khai

phá thu được gồm có: xem thông tin tổng quát, xem luật kết hợp, xem tập thường xuyên.

Giao diện hiển thị các phần tử thường xuyên được trình bày ở hình 4.19:

Hình 4.19 Giao diện hiển thị các phần tử thường xuyên

Giao diện tập thường xuyên hiển thị dưới dạng từng hàng trong một bảng, người

dùng có thể chọn vào một hoặc nhiều tập thường xuyên không cần thiết để xóa đi.

KHOA KHOA HỌC VÀ KỸ THUẬT MÁY TÍNH 73

Page 74: KHAI PHÁ LUẬT KẾT HỢP CÁC MÔN HỌC CỦA SINH VIÊN

KHAI PHÁ LUẬT KẾT HỢP CÁC MÔN HỌC CỦA SINH VIÊN

Giao diện hiển thị các luật kết hợp được trình bày ở hình 4.20:

Hình 4.20 Giao diện hiển thị các luật kết hợp

Giao diện luật kết hợp cũng hiển thị dạng bảng, mỗi hàng trong bảng còn có chức

năng hiển thị thông tin chi tiết cho từng luật. Người dùng cũng có thể chọn một hoặc nhiều

luật không cần thiết để xóa đi. Ngoài ra, để hiển thị chính xác hơn, người dùng có thể sử

dụng chức năng lọc luật kết hợp, chức năng này sẽ lọc luật kết hợp theo nhiều loại như: lọc

theo môn học trước, lọc theo độ đo, lọc theo môn học.

Sau khi đã khai phá xong, người dùng có thể chọn lưu lại kết quả khai phá để sử

dụng sau này. Sau khi lưu lại kết quả khai phá, bên phần chức năng khai phá gia tăng sẽ

hiển thị lại các kết quả đã lưu.

Giao diện phần dữ liệu gia tăng ở hình 4.21:

Hình 4.21 Giao diện hiển thị dữ liệu gia tăng

KHOA KHOA HỌC VÀ KỸ THUẬT MÁY TÍNH 74

Page 75: KHAI PHÁ LUẬT KẾT HỢP CÁC MÔN HỌC CỦA SINH VIÊN

KHAI PHÁ LUẬT KẾT HỢP CÁC MÔN HỌC CỦA SINH VIÊN

Giao diện gia tăng sẽ hiển thị lại các kết quả đã khai phá. Người dùng có thể xem lại

thông tin cũ bằng cách nhấp vào button “Xem thông tin” hoặc có thể khai phá tiếp với dữ

liệu mới bằng việc nhấp vào button “Khai phá gia tăng”. Việc khai phá gia tăng sẽ dẫn tới

việc người dùng phải chọn thêm dữ liệu mới và những thông số gần giống với phần tùy

chọn dữ liệu ban đầu của việc khai phá.

Mục đích sau cùng của việc sử dụng các luật kết hợp và tập thường xuyên chính là

xây dựng các chức năng hỗ trợ ra quyết định. Người dùng có thể sử dụng những chức năng

này bằng cách nhấp vào menu Hỗ trợ ra quyết định.

Có nhiều chức năng hỗ trợ ra quyết định, mỗi chức năng ứng với mỗi giao diện khác

nhau của website.

Giao diện phần chức năng kiểm tra môn học ở hình 4.22 – 4.25:

Hình 4.22 Giao diện bước 1 chức năng kiểm tra môn học

Hình 4.23 Giao diện bước 2 chức năng kiểm tra môn học

KHOA KHOA HỌC VÀ KỸ THUẬT MÁY TÍNH 75

Page 76: KHAI PHÁ LUẬT KẾT HỢP CÁC MÔN HỌC CỦA SINH VIÊN

KHAI PHÁ LUẬT KẾT HỢP CÁC MÔN HỌC CỦA SINH VIÊN

Hình 4.24 Giao diện bước 3 chức năng kiểm tra môn học

Hình 4.25 Giao diện bước 4 chức năng kiểm tra môn học

Để thực hiện chức năng kiểm tra môn học, người dùng cần thực hiện các bước như

trên. Đầu tiên, người dùng phải nhập mã số một môn học rồi nhấn vào button Thêm môn

học. Sau khi đã có môn học, người dùng có thể thực hiện chức năng kiểm tra môn học đó

và kết quả trả về là một lời khuyên đối với môn học đó. Người dùng cũng có thể xem chi

tiết những lý giải vì sao có được kết quả như vậy bằng cách nhấn vào link Xem lý do để

xem thông tin.

Giao diện phần chức năng xem môn nên học ở hình 4.25:

KHOA KHOA HỌC VÀ KỸ THUẬT MÁY TÍNH 76

Page 77: KHAI PHÁ LUẬT KẾT HỢP CÁC MÔN HỌC CỦA SINH VIÊN

KHAI PHÁ LUẬT KẾT HỢP CÁC MÔN HỌC CỦA SINH VIÊN

Hình 4.26 Chức năng xem môn học

Sau khi thực hiện chức năng xem môn nên học, kết quả trả về sẽ là tập các môn có tỉ

lệ đậu cao. Người dùng còn có thể xem thêm những lý giải vì sao lại có môn học đó bằng

việc nhấp vào link Xem lý do ở bên phải mỗi hàng chứa môn học.

Chức năng khuyến cáo môn học ở hình 4.27 – 4.28:

Hình 4.27 Giao diện bước 1 chức năng khuyến cáo môn học

Hình 4.28 Giao diện bước 2 chức năng khuyến cáo môn học

KHOA KHOA HỌC VÀ KỸ THUẬT MÁY TÍNH 77

Page 78: KHAI PHÁ LUẬT KẾT HỢP CÁC MÔN HỌC CỦA SINH VIÊN

KHAI PHÁ LUẬT KẾT HỢP CÁC MÔN HỌC CỦA SINH VIÊN

Đối với chức năng khuyến cáo môn học, người dùng có thể chọn một hoặc nhiều

môn học để xử lý, kết quả của quá trình xử lý này là những mức khuyến cáo đối với các

môn học đó. Người dùng còn có thể xem thêm những lý giải vì sao lại có mức khuyến cáo

đó bằng việc nhấp vào link Xem lý do ở bên phải mỗi hàng chứa môn học.

Ngoài những chức năng khai phá dữ liệu và hỗ trợ ra quyết định, hệ thống còn cung

cấp các chức năng cho phép người dùng xem tỉ lệ đậu rớt của một môn học cụ thể bằng

dạng biểu đồ. Chức năng xem tỉ lệ đậu rớt của môn học được thể hiện trong hình 4.29 dưới

đây:

Hình 4.29 Xem tỉ lệ đậu rớt của môn học.

Người dùng có thể xem lại kết quả học tập của mình bằng dạng biểu đồ được thể

hiện trong hình 4.30 dưới đây:

Hình 4.30 Xem tỉ lệ đậu rớt của môn học.

KHOA KHOA HỌC VÀ KỸ THUẬT MÁY TÍNH 78

Page 79: KHAI PHÁ LUẬT KẾT HỢP CÁC MÔN HỌC CỦA SINH VIÊN

KHAI PHÁ LUẬT KẾT HỢP CÁC MÔN HỌC CỦA SINH VIÊN

Dựa vào biểu đồ dạng line chart hiển thị kết quả học tập, sinh viên có thể nhìn lại

quá trình học tập của mình một cách tổng quát. Dựa vào đó, sinh viên có thể xác định mục

tiêu cho việc học tập của mình tốt hơn.

Ngoài ra, người dùng còn có thể xem trạng thái học tập của toàn thể sinh viên của

cùng một khóa. Giao diện chức năng xem trạng thái học tập được thể hiện trong hình 4.31

và 4.32 dưới đây:

Hình 4.31 Trạng thái học tập thể hiện dạng pie chart.

Hình 4.32 Trạng thái học tập thể hiện dạng bar chart.

Kết quả các trạng thái học tập của sinh viên hiển thị dưới dạng biểu đồ như trên. Dựa

vào đó người dùng sẽ biết được tỉ lệ các trạng thái học tập của sinh viên. Các trạng thái

học tập bao gồm: Chưa tốt nghiệp, cảnh cáo lần 1, cảnh cáo lần 2, buộc thôi học, tốt

nghiệp.

KHOA KHOA HỌC VÀ KỸ THUẬT MÁY TÍNH 79

Page 80: KHAI PHÁ LUẬT KẾT HỢP CÁC MÔN HỌC CỦA SINH VIÊN

KHAI PHÁ LUẬT KẾT HỢP CÁC MÔN HỌC CỦA SINH VIÊN

Chương 5: Kết luận

5.1 Đánh giá kết quả đạt được

5.1.1 Đối với các giải thuật khai phá:

Đầu tiên, các giải thuật khai phá luật kết hợp được chạy với tập dữ liệu chỉ gồm điểm

của tất cả sinh viên. Sau đó, phương pháp gia tăng được sử dụng để chạy lại dữ liệu khi có

nhiều tập dữ liệu mới được thêm vào.

Bảng dưới đây mô tả kết quả chạy ra kết quả của hai giải thuật Apriori và FP-Growth

từ dữ liệu học tập của khóa học 2005 với độ hỗ trợ là 0.03

Các thông số so sánh Giải thuật Apriori Giải thuật FP-Growth

Độ hỗ trợ0.03000000000000002

70.03

Độ tin cậy 0.9 0.9

Số tập giao dịch 382 382

Số thuộc tính 273 273

Số luật tạo ra 7 7

Số item tối đa trong tập thường

xuyên4 4

Số tập thường xuyên có 1 item 8 8

Số tập thường xuyên có 2 item 17 17

Số tập thường xuyên có 3 item 16 16

Số tập thường xuyên có 4 item 4 4

Thời gian chạy 193ms 50ms

Bảng 5.1 Kết quả so sánh Apriori và FP-Growth của dữ liệu HK3 khóa 2005

Kết quả của hai giải thuật Apriori và FP-Growth từ dữ liệu học tập của khóa học

2006 với độ hỗ trợ là 0.05

KHOA KHOA HỌC VÀ KỸ THUẬT MÁY TÍNH 80

Page 81: KHAI PHÁ LUẬT KẾT HỢP CÁC MÔN HỌC CỦA SINH VIÊN

KHAI PHÁ LUẬT KẾT HỢP CÁC MÔN HỌC CỦA SINH VIÊN

Các thông số so sánh Giải thuật Apriori Giải thuật FP-Growth

Độ hỗ trợ0.0499999999999999

90.05

Độ tin cậy 0.9 0.9

Số tập giao dịch 342 342

Số thuộc tính 273 273

Số luật tạo ra 28 28

Số item tối đa trong tập thường

xuyên4 4

Số tập thường xuyên có 1 item 10 10

Số tập thường xuyên có 2 item 18 18

Số tập thường xuyên có 3 item 10 10

Số tập thường xuyên có 4 item 1 1

Thời gian chạy 231ms 151ms

Bảng 5.2 Kết quả so sánh Apriori và FP-Growth của dữ liệu HK1 khóa 2006

Dựa vào kết quả so sánh về hai giải thuật Apriori và FP-Growth của các tập dữ liệu

HK3 khóa 2005, HK1 khóa 2006 thì có thể cho thấy được kết quả của hai giải thuật chạy

là như nhau về số luật tạo ra, số tập thường xuyên tạo ra, số items, chỉ có thời gian chạy là

khác nhau. Giải thuật Apriori thời gian chạy là 231ms còn giải thuật FP-Growth là 151ms.

Kết quả của hai giải thuật khai phá gia tăng (FUFP) và FP-Growth từ dữ liệu học tập

của khóa học 2005 và 2006(được thêm vào) với độ hỗ trợ là 0.02

KHOA KHOA HỌC VÀ KỸ THUẬT MÁY TÍNH 81

Page 82: KHAI PHÁ LUẬT KẾT HỢP CÁC MÔN HỌC CỦA SINH VIÊN

KHAI PHÁ LUẬT KẾT HỢP CÁC MÔN HỌC CỦA SINH VIÊN

Các thông số so sánh Giải thuật FUFP Giải thuật FP-Growth

Độ hỗ trợ 0.02 0.02

Độ tin cậy 0.9 0.9

Số tập giao dịch 724 724

Số thuộc tính 273 273

Số luật tạo ra 67 67

Số item tối đa trong tập thường

xuyên4 4

Số tập thường xuyên có 1 item 17 17

Số tập thường xuyên có 2 item 44 44

Số tập thường xuyên có 3 item 31 31

Số tập thường xuyên có 4 item 6 6

Thời gian chạy 52ms 55ms

KHOA KHOA HỌC VÀ KỸ THUẬT MÁY TÍNH 82

Page 83: KHAI PHÁ LUẬT KẾT HỢP CÁC MÔN HỌC CỦA SINH VIÊN

KHAI PHÁ LUẬT KẾT HỢP CÁC MÔN HỌC CỦA SINH VIÊN

Bảng 5.3 Kết quả so sánh FUFP và FP-Growth của dữ liệu HK1 khóa 2006

Kết quả so sánh trên cho thấy được kết của của việc chạy giải thuật FUFP và FP-

Growth là hoàn toàn giống nhau, thời gian chạy cũng gần bằng nhau. Chính vì điều này

nên việc lựa chọn giải thuật để khai phá gia tăng là một trong hai giải thuật trên đều có thể

được đối với dữ liệu học tập của sinh viên khoa Khoa Học và Kỹ Thuật Máy Tính.

5.1.2 Đối với yêu cầu của đề tài:

Hiện tại, nhóm đã đạt được những mục tiêu như sau:

Tìm hiểu bài toán phân tích luật kết hợp với các giải thuật Apriori, FP-

Growth và giải thuật gia tăng (FUFP-tree maintenance). Bên cạnh đó, đề tài

cũng đã thực hiện viết lại giải thuật gia tăng dựa trên giải thuật FP-Growth

của Weka .

Khảo sát và thực hiện các giải thuật khai phá luật kết hợp và giải thuật gia

tăng trên tập dữ liệu học tập của sinh viên khoa Khoa Học và Kỹ Thuật Máy

tính. Qua đó xác thực lại tính đúng đắn của các giải thuật.

Đã ứng dụng được các giải thuật luật kết hợp để khai phá dữ liệu thực tế đối

với điểm số sinh viên. Kết quả của quá trình khai phá là các tập thường xuyên

và luật kết hợp của các môn học.

Xây dựng được một website hỗ trợ người dùng trong việc khai phá dữ liệu

học tập của sinh viên và ứng dụng những kết quả khai phá cho việc ra quyết

định trong giáo dục.

5.2 Hướng phát triển

Tiếp tục nghiên cứu các phương pháp khai phá luật kết hợp cũng như cải tiến thời

gian chạy của các giải thuật hiện tại.

Cải tiến phương pháp để phát hiện những trường hợp bất thường trong học tập và

đưa ra những cảnh báo cần thiết.

Chức năng nạp dữ liệu đang được sử dụng một cách độc lập nên để thuận tiện cho

người dùng, chức năng này sẽ được tích hợp vào hệ thống website đang có.

KHOA KHOA HỌC VÀ KỸ THUẬT MÁY TÍNH 83

Page 84: KHAI PHÁ LUẬT KẾT HỢP CÁC MÔN HỌC CỦA SINH VIÊN

KHAI PHÁ LUẬT KẾT HỢP CÁC MÔN HỌC CỦA SINH VIÊN

Tài liệu tham khảo

[1] Incrementally fast updated frequent pattern trees by Tzung-Pei Hong, Chun-Wei

Lin, Yu-Lung Wu, 2008

[2] Fast Algorithms for Mining Asso ciation Rules by Rakesh Agrawal,

Ramakrishnan Srikant, 1994

[3] The Pre-FUFP algorithm for incremental mining 2009 by Chun-Wei Lin, Tzung-

Pei Hong, Wen-Hsiang Lu

[4] Các slide khai phá dữ liệu được biên soạn bởi Nguyễn Nhật Quang (trương ĐH

bách khoa Hà Nội), năm học 2009 – 2010.

[5] Weka: “Weka Manual”, 12/2010.

[6] http://weka.sourceforge.net/doc/ , 04/2012

[7] http://www.cs.utexas.edu/users/ml/tutorials/Weka-tut/ , 04/2012

[8] http://www.docstoc.com/docs/2144199/WEKA-Tutorial , 04/2012

[9] http://bis.net.vn/forums/36.aspx , 04/2012

[10] Do-an-tot-nghiep-2011-Nghien-cuu-mo-hinh-MVC-trong-lap-trinh-NET:

http://2mit.org/forum/threads/18437-Do-an-tot-nghiep-2011-Nghien-cuu-mo-hinh-

MVC- trong-lap-trinh-NET ,05/2012

[11] Luận văn tốt nghiệp của sinh viên khóa 2007 về phân lớp sinh viên dựa trên kết

quả học tập năm 2011

[12] http://bis.net.vn/forums/p/384/675.aspx#675 , 05/2012

[13] Data mining concepts and techniques, second edition by Jiawei Han and

Micheline Kamber, 2006

KHOA KHOA HỌC VÀ KỸ THUẬT MÁY TÍNH 84