khai phÁ luẬt kẾt hỢp cÁc mÔn hỌc cỦa sinh viÊn
DESCRIPTION
TRANSCRIPT
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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