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ô...
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ị...
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 đã ma...
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 t...
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 technolog...
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
pr...
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........................................................
KHAI PHÁ LUẬT KẾT HỢP CÁC MÔN HỌC CỦA SINH VIÊN
2.4 Giải thuật khai phá luật kết hợp gia tăng................................
KHAI PHÁ LUẬT KẾT HỢP CÁC MÔN HỌC CỦA SINH VIÊN
4.1.3 Các bước thực hiện khai phá trong hê thống.............................
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...
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.............................
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 mai...
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 t...
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 ...
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ụ...
KHAI PHÁ LUẬT KẾT HỢP CÁC MÔN HỌC CỦA SINH VIÊN
•

Dữ liệu cũng có thể được đọc vào từ một địa chỉ URL, hoặc từ một CSDL
t...
KHAI PHÁ LUẬT KẾT HỢP CÁC MÔN HỌC CỦA SINH VIÊN
Input: cơ sở dữ liệu D ,min_sup
Output: các tập mẫu thường xuyên trong D.
...
KHAI PHÁ LUẬT KẾT HỢP CÁC MÔN HỌC CỦA SINH VIÊN
Cả 2 đều sinh ra tập dữ tuyển như nhau
Apriori thực hiện việc kiểm tra với...
KHAI PHÁ LUẬT KẾT HỢP CÁC MÔN HỌC CỦA SINH VIÊN
2.3.1 Ý tưởng giải thuật
Mở rộng của cấu trúc cây prefix (prefix tree), đư...
KHAI PHÁ LUẬT KẾT HỢP CÁC MÔN HỌC CỦA SINH VIÊN
(ở đó 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 du...
KHAI PHÁ LUẬT KẾT HỢP CÁC MÔN HỌC CỦA SINH VIÊN
Sinh ra β:= ai ∪α với support=ai.count;
Xây dựng cơ sở mẫu phụ thuộc của β...
KHAI PHÁ LUẬT KẾT HỢP CÁC MÔN HỌC CỦA SINH VIÊN

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

Hình 2....
KHAI PHÁ LUẬT KẾT HỢP CÁC MÔN HỌC CỦA SINH VIÊN
a. SU(I) = SD(I) + ST(I)
b. Cập nhập count của I trong Header-Table thành ...
KHAI PHÁ LUẬT KẾT HỢP CÁC MÔN HỌC CỦA SINH VIÊN
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 ...
KHAI PHÁ LUẬT KẾT HỢP CÁC MÔN HỌC CỦA SINH VIÊN
significanceLevel: Mức ý nghĩa (chỉ dùng khi metricType là confidence).
up...
KHAI PHÁ LUẬT KẾT HỢP CÁC MÔN HỌC CỦA SINH VIÊN
ID

milk

bread

butter

Beer

1
2
3
4

1
0
0
1

1
0
0
1

0
1
0
1

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

0

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

Confidence (độ tin cậy): là...
KHAI PHÁ LUẬT KẾT HỢP CÁC MÔN HỌC CỦA SINH VIÊN
Conviction của luật kết hợp X=>Y được định nghĩa như sau:

Với cơ sở dữ li...
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 ...
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 c...
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 c...
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 tron...
KHAI PHÁ LUẬT KẾT HỢP CÁC MÔN HỌC CỦA SINH VIÊN

Điểm số
>= 5
<5
11
12
13
14
15
16
17
18

Điểm chữ
F
M
F
I
Z
X
R
H

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

TID
1
2
3
4
5
6
7
8
9
10

MSSV
Items
50503660
001021,004008,006039
505036...
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
{004...
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 ...
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...
KHAI PHÁ LUẬT KẾT HỢP CÁC MÔN HỌC CỦA SINH VIÊN

No.
1
2
3
4
5
6

MSSV
items
50503636
001021, 004008
50503600
004008, 0080...
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ự...
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 200...
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 đ...
KHAI PHÁ LUẬT KẾT HỢP CÁC MÔN HỌC CỦA SINH VIÊN
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 ...
KHAI PHÁ LUẬT KẾT HỢP CÁC MÔN HỌC CỦA SINH 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 đó...
KHAI PHÁ LUẬT KẾT HỢP CÁC MÔN HỌC CỦA SINH VIÊN
•

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
...
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Ỹ TH...
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ữ...
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...
KHAI PHÁ LUẬT KẾT HỢP CÁC MÔN HỌC CỦA SINH VIÊN
h. Giai đoạn hỗ trợ ra quyết định: Giai đoạn hỗ trợ ra quyết định là áp dụ...
KHAI PHÁ LUẬT KẾT HỢP CÁC MÔN HỌC CỦA SINH VIÊN
Mô hình Model – View – Controller (MVC) là kiến trúc phần mềm được sử dụng...
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...
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 ...
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...
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,...
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 p...
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 ...
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...
KHAI PHÁ LUẬT KẾT HỢP CÁC MÔN HỌC CỦA SINH VIÊN
4.3 Phát triển hệ thống
4.3.1 Lược đồ Usecase

Hình 4.7 Lược đồ usecase
Đặ...
KHAI PHÁ LUẬT KẾT HỢP CÁC MÔN HỌC CỦA SINH VIÊN
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ề...
KHAI PHÁ LUẬT KẾT HỢP CÁC MÔN HỌC CỦA SINH VIÊ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 ...
KHAI PHÁ LUẬT KẾT HỢP CÁC MÔN HỌC CỦA SINH VIÊN
KHAI PHÁ LUẬT KẾT HỢP CÁC MÔN HỌC CỦA SINH VIÊN
KHAI PHÁ LUẬT KẾT HỢP CÁC MÔN HỌC CỦA SINH VIÊN
KHAI PHÁ LUẬT KẾT HỢP CÁC MÔN HỌC CỦA SINH VIÊN
KHAI PHÁ LUẬT KẾT HỢP CÁC MÔN HỌC CỦA SINH VIÊN
KHAI PHÁ LUẬT KẾT HỢP CÁC MÔN HỌC CỦA SINH VIÊN
KHAI PHÁ LUẬT KẾT HỢP CÁC MÔN HỌC CỦA SINH VIÊN
KHAI PHÁ LUẬT KẾT HỢP CÁC MÔN HỌC CỦA SINH VIÊN
KHAI PHÁ LUẬT KẾT HỢP CÁC MÔN HỌC CỦA SINH VIÊN
KHAI PHÁ LUẬT KẾT HỢP CÁC MÔN HỌC CỦA SINH VIÊN
KHAI PHÁ LUẬT KẾT HỢP CÁC MÔN HỌC CỦA SINH VIÊN
KHAI PHÁ LUẬT KẾT HỢP CÁC MÔN HỌC CỦA SINH VIÊN
KHAI PHÁ LUẬT KẾT HỢP CÁC MÔN HỌC CỦA SINH VIÊN
KHAI PHÁ LUẬT KẾT HỢP CÁC MÔN HỌC CỦA SINH VIÊN
KHAI PHÁ LUẬT KẾT HỢP CÁC MÔN HỌC CỦA SINH VIÊN
KHAI PHÁ LUẬT KẾT HỢP CÁC MÔN HỌC CỦA SINH VIÊN
KHAI PHÁ LUẬT KẾT HỢP CÁC MÔN HỌC CỦA SINH VIÊN
KHAI PHÁ LUẬT KẾT HỢP CÁC MÔN HỌC CỦA SINH VIÊN
KHAI PHÁ LUẬT KẾT HỢP CÁC MÔN HỌC CỦA SINH VIÊN
KHAI PHÁ LUẬT KẾT HỢP CÁC MÔN HỌC CỦA SINH VIÊN
KHAI PHÁ LUẬT KẾT HỢP CÁC MÔN HỌC CỦA SINH VIÊN
KHAI PHÁ LUẬT KẾT HỢP CÁC MÔN HỌC CỦA SINH VIÊN
KHAI PHÁ LUẬT KẾT HỢP CÁC MÔN HỌC CỦA SINH VIÊN
KHAI PHÁ LUẬT KẾT HỢP CÁC MÔN HỌC CỦA SINH VIÊN
KHAI PHÁ LUẬT KẾT HỢP CÁC MÔN HỌC CỦA SINH VIÊN
KHAI PHÁ LUẬT KẾT HỢP CÁC MÔN HỌC CỦA SINH VIÊN
KHAI PHÁ LUẬT KẾT HỢP CÁC MÔN HỌC CỦA SINH VIÊN
Upcoming SlideShare
Loading in...5
×

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

2,806

Published on

apriori and fp growth; apriori; fp growth

Published in: Technology
0 Comments
4 Likes
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total Views
2,806
On Slideshare
0
From Embeds
0
Number of Embeds
0
Actions
Shares
0
Downloads
163
Comments
0
Likes
4
Embeds 0
No embeds

No notes for slide

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

  1. 1. 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
  2. 2. 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
  3. 3. 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
  4. 4. 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
  5. 5. 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
  6. 6. 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 FPGrowth.Thus, the goal of this project is to survey and application of Apriori and FPGrowth 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
  7. 7. 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...................................................................................................11 Các ký hiệu.........................................................................................................12 Chương 1: Giới thiệu.................................................................................................13 1.1 Tổng quan đề tài................................................................................................13 1.2 Mục tiêu............................................................................................................14 1.3 Phạm vi.............................................................................................................14 Chương 2: Khảo sát các giải thuật khai phá..............................................................15 2.1 Giới thiệu weka.................................................................................................15 2.1.1 Giới thiệu....................................................................................................15 2.1.2 Các giải thuật khai phá luật kết hợp được hỗ trợ trong weka....................16 2.2 Giải thuật Apriori..............................................................................................16 2.2.1 Chi tiết giải thuật........................................................................................16 2.2.2 Khuyết điểm...............................................................................................18 2.2.3 Cải tiến giải thuật Apriori...........................................................................18 2.3 Giải thuật FPGrowth.........................................................................................18 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......................................................................................19 2.3.4 Giải thuật FP-Growth.................................................................................20 2.3.5 Đánh giá giải thuật.....................................................................................21 KHOA KHOA HỌC VÀ KỸ THUẬT MÁY TÍNH 7
  8. 8. KHAI PHÁ LUẬT KẾT HỢP CÁC MÔN HỌC CỦA SINH VIÊN 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 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ợ....................................................................................................25 2.5.3 Độ tin cậy...................................................................................................25 2.5.4 Tham số metricType...................................................................................25 2.5.5 Độ đo cosine...............................................................................................28 2.5.6 Sử dụng các tham số trong đề tài:..............................................................28 Chương 3: Thực hiện khai phá trên tập dữ liệu sinh viên.........................................29 3.1 Khảo sát tập dữ liệu học tập sinh viên..............................................................29 3.2 Thực hiện các giải thuật với tập dữ liệu sinh viên............................................33 3.2.1 Thực hiện giải thuật Apriori.......................................................................33 3.2.2 Thực hiện giải thuật FP-Growth.................................................................36 3.2.3 Thực hiện giải thuật khai phá gia tăng(FUFP tree maintenance)...............37 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..........................39 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..............................................................................................................39 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.......................................................................................................39 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............................................40 Chương 4: Xây dựng hệ thống..................................................................................41 4.1 Giới thiệu hệ thống............................................................................................41 4.1.1 Chức năng khảo sát và khai phá dữ liệu.....................................................41 4.1.2 Chức năng hỗ trợ ra quyết định..................................................................42 KHOA KHOA HỌC VÀ KỸ THUẬT MÁY TÍNH 8
  9. 9. KHAI PHÁ LUẬT KẾT HỢP CÁC MÔN HỌC CỦA SINH VIÊN 4.1.3 Các bước thực hiện khai phá trong hê thống..............................................44 4.2 Kiến trúc hệ thống.............................................................................................48 4.2.1 Mô hình Model – View – Controller (MVC) [11].....................................48 4.2.2 Kiến trúc hệ thống [12]..............................................................................50 4.3 Phát triển hệ thống............................................................................................57 4.3.1 Lược đồ Usecase........................................................................................57 4.3.2 Lược đồ tuần tự:.........................................................................................65 4.3.2 Hiện thực....................................................................................................68 4.3.3 Hình ảnh demo...........................................................................................73 Chương 5: Kết luận....................................................................................................81 5.1 Đánh giá kết quả đạt được.................................................................................81 5.1.1 Đối với các giải thuật khai phá:..................................................................81 5.1.2 Đối với yêu cầu của đề tài:.........................................................................85 5.2 Hướng phát triển...............................................................................................85 Tài liệu tham khảo.....................................................................................................86 KHOA KHOA HỌC VÀ KỸ THUẬT MÁY TÍNH 9
  10. 10. 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].............................................................................22 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].....................................................................24 KHOA KHOA HỌC VÀ KỸ THUẬT MÁY TÍNH 10
  11. 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...........................................................................27 KHOA KHOA HỌC VÀ KỸ THUẬT MÁY TÍNH 11
  12. 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 FUFPtree Rescan_Items : tập các item trong giao dịch cũ được tái xử lý để cập nhật FUFPtree 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 12
  13. 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 13
  14. 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, FPGrowth 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 14
  15. 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, ... KHOA KHOA HỌC VÀ KỸ THUẬT MÁY TÍNH 15
  16. 16. KHAI PHÁ LUẬT KẾT HỢP CÁC MÔN HỌC CỦA SINH VIÊN • 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) • 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) KHOA KHOA HỌC VÀ KỸ THUẬT MÁY TÍNH 16
  17. 17. KHAI PHÁ LUẬT KẾT HỢP CÁC MÔN HỌC CỦA SINH VIÊN 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 } 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 : KHOA KHOA HỌC VÀ KỸ THUẬT MÁY TÍNH 17
  18. 18. KHAI PHÁ LUẬT KẾT HỢP CÁC MÔN HỌC CỦA SINH VIÊN 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. 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 KHOA KHOA HỌC VÀ KỸ THUẬT MÁY TÍNH 18
  19. 19. KHAI PHÁ LUẬT KẾT HỢP CÁC MÔN HỌC CỦA SINH VIÊN 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-andconquer 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. • 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) KHOA KHOA HỌC VÀ KỸ THUẬT MÁY TÍNH 19
  20. 20. KHAI PHÁ LUẬT KẾT HỢP CÁC MÔN HỌC CỦA SINH VIÊN (ở đó 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 β; Ngược lại: với mỗi mục ai trong header table của Tree{ KHOA KHOA HỌC VÀ KỸ THUẬT MÁY TÍNH 20
  21. 21. KHAI PHÁ LUẬT KẾT HỢP CÁC MÔN HỌC CỦA SINH VIÊN 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 KHOA KHOA HỌC VÀ KỸ THUẬT MÁY TÍNH 21
  22. 22. KHAI PHÁ LUẬT KẾT HỢP CÁC MÔN HỌC CỦA SINH VIÊN Hình 2.1 trường hợp khi dữ liệu mới được thêm vào dữ liệu cũ [1] 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. KHOA KHOA HỌC VÀ KỸ THUẬT MÁY TÍNH 22
  23. 23. KHAI PHÁ LUẬT KẾT HỢP CÁC MÔN HỌC CỦA SINH VIÊN 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) 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 FPGrowth,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 KHOA KHOA HỌC VÀ KỸ THUẬT MÁY TÍNH 23
  24. 24. KHAI PHÁ LUẬT KẾT HỢP CÁC MÔN HỌC CỦA SINH VIÊN 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] 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. KHOA KHOA HỌC VÀ KỸ THUẬT MÁY TÍNH 24
  25. 25. KHAI PHÁ LUẬT KẾT HỢP CÁC MÔN HỌC CỦA SINH VIÊN 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 Độ 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 : KHOA KHOA HỌC VÀ KỸ THUẬT MÁY TÍNH 25
  26. 26. KHAI PHÁ LUẬT KẾT HỢP CÁC MÔN HỌC CỦA SINH VIÊN ID milk bread butter Beer 1 2 3 4 1 0 0 1 1 0 0 1 0 1 0 1 0 0 1 0 KHOA KHOA HỌC VÀ KỸ THUẬT MÁY TÍNH 26
  27. 27. KHAI PHÁ LUẬT KẾT HỢP CÁC MÔN HỌC CỦA SINH VIÊN 5 0 1 0 0 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 X  Y 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). KHOA KHOA HỌC VÀ KỸ THUẬT MÁY TÍNH 27
  28. 28. KHAI PHÁ LUẬT KẾT HỢP CÁC MÔN HỌC CỦA SINH VIÊN Conviction 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ó 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 28
  29. 29. 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 6.1 7.5 … 5.6 NMĐT 8.6 9.5 … 4.6 HĐH 9.0 6.7 … 6.7 CSDL 5.5 8.9 … 5.4 … … … … … Tự chọn 1 Tự chọn 2 6.4 5.5 9.1 … … 3.5 KHOA KHOA HỌC VÀ KỸ THUẬT MÁY TÍNH Kết quả TN CTN … CC1 29
  30. 30. 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 6.1 7.5 … 5.6 NMĐT 8.6 9.5 … 4.6 HĐH 9.0 6.7 … 6.7 CSDL 5.5 8.9 … 5.4 … … … … … Tự chọn 1 6.4 NULL … 3.5 KHOA KHOA HỌC VÀ KỸ THUẬT MÁY TÍNH Tự chọn 2 4.5 9.1 … NULL Kết quả CTN CTN … CC1 30
  31. 31. 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 Đậu Thang điểm 10 điểm >= 5.0 Rớt điểm < 5.0 KHOA KHOA HỌC VÀ KỸ THUẬT MÁY TÍNH 31
  32. 32. 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ố 11 12 13 14 15 16 17 18 Điểm chữ F M F I Z X Ý nghĩa – tên điểm Cấm thi Miễn thi Vắng thi không phép Vắng thi có phép Chưa nhận điểm Miễn học Ghi chú Tính như điểm 0 Ghi chú tạm trong bảng điểm Tính như điểm 0 Tính chưa tích lũy Ghi chú tạm thời Tích lũy, ghi trong mục bảo lưu và R H không tính vào ĐTBHK Rút môn học Không tính điểm 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 32
  33. 33. KHAI PHÁ LUẬT KẾT HỢP CÁC MÔN HỌC CỦA SINH VIÊN Điểm số >= 5 <5 11 12 13 14 15 16 17 18 Điểm chữ F M F I Z X R H Ý nghĩa – tên điểm Điểm sau khi đã quy đổi Đậu Rớt Cấm thi Rớt Miễn thi Không xét Vắng thi không phép Rớt Vắng thi có phép Không xét Chưa nhận điểm Ghi chú tạm thời Miễn học Không xét Rút môn học Không xét 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 Apriori 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 33
  34. 34. KHAI PHÁ LUẬT KẾT HỢP CÁC MÔN HỌC CỦA SINH VIÊN TID 1 2 3 4 5 6 7 8 9 10 MSSV Items 50503660 001021,004008,006039 50503647 004008,005005,008001 50503636 004008,004009,006038 50503625 001021,004008,005005 50503600 001021,004009 50503591 004008,004009 50503566 001021,004009 50503562 001021,004008,004009,006039 50503543 001021,004008,004009 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 34
  35. 35. 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 {004008,001021,004009} {004008,001021,006039} Count 2 2 KHOA KHOA HỌC VÀ KỸ THUẬT MÁY TÍNH 35
  36. 36. 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 {{004008: 4}} {004008: 4} {004008, 001021: 4} 1 00400 {{001021,004008:2}{004008:2} {004008:4,001021:2} {004008,004009:4},{001021,004009:4}, 9 00500 {001021:2}} {001021:2} {{001021,004008:1}{004008:1}} {004008:2} {004008,001021,004009:2} {004008, 005005: 2} 5 00603 {{001021, 004008:1} {001021, 006039: 2}, {004008, 9 {001021, 004008, 004009: 1}} {001021, 004008: 2} KHOA KHOA HỌC VÀ KỸ THUẬT MÁY TÍNH 006039:2},{001021,004008, 006039: 2} 36
  37. 37. 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 37
  38. 38. KHAI PHÁ LUẬT KẾT HỢP CÁC MÔN HỌC CỦA SINH VIÊN No. 1 2 3 4 5 6 MSSV items 50503636 001021, 004008 50503600 004008, 008001, 004009 50503591 001021, 006038 50503583 004008, 006038, 005005 50503562 001021, 006038, 007014 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 {{004008: 5}} {004008: 5} {004008, 001021: 5} 1 00400 {{004008:3}{001021, 004008:2} {004008:5} {004008,004009:5},{001021,004009:4}, 9 00603 {001021:2}} {{004009, 004008: 1} {001021:4} 8 {004008: 1} {001021: 2}} KHOA KHOA HỌC VÀ KỸ THUẬT MÁY TÍNH 38
  39. 39. 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ố Độ hỗ trợ Độ tin cậy Số tập giao dịch Số thuộc tính Số luật tạo ra Số item tối đa trong tập thường Giải thuật Apriori 0.04999999999999999 0.9 342 273 28 4 xuyên 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 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ố Độ hỗ trợ Độ tin cậy Số tập giao dịch Số thuộc tính Số luật tạo ra Số item tối đa trong tập thường xuyên Số tập thường xuyên có 1 item Số tập thường xuyên có 2 item Số tập thường xuyên có 3 item Số tập thường xuyên có 4 item Thời gian chạy Giải thuật FP-Growth 0.05 0.9 342 273 28 4 10 18 10 1 151ms KHOA KHOA HỌC VÀ KỸ THUẬT MÁY TÍNH 39
  40. 40. 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.02 Các thông số Độ hỗ trợ Độ tin cậy Số tập giao dịch Số thuộc tính Số luật tạo ra Số item tối đa trong tập thường Giải thuật khai phá gia tăng 0.02 0.9 724 273 67 4 xuyên 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
  41. 41. 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. KHOA KHOA HỌC VÀ KỸ THUẬT MÁY TÍNH 41
  42. 42. KHAI PHÁ LUẬT KẾT HỢP CÁC MÔN HỌC CỦA SINH VIÊN 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. 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. KHOA KHOA HỌC VÀ KỸ THUẬT MÁY TÍNH 42
  43. 43. KHAI PHÁ LUẬT KẾT HỢP CÁC MÔN HỌC CỦA SINH 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: • Đư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. KHOA KHOA HỌC VÀ KỸ THUẬT MÁY TÍNH 43
  44. 44. KHAI PHÁ LUẬT KẾT HỢP CÁC MÔN HỌC CỦA SINH VIÊN • 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 44
  45. 45. 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 45
  46. 46. 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 46
  47. 47. 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. KHOA KHOA HỌC VÀ KỸ THUẬT MÁY TÍNH 47
  48. 48. KHAI PHÁ LUẬT KẾT HỢP CÁC MÔN HỌC CỦA SINH VIÊN 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. 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] KHOA KHOA HỌC VÀ KỸ THUẬT MÁY TÍNH 48
  49. 49. KHAI PHÁ LUẬT KẾT HỢP CÁC MÔN HỌC CỦA SINH VIÊN 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. 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 49
  50. 50. 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 50
  51. 51. 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 51
  52. 52. 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 52
  53. 53. 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 53
  54. 54. 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 1 2 ... ID_khoahoc 2003 2006 Mo_ta Áp dụng từ khóa 2003 đến 2005 Áp dụng cho khóa 2006 KHOA KHOA HỌC VÀ KỸ THUẬT MÁY TÍNH 54
  55. 55. 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 55
  56. 56. 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,... KHOA KHOA HỌC VÀ KỸ THUẬT MÁY TÍNH 56
  57. 57. KHAI PHÁ LUẬT KẾT HỢP CÁC MÔN HỌC CỦA SINH VIÊN 4.3 Phát triển hệ thống 4.3.1 Lược đồ Usecase 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 KHOA KHOA HỌC VÀ KỸ THUẬT MÁY TÍNH 57
  58. 58. KHAI PHÁ LUẬT KẾT HỢP CÁC MÔN HỌC CỦA SINH VIÊN 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ó. 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. KHOA KHOA HỌC VÀ KỸ THUẬT MÁY TÍNH 58
  59. 59. KHAI PHÁ LUẬT KẾT HỢP CÁC MÔN HỌC CỦA SINH VIÊ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. 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. KHOA KHOA HỌC VÀ KỸ THUẬT MÁY TÍNH 59

×