Bối cảnh và vấn đề nghiên cứu

Trong bối cảnh công nghệ thông tin phát triển, khối lượng dữ liệu được thu thập và lưu trữ tại các hệ thống thông tin giáo dục tăng lên nhanh chóng. Việc chuyển đổi mô hình đào tạo đại học và cao đẳng sang học chế tín chỉ đặt ra nhu cầu cấp thiết về công tác tư vấn học tập, đặc biệt là việc lựa chọn lộ trình học tập phù hợp nhằm giúp sinh viên đạt kết quả cao nhất. Trên thực tế, các giảng viên chuyên trách và cố vấn học tập không thể tiếp cận toàn bộ dữ liệu điểm của sinh viên, đồng thời việc suy luận thủ công từ khối dữ liệu lớn là không khả thi. Nhằm giải quyết bài toán này, tác giả Đỗ Viết Vũ đã thực hiện khóa luận tốt nghiệp ngành Công nghệ thông tin tại Trường Đại học Hồng Đức với đề tài "Ứng dụng khai phá dữ liệu để dự đoán kết quả học tập của sinh viên".

Mục tiêu nghiên cứu: Nghiên cứu phương pháp khai phá tìm luật kết hợp và cây quyết định dựa trên dữ liệu giáo dục; xây dựng mô hình khai phá dữ liệu dựa vào thông tin tuyển sinh đầu vào và kết quả học tập của sinh viên; triển khai ứng dụng trên nền tảng di động nhằm dự đoán kết quả học tập và hỗ trợ tư vấn lựa chọn lộ trình học tối ưu cho sinh viên, cố vấn học tập và phòng đào tạo.

Nhiệm vụ nghiên cứu:

  1. Nghiên cứu lý thuyết về khai phá dữ liệu, cụ thể là kỹ thuật luật kết hợp và cây quyết định.
  2. Xác định bài toán cụ thể là xây dựng công cụ liệt kê tất cả các lộ trình học cho mỗi ngành học và gắn lộ trình học với mỗi sinh viên, chuẩn bị nguồn dữ liệu để xây dựng chương trình.
  3. Xây dựng mô hình dự báo kết quả học tập của sinh viên theo các kỹ thuật khác nhau như cây quyết định, luật kết hợp; ứng dụng công cụ Visual Studio Code, Expo và hệ quản trị cơ sở dữ liệu MongoDB để xây dựng và dự đoán kết quả.
  4. Đánh giá kết quả dự báo của các mô hình và lựa chọn mô hình tốt nhất để thực hiện dự báo.
  5. Nghiên cứu các thư viện của React Native; xây dựng ứng dụng di động áp dụng mô hình đã chọn để dự báo kết quả học tập dựa vào thông tin đầu vào, thực hiện tư vấn lộ trình học cho sinh viên.

Đối tượng và phạm vi nghiên cứu:

  • Đối tượng nghiên cứu: Kỹ thuật khai phá dữ liệu, dữ liệu đào tạo và hệ thống tư vấn.
  • Phạm vi nghiên cứu: Các kỹ thuật phân lớp (cây quyết định, luật kết hợp), các công cụ hỗ trợ khai phá dữ liệu và nguồn dữ liệu thực tế tại Trường Đại học Hồng Đức.

Cơ sở lý thuyết và phương pháp

Khóa luận tiếp cận vấn đề dựa trên khung lý thuyết phát hiện tri thức trong cơ sở dữ liệu (Knowledge Discovery in Databases - KDD) và các giải thuật phân lớp dữ liệu.

Khung lý thuyết và quy trình khai phá dữ liệu: Nghiên cứu tổng hợp các định nghĩa học thuật về khai phá dữ liệu từ Ferruzza, Parsaye và Fayyad. Quy trình phát hiện tri thức được chuẩn hóa qua 4 bước:

  1. Hình thành, xác định và định nghĩa bài toán.
  2. Thu thập và tiền xử lý dữ liệu (làm sạch dữ liệu, xử lý dữ liệu thiếu, biến đổi và rời rạc hóa dữ liệu).
  3. Khai phá dữ liệu và rút ra tri thức (trích xuất mẫu và mô hình tiềm ẩn).
  4. Phân tích, kiểm định và sử dụng tri thức phát hiện được vào các hệ thống hỗ trợ ra quyết định.

Văn bản hệ thống hóa 6 nhiệm vụ cơ bản của khai phá dữ liệu: Phân lớp (Classification), Hồi quy (Regression), Phân nhóm (Clustering), Tổng hợp (Summarization), Mô hình hóa và sự phụ thuộc (Dependency Modeling), Phát hiện sự biến đổi và độ lệch (Change and Deviation Detection).

Thuật toán trọng tâm: Nghiên cứu sử dụng giải thuật quy nạp cây quyết định ID3 (Iterative Dichotomiser 3). Thuật toán xây dựng cây quyết định từ trên xuống (top-down induction) bằng cách chọn thuộc tính kiểm tra tại mỗi nút dựa trên lý thuyết thông tin. Các công thức toán học được áp dụng bao gồm:

  • Độ hỗn loạn Entropy: Đo tính thuần nhất của tập dữ liệu $S$: $$Entropy(S) = -\sum_{i=1}^{n} P_i \log_2(P_i)$$ Trong đó $P_i$ là tỷ lệ các mẫu thuộc lớp $i$ trong tập $S$.
  • Độ lợi thông tin (Information Gain): Đo mức độ hiệu quả của thuộc tính $A$ khi phân chia tập $S$: $$Gain(S, A) = Entropy(S) - AE(S, A)$$ Với $AE(S, A)$ (Average Entropy hay Information) là entropy trung bình có trọng số của các tập con phân chia theo thuộc tính $A$: $$AE(S, A) = \sum_{v \in Values(A)} \frac{|S_v|}{|S|} Entropy(S_v)$$ Thuộc tính có giá trị Gain lớn nhất (tương đương có $AE$ nhỏ nhất) sẽ được chọn làm nút phân nhánh tại mỗi bước lặp của hàm induce_tree.

Phương pháp nghiên cứu:

  • Phương pháp nghiên cứu lý luận: Thu thập, phân tích tài liệu, giáo trình về khai phá dữ liệu, học máy và hệ thống hỗ trợ ra quyết định.
  • Phương pháp nghiên cứu thực tiễn: Thu thập dữ liệu thực tế, thực hiện các bước làm sạch, tích hợp, chuyển đổi dữ liệu; áp dụng thuật toán phân lớp và xây dựng ứng dụng di động.
  • Phương pháp nghiên cứu tài liệu công nghệ: Tìm hiểu ngôn ngữ JavaScript, React Native, hệ quản trị MongoDB và nền tảng Heroku.

Nguồn dữ liệu: Dữ liệu hồ sơ tuyển sinh đầu vào và lịch sử kết quả học tập của gần 1.000 sinh viên đã tốt nghiệp tại Trường Đại học Hồng Đức.


Thiết kế và triển khai hệ thống

Khóa luận xây dựng hệ thống phần mềm di động phục vụ việc dự đoán kết quả học tập và tra cứu thông tin học vụ.

Kiến trúc công nghệ

Hệ thống được thiết kế và triển khai dựa trên các công nghệ sau:

  • Nền tảng di động (Frontend): React Native kết hợp công cụ Expo và Microsoft Visual Studio Code. React Native sử dụng mã nguồn JavaScript để biên dịch thành giao diện native trên cả hai nền tảng iOS và Android, giúp tái sử dụng thành phần và tiết kiệm thời gian phát triển.
  • Cơ sở dữ liệu (Database): MongoDB – hệ quản trị cơ sở dữ liệu NoSQL hướng tài liệu (Document-oriented). MongoDB lưu trữ dữ liệu dưới dạng JSON/BSON, tự động tạo khóa chính _id kiểu ObjectId có đánh chỉ mục (Index). Tiến trình chạy ngầm lắng nghe tại cổng mặc định 27017, áp dụng cơ chế ghi đệm trên RAM và đồng bộ xuống ổ cứng sau mỗi chu kỳ 60 giây.
  • Nền tảng triển khai và giao tiếp (Backend & Cloud): Nền tảng đám mây Heroku hỗ trợ triển khai dịch vụ ứng dụng, kết nối dữ liệu thông qua hệ thống Web API (Application Programming Interface).
STT Khái niệm trong RDBMS Khái niệm tương đương trong MongoDB
1 Database (Cơ sở dữ liệu) Database (Cơ sở dữ liệu)
2 Table (Bảng) Collection (Bộ sưu tập)
3 Row (Dòng) Document (Tài liệu)
4 Column (Cột) Field (Trường)
5 Primary Key (Khóa chính) Primary Key (_id)

Thiết kế cơ sở dữ liệu

Cơ sở dữ liệu phục vụ bài toán dự đoán được thiết kế gồm 9 thuộc tính chính:

STT Tên thuộc tính Ý nghĩa mô tả
1 Sex Giới tính của sinh viên
2 Nation Dân tộc (Kinh, Khác)
3 Address Tên huyện cư trú
4 Area Khu vực ưu tiên tại huyện (2NT, KV2,...)
5 Block Khối thi đại học (A, A1,...)
6 Test_Score Điểm thi đại học đầu vào
7 Facylty Tên khoa/ngành dự tuyển (CNTT-TT, Luật, Tự nhiên,...)
8 Education_Program Lộ trình đào tạo (LT1, LT2, LT3 hoặc phân bổ số tín chỉ)
9 Result Kết quả học tập tốt nghiệp (Giỏi, Khá, TB)

Thiết kế ca sử dụng (Use Case)

Hệ thống phân quyền cho hai tác nhân (Actors):

  • Cố vấn học tập: Sử dụng phần mềm để định hướng cho sinh viên, sử dụng chức năng dự đoán kết quả để đưa ra kết luận và tư vấn lộ trình học.
  • Sinh viên: Xem bài viết, thông tin tuyển sinh, nghiên cứu khoa học của Khoa Công nghệ Thông tin và Truyền thông; nhập thông tin đầu vào để xem kết quả dự đoán học tập cuối khóa.
  • Các ca sử dụng chính: Xem thông tin của khoa CNTT-TT; Xem dự đoán kết quả học tập; Chức năng khai phá dữ liệu (tìm tập luật phân lớp từ cơ sở dữ liệu).

Nội dung chính theo từng chương

Chương I: Tổng quan về khai phá dữ liệu

Chương I trình bày cơ sở lý thuyết tổng quan về lĩnh vực khám phá tri thức và khai phá dữ liệu. Tác giả phân tích nguồn gốc phát triển của khai phá dữ liệu trong các lĩnh vực tài chính, bảo hiểm, y tế, viễn thông và giáo dục. Nội dung chương làm rõ sự khác biệt và ưu thế của khai phá dữ liệu so với học máy truyền thống, hệ chuyên gia, phát kiến khoa học và phương pháp thống kê cổ điển.

Chương này cũng chỉ ra các thách thức kỹ thuật trong khai phá dữ liệu thực tế:

  • Xử lý cơ sở dữ liệu quy mô lớn (Gigabytes đến Terabytes) và số lượng chiều thuộc tính cao.
  • Kiểm soát dữ liệu biến động theo thời gian.
  • Khắc phục hiện tượng khớp quá mức (overfitting) và lọc mẫu giả thông qua các kỹ thuật thống kê (như điều chỉnh Bonferroni).
  • Xử lý vấn đề thiếu giá trị thuộc tính, dữ liệu nhiễu và cấu trúc quan hệ phức tạp giữa các trường.

Chương II: Nghiên cứu xây dựng ứng dụng dự đoán kết quả học tập của sinh viên trên nền tảng Mobile sử dụng công nghệ React Native

Chương II tập trung giải quyết bài toán nghiệp vụ, thiết kế hệ thống và thực nghiệm giải thuật ID3:

  1. Phân tích bài toán: Xác định mối liên hệ giữa thông tin tuyển sinh đầu vào (điểm thi, khối thi, khu vực, dân tộc), ngành học, lộ trình học và kết quả xếp loại tốt nghiệp cuối khóa.
  2. Liệt kê lộ trình học: Khóa luận xử lý dữ liệu của gần 1.000 sinh viên để liệt kê các lộ trình học theo từng học kỳ cho mỗi sinh viên, từ đó tổng hợp thành các lộ trình chuẩn cho từng ngành đào tạo.
  3. Thực nghiệm tính toán thuật toán ID3 trên tập mẫu huấn luyện: Tác giả thực nghiệm giải thuật trên tập dữ liệu gồm 10 mẫu sinh viên với các thuộc tính: Sex, Nation, Address, Area, Block, Test_Score, Facylty, Education_Program và nhãn phân lớp Result (Giỏi, Khá, TB).
STT Sex Nation Address Area Block Test_Score Facylty Education_Program Result
1 Nam Kinh Thọ Xuân 2NT A 22 CNTT LT1 Giỏi
2 Nữ Kinh Thọ Xuân 2NT A 18 CNTT LT1 Khá
3 Nữ Kinh Hoằng Hóa 2NT A 19 Luật LT2 Khá
4 Nam Kinh Nga Sơn 2NT A 16 Tự nhiên LT3 TB
5 Nam Khác Nga Sơn KV2 A1 16.5 Tự nhiên LT3 TB
6 Nữ Khác Yên Định 2NT A 21 CNTT LT1 Giỏi
7 Nam Khác Nga Sơn KV2 A1 19 Luật LT2 TB
8 Nam Kinh Thọ Xuân 2NT A 19 CNTT LT1 TB
9 Nữ Khác Hoằng Hóa 2NT A1 18 Luật LT2 Khá
10 Nữ Kinh Hoằng Hóa 2NT A 18 CNTT LT1 Khá
  • Tại bước lặp 1: Tính toán entropy trung bình cho toàn bộ thuộc tính:
    • $AE_{Sex} = 1,11$
    • $AE_{Nation} = 1,5$
    • $AE_{Address} = 1,38$
    • $AE_{Area} = 1,4$
    • $AE_{Block} = 1,16$
    • $AE_{Test_Score} = 0,94$
    • $AE_{Facylty} = 0,992$
    • $AE_{Education_Program} = 0,992$ Do $AE_{Test_Score} = 0,94$ có giá trị nhỏ nhất (Gain lớn nhất), thuộc tính Test_Score được chọn làm nút gốc. Thuộc tính này phân chia dữ liệu thành 3 nhánh:
    • Nhánh $16 - 16.5$: Kết luận lớp "TB" (thuần nhất).
    • Nhánh $21 - 22$: Kết luận lớp "Giỏi" (thuần nhất).
    • Nhánh $18 - 19$: Chưa thuần nhất (gồm 6 mẫu: 4 Khá, 2 TB), tiếp tục phân nhánh.
  • Tại bước lặp 2 (xét nhánh 18 - 19): Tính toán lại entropy cho các thuộc tính còn lại:
    • $AE_{Sex} = 0$
    • $AE_{Nation} = 0,87$
    • $AE_{Address} = 0,3$
    • $AE_{Area} = 0,6$
    • $AE_{Block} = 0,87$
    • $AE_{Facylty} = 0,92$
    • $AE_{Education_Program} = 0,92$ Thuộc tính Sex có $AE_{Sex} = 0$ nên được chọn làm nút tiếp theo. Nhánh Sex = Nam cho kết quả "TB", nhánh Sex = Nữ cho kết quả "Khá". Quá trình dừng lại và tạo thành cây quyết định hoàn chỉnh.

Chương III: Phát triển ứng dụng dự đoán kết quả học tập trên Mobile

Chương III trình bày kết quả cài đặt phần mềm và thực hiện kiểm thử giao diện người dùng trên thiết bị di động với các kịch bản cụ thể:

  1. Phân hệ Đăng nhập: Kiểm thử các trường hợp để trống tài khoản hoặc mật khẩu, nhập sai tài khoản, nhập sai mật khẩu và đăng nhập thành công chuyển hướng đến trang chủ.
  2. Phân hệ Điều hướng (Navigation): Kiểm thử thao tác mở thanh menu bằng cách vuốt màn hình từ trái sang phải hoặc nhấn biểu tượng menu, chuyển đổi giữa các màn hình chức năng.
  3. Phân hệ Trang chủ và Tin tức: Hiển thị bài viết, tin tức từ Khoa Công nghệ Thông tin và Truyền thông; kiểm tra chức năng xem chi tiết bài viết theo 3 chuyên mục: "Tin tức – sự kiện", "NCKH – thông báo", "NCKH – kết quả", cùng thao tác quay lại trang chủ.
  4. Phân hệ Dự đoán kết quả học tập: Giao diện tiếp nhận các thông số đầu vào của sinh viên; kiểm thử validation khi không nhập điểm thi, nhập điểm thi sai định dạng gợi ý, và hiển thị kết quả dự đoán tốt nghiệp khi nhập dữ liệu hợp lệ.
  5. Trang Giới thiệu: Cung cấp thông tin giới thiệu về Khoa CNTT-TT Trường Đại học Hồng Đức.

Kết quả và đóng góp

Kết quả đạt được:

  • Xây dựng thành công mô hình phân lớp dữ liệu học tập bằng thuật toán cây quyết định ID3, chứng minh quy trình tính toán qua các chỉ số Entropy và Information Gain cụ thể ($AE_{Test_Score} = 0,94$; $AE_{Sex} = 0$).
  • Hoàn thiện phần mềm ứng dụng di động chạy trên nền tảng React Native, kết nối cơ sở dữ liệu MongoDB thông qua Web API và triển khai dịch vụ qua Heroku.
  • Thực hiện kiểm thử đầy đủ các chức năng giao diện, xử lý ràng buộc nhập liệu và trả lời kết quả dự đoán kết quả học tập.

Đóng góp của khóa luận:

  • Đưa ra giải pháp kết hợp thông tin tuyển sinh đầu vào với lộ trình học theo học chế tín chỉ để nâng cao độ chính xác trong dự đoán kết quả học tập của sinh viên.
  • Cung cấp công cụ thực nghiệm hỗ trợ các bên tham gia quản lý đào tạo tại Trường Đại học Hồng Đức (sinh viên, giảng viên cố vấn học tập, ban chủ nhiệm khoa và phòng đào tạo) có thêm căn cứ khoa học trong công tác tư vấn và định hướng học tập.

Hạn chế và hướng nghiên cứu tiếp

Hạn chế:

  • Ví dụ thực nghiệm thuật toán ID3 trong văn bản mới được trình bày chi tiết trên tập mẫu thử nghiệm giới hạn (10 bản ghi), chưa thể hiện đầy đủ bảng ma trận nhầm lẫn (confusion matrix) trên toàn bộ kho dữ liệu gần 1.000 sinh viên.
  • Ứng dụng di động xây dựng trên React Native còn phụ thuộc vào một số mô-đun tùy chỉnh của framework chưa hoàn thiện.

Hướng nghiên cứu tiếp:

  • Mở rộng nghiên cứu và thử nghiệm thêm các kỹ thuật khai phá dữ liệu khác (như khai phá luật kết hợp) để so sánh hiệu năng dự báo với cây quyết định.
  • Tiếp tục hoàn thiện các mô-đun chức năng trên ứng dụng di động và cập nhật cơ sở dữ liệu theo thời gian thực để phục vụ sinh viên các khóa tiếp theo.

Giá trị tham khảo

Tài liệu này hữu ích cho:

  • Sinh viên ngành Công nghệ thông tin và Khoa học máy tính: Tham khảo phương pháp xây dựng cây quyết định ID3 từng bước thông qua các phép tính Entropy và Information Gain cụ thể.
  • Lập trình viên ứng dụng di động: Tham khảo kiến trúc kết nối ứng dụng React Native với cơ sở dữ liệu NoSQL MongoDB thông qua Web API.
  • Cán bộ quản lý giáo dục và nhà nghiên cứu giáo dục học: Tham khảo cách thức mô hình hóa thông tin tuyển sinh và lộ trình tín chỉ phục vụ công tác hỗ trợ ra quyết định trong đào tạo.

Câu hỏi thường gặp

1. Khóa luận sử dụng thuật toán nào để phân lớp và dự đoán kết quả học tập? Khóa luận sử dụng thuật toán cây quy nạp ID3 (Iterative Dichotomiser 3). Thuật toán hoạt động theo nguyên lý xây dựng cây từ trên xuống, sử dụng độ đo Entropy và Information Gain (độ lợi thông tin) để chọn thuộc tính phân nhánh tối ưu tại mỗi nút.

2. Trong ví dụ thực nghiệm ở Chương II, thuộc tính nào được chọn làm nút gốc của cây quyết định và vì sao? Thuộc tính Test_Score (Điểm thi đại học) được chọn làm nút gốc vì có giá trị Entropy trung bình nhỏ nhất ($AE_{Test_Score} = 0,94$), tương ứng với giá trị Information Gain lớn nhất trong tất cả các thuộc tính được xét tại bước lặp đầu tiên.

3. Cơ sở dữ liệu của ứng dụng lưu trữ những thông tin nào của sinh viên? Cơ sở dữ liệu MongoDB lưu trữ 9 trường thông tin gồm: Sex (Giới tính), Nation (Dân tộc), Address (Huyện), Area (Khu vực), Block (Khối thi), Test_Score (Điểm thi), Facylty (Khoa dự tuyển), Education_Program (Lộ trình học) và Result (Kết quả tốt nghiệp: Giỏi, Khá, TB).

4. Ứng dụng di động được xây dựng bằng những công nghệ gì? Ứng dụng được xây dựng bằng React Native kết hợp Expo và Microsoft Visual Studio Code cho phần giao diện di động đa nền tảng (iOS và Android), sử dụng hệ quản trị cơ sở dữ liệu NoSQL MongoDB và nền tảng đám mây Heroku cùng hệ thống Web API để truyền tải dữ liệu.

5. Cơ chế lưu trữ và đồng bộ dữ liệu của MongoDB được mô tả như thế nào trong khóa luận? MongoDB quản lý bản ghi dưới dạng Document trong các Collection, tự động tạo trường khóa chính _id kiểu ObjectId có đánh chỉ mục (index). Khi có truy vấn hoặc cập nhật, dữ liệu được xử lý trên bộ nhớ đệm RAM và mặc định sau 60 giây mới thực hiện ghi toàn bộ dữ liệu thay đổi từ RAM xuống ổ cứng.


Kết luận

Khóa luận "Ứng dụng khai phá dữ liệu để dự đoán kết quả học tập của sinh viên" của tác giả Đỗ Viết Vũ đã giải quyết thành công bài toán ứng dụng kỹ thuật cây quyết định ID3 vào dữ liệu giáo dục tại Trường Đại học Hồng Đức. Công trình kết hợp giữa việc nghiên cứu giải thuật khai phá dữ liệu lý thuyết và xây dựng ứng dụng di động hoàn chỉnh trên nền tảng React Native và MongoDB. Kết quả nghiên cứu cung cấp giải pháp hỗ trợ thiết thực cho sinh viên trong việc lựa chọn lộ trình học tập tối ưu và hỗ trợ cán bộ đào tạo nâng cao hiệu quả tư vấn học vụ.