Giới thiệu dự án
Trong môi trường giáo dục đại học hiện đại, tình trạng sinh viên bị xử lý học vụ (bao gồm cảnh cáo học vụ và buộc thôi học) đang trở thành một thách thức nghiêm trọng đối với công tác quản trị đào tạo. Theo thống kê tại nhiều trường đại học tại Việt Nam, tỷ lệ sinh viên nhận cảnh báo học vụ hàng năm dao động từ 5% đến 12%, trong đó hàng trăm sinh viên đối mặt với nguy cơ bị buộc thôi học mỗi học kỳ. Hậu quả của vấn đề này không chỉ dừng lại ở sự gián đoạn con đường học vấn của cá nhân sinh viên, gây lãng phí tài chính cho gia đình và xã hội, mà còn ảnh hưởng trực tiếp đến chất lượng đào tạo, tỷ lệ tốt nghiệp đúng hạn và uy tín học thuật của cơ sở giáo dục.
+-------------------------------------------------------------------------+
| HỆ THỐNG CẢNH BÁO HIỆU SUẤT HỌC TẬP |
+-------------------------------------------------------------------------+
Vấn đề thực tiễn và bài toán nghiên cứu
Phần lớn các quyết định xử lý học vụ hiện nay được thực hiện theo phương thức "hậu kiểm" (reactive) – tức là xử lý kỷ luật sau khi sinh viên đã có kết quả học tập yếu kém ở cuối kỳ. Cơ chế này hoàn toàn thiếu tính dự báo và ngăn chặn sớm. Việc thiếu hụt các công cụ cảnh báo chủ động khiến sinh viên không nhận thức kịp thời mức độ rủi ro để điều chỉnh phương pháp học tập, đồng thời đội ngũ cố vấn học tập không thể can thiệp hỗ trợ đúng đối tượng vào thời điểm vàng.
Đề tài "Nghiên cứu hệ thống cảnh báo hiệu suất học tập tại một trường đại học" (Academic Performance Warning System for Higher Education) do nhóm nghiên cứu ngành Khoa học Dữ liệu, Trường Đại học Công nghệ Thông tin – ĐHQG-HCM thực hiện, tập trung giải quyết bài toán phân loại đa lớp (Multi-class Classification) nhằm dự báo chính xác trạng thái học vụ của sinh viên.
Mục tiêu nghiên cứu cụ thể
- Xây dựng bộ dữ liệu chuẩn: Trích xuất, làm sạch và chuẩn hóa dữ liệu kết quả học tập từ 4.383 sinh viên, phát triển các công thức tính toán đặc trưng tổng quát có thể tái sử dụng trên mọi cơ sở dữ liệu đào tạo tín chỉ tại Việt Nam.
- Thiết kế kiến trúc cảnh báo hai giai đoạn: Xây dựng quy trình dự báo rủi ro học vụ tại hai mốc thời gian then chốt: Cảnh báo lần 1 (Đầu học kỳ) và Cảnh báo lần 2 (Trước khi thi cuối kỳ).
- Thực nghiệm và tối ưu hóa thuật toán: So sánh, đánh giá toàn diện các mô hình Machine Learning cổ điển và hiện đại (SVM, LightGBM, Random Forest, GBDT, Extra Trees, SGD, N-SVM), áp dụng kỹ thuật giải quyết mất cân bằng dữ liệu và phân rã bài toán phân loại.
- Xây dựng Dashboard ứng dụng thực nghiệm: Trực quan hóa kết quả dự báo phục vụ sinh viên, cố vấn học tập và phòng đào tạo theo thời gian thực.
Phạm vi và giới hạn đề tài
- Phạm vi dữ liệu: Dữ liệu học tập lịch sử và quy chế xử lý học vụ của một trường đại học đào tạo theo học chế tín chỉ tại Việt Nam, phân loại 3 trạng thái: Nhãn 0 (Bình thường - Normal), Nhãn 1 (Cảnh cáo học vụ - Warning), Nhãn 2 (Buộc thôi học - Dismissal).
- Giới hạn: Nghiên cứu tập trung thuần túy vào chuỗi kết quả học tập (điểm thành phần, điểm trung bình tích lũy, điểm môn tiên quyết), chưa tích hợp dữ liệu phi cấu trúc như nhật ký tương tác hệ thống LMS (Learning Management System), hoàn cảnh kinh tế - xã hội hoặc hoạt động ngoại khóa.
Phân tích và thiết kế giải pháp
Phân tích hiện trạng
Nghiên cứu tổng quan các giải pháp khai phá dữ liệu giáo dục (Educational Data Mining - EDM) trên thế giới và trong nước cho thấy nhiều cách tiếp cận khác nhau:
| Nghiên cứu |
Phương pháp chính |
Ưu điểm |
Nhược điểm / Khoảng trống |
| Huang et al. (2013) |
MLR, MLP, RBF-NN, SVM |
Khai thác tốt điểm 4 môn tiên quyết |
Quy mô mẫu nhỏ (323 sinh viên), chỉ áp dụng cho 1 môn học đơn lẻ |
| Migueis et al. (2018) |
Random Forest, Bagged/Boosted Trees |
Độ chính xác đạt > 95% ở đầu kỳ |
Chưa tối ưu cho bài toán mất cân bằng nhãn nghiêm trọng (Imbalanced Data) |
| Zhai et al. (2021) |
CatBoost - SHAP, XGBoost |
Kết hợp đa nguồn dữ liệu (LMS, Internet log) |
Chi phí thu thập dữ liệu cao, khó mở rộng sang các trường chưa số hóa toàn diện |
| Hamim et al. (2022) |
LightGBM, AdaBoost, CatBoost |
Độ chính xác 89.26% với 14 đặc trưng hành vi |
Chưa phân tầng cảnh báo theo từng mốc thời gian trong kỳ |
| Giải pháp đề xuất |
Hệ thống 2 giai đoạn (SVM + LightGBM + Data Augmentation) |
Dễ triển khai trên mọi hệ thống tín chỉ, tối ưu F2-score Macro, xử lý mất cân bằng nhãn |
Cần mở rộng thêm dữ liệu hành vi phi cấu trúc trong tương lai |
Ma trận ưu tiên yêu cầu hệ thống (MoSCoW)
- Must have: Pipeline tiền xử lý dữ liệu điểm tự động; Bộ phân loại 3 nhãn ($0, 1, 2$); Cơ chế đánh giá ưu tiên $F_2$-score Macro; Hệ số trích xuất đặc trưng điểm môn tiên quyết ($pre_avg$).
- Should have: Kiến trúc phân rã nhị phân phân cấp (Hierarchical Decomposition); Kỹ thuật tăng cường dữ liệu cửa sổ trượt (Sliding Window Augmentation); Giao diện Dashboard cảnh báo cá nhân hóa.
- Could have: Module giải thích tầm quan trọng của đặc trưng (Feature Importance); Tích hợp API gửi cảnh báo qua Email/SMS.
- Won't have (trong phiên bản hiện tại): Nhận diện khuôn mặt điểm danh tự động; Dự đoán điểm chi tiết từng câu hỏi trong đề thi.
Thiết kế hệ thống
+-----------------------------------------------------------------------------------+
| KIẾN TRÚC HỆ THỐNG CẢNH BÁO |
+-----------------------------------------------------------------------------------+
Technology Stack và phiên bản chi tiết
- Core Language: Python
3.9.12
- Data Manipulation & Analysis: Pandas
1.4.2, NumPy 1.22.3
- Machine Learning Libraries: Scikit-Learn
1.0.2, LightGBM 3.3.2, Imbalanced-Learn 0.9.1
- Application Backend: FastAPI
0.78.0, Uvicorn 0.17.6
- Frontend / Visualization: Streamlit
1.10.0, Seaborn 0.11.2, Matplotlib 3.5.2
Thiết kế Schema Dữ liệu Đặc trưng
CREATE TABLE student_academic_features (
student_id_hash VARCHAR(64) NOT NULL,
current_semester_index INT NOT NULL, -- Học kỳ hiện tại (2 đến 10)
pre_avg FLOAT DEFAULT 5.0, -- Điểm TB các môn học trước
s1 FLOAT, s2 FLOAT, s3 FLOAT, s4 FLOAT, s5 FLOAT, -- GPA các kỳ trước
s6 FLOAT, s7 FLOAT, s8 FLOAT, s9 FLOAT,
avg1_process FLOAT, -- Điểm TB quá trình kỳ này
avg2_practical FLOAT, -- Điểm TB thực hành kỳ này
avg3_midterm FLOAT, -- Điểm TB giữa kỳ kỳ này
coef1_process FLOAT, -- Hệ số TB quá trình
coef2_practical FLOAT, -- Hệ số TB thực hành
coef3_midterm FLOAT, -- Hệ số TB giữa kỳ
academic_status_label INT NOT NULL, -- 0: Normal, 1: Warning, 2: Dismissal
PRIMARY KEY (student_id_hash, current_semester_index)
);
Đặc tả API Endpoints
POST /api/v1/predict/early-semester
Request Body:
{
"student_id": "a9f8e7d6...",
"semester_index": 3,
"historical_gpa": [6.5, 4.2],
"pre_avg": 5.8
}
Response (200 OK):
{
"predicted_status": 1,
"status_name": "Warning",
"risk_probability": 0.784,
"model_used": "SupportVectorMachine-v1.0"
}
POST /api/v1/predict/pre-final
Request Body:
{
"student_id": "a9f8e7d6...",
"semester_index": 3,
"historical_gpa": [6.5, 4.2],
"pre_avg": 5.8,
"in_term_scores": {
"avg_process": 4.5, "coef_process": 0.2,
"avg_practical": 5.0, "coef_practical": 0.2,
"avg_midterm": 3.8, "coef_midterm": 0.3
}
}
Response (200 OK):
{
"predicted_status": 1,
"status_name": "Warning",
"risk_probability": 0.912,
"model_used": "LightGBM-v1.0"
}
Phương pháp nghiên cứu (Methodology)
Nghiên cứu được triển khai theo tiến trình khoa học dữ liệu kết hợp chuẩn mực phát triển phần mềm trong thời gian 6 tháng:
- Khảo sát và đặc tả quy chế: Nghiên cứu quy chế đào tạo tín chỉ, xác định 3 điều kiện cốt lõi dẫn đến xử lý học vụ: GPA học kỳ $< 3.0$; GPA hai học kỳ liên tiếp $< 4.0$; GPA hai học kỳ liên tiếp $= 0.0$.
- Kỹ thuật trích xuất đặc trưng toán học:
- Điểm trung bình học kỳ thứ $m$:
$$s(m) = \frac{\sum_{i=1}^{n} score_{m, i} \times credit_{m, i}}{\sum_{i=1}^{n} credit_{m, i}}$$
- Điểm trung bình thành phần $j$ ($j=1$: quá trình, $j=2$: thực hành, $j=3$: giữa kỳ) trong học kỳ hiện tại $p$:
$$avg(j) = \frac{\sum_{i=1}^{n} score(j){p, i} \times credit{p, i}}{\sum_{i=1}^{n} credit_{p, i}}$$
- Hệ số trung bình thành phần $j$:
$$coef(j) = \frac{\sum_{i=1}^{n} coef(j){p, i} \times credit{p, i}}{\sum_{i=1}^{n} credit_{p, i}}$$
- Điểm môn học trước ($pre_avg$): Điểm trung bình trọng số các môn tiên quyết liên quan trực tiếp đến các môn đăng ký trong học kỳ hiện tại.
- Chiến lược đánh giá ưu tiên độ đo $F_2$-Score:
Trong bài toán cảnh báo học vụ, việc bỏ sót sinh viên có nguy cơ (False Negative) gây hậu quả nghiêm trọng hơn rất nhiều so với việc cảnh báo nhầm sinh viên an toàn (False Positive). Do đó, chỉ số $F_2$-Score (gán trọng số Recall cao gấp đôi Precision) được chọn làm tiêu chí tối ưu hóa hàng đầu:
$$F_2 = (1 + 2^2) \times \frac{\text{Precision} \times \text{Recall}}{(2^2 \times \text{Precision}) + \text{Recall}} = 5 \times \frac{\text{Precision} \times \text{Recall}}{4 \times \text{Precision} + \text{Recall}}$$
Implementation và kết quả
Quá trình phát triển và Code Pipeline
Quy trình phát triển được đóng gói thành các module Python độc lập, đảm bảo khả năng tái lập (reproducibility) và mở rộng cao.
import numpy as np
import pandas as pd
from lightgbm import LGBMClassifier
from sklearn.svm import SVC
from sklearn.metrics import fbeta_score, classification_report
from sklearn.preprocessing import StandardScaler
from sklearn.pipeline import Pipeline
class AcademicWarningPipeline:
"""
Pipeline cảnh báo hiệu suất học tập 2 giai đoạn.
Giai đoạn 1: SVM phân loại đầu kỳ
Giai đoạn 2: LightGBM phân loại trước thi cuối kỳ
"""
def __init__(self, stage=1):
self.stage = stage
if stage == 1:
# Giai đoạn 1: Tối ưu không gian đặc trưng nhỏ bằng SVM Kernel RBF
self.model = Pipeline([
('scaler', StandardScaler()),
('classifier', SVC(C=10.0, kernel='rbf', gamma='scale',
class_weight='balanced', random_state=42))
])
elif stage == 2:
# Giai đoạn 2: Tối ưu cây quyết định tăng cường với LightGBM
self.model = LGBMClassifier(
n_estimators=300,
learning_rate=0.05,
num_leaves=31,
boosting_type='gbdt',
importance_type='gain',
class_weight='balanced',
random_state=42,
n_jobs=-1
)
else:
raise ValueError("Stage must be 1 (Early Semester) or 2 (Pre-Final).")
def fit(self, X_train: pd.DataFrame, y_train: pd.Series):
# Điền missing values cho pre_avg hoặc avg thành phần bằng giá trị trung bình 5.0
X_imputed = X_train.fillna(5.0)
self.model.fit(X_imputed, y_train)
return self
def predict(self, X_test: pd.DataFrame) -> np.ndarray:
X_imputed = X_test.fillna(5.0)
return self.model.predict(X_imputed)
def evaluate_macro_f2(self, X_test: pd.DataFrame, y_test: pd.Series) -> float:
y_pred = self.predict(X_test)
# Tính toán F2-Score Macro cho phân loại đa nhãn
f2_macro = fbeta_score(y_test, y_pred, beta=2.0, average='macro', zero_division=0)
return f2_macro
Thử nghiệm và Đánh giá
Dữ liệu thô từ 4.383 sinh viên được chia theo từng học kỳ từ $df_2$ đến $df_{10}$. Dưới đây là thống kê kích thước mẫu và phân bố nhãn sau quá trình tăng cường dữ liệu cửa sổ trượt (Sliding Window):
| Tập dữ liệu |
Số thuộc tính |
Mẫu Train (Nhãn 0 / 1 / 2) |
Mẫu Test (Nhãn 0 / 1 / 2) |
Tổng mẫu |
| df2 |
3 (Stage 1) / 9 (Stage 2) |
23.588 / 1.981 / 22 |
2.949 / 248 / 2 |
31.989 |
| df3 |
4 (Stage 1) / 10 (Stage 2) |
18.389 / 1.475 / 21 |
2.299 / 185 / 3 |
24.858 |
| df4 |
5 (Stage 1) / 11 (Stage 2) |
14.329 / 1.189 / 18 |
1.792 / 149 / 2 |
19.421 |
| df5 |
6 (Stage 1) / 12 (Stage 2) |
10.452 / 976 / 14 |
1.307 / 122 / 2 |
14.303 |
| df6 |
7 (Stage 1) / 13 (Stage 2) |
7.654 / 754 / 12 |
957 / 95 / 1 |
10.525 |
| df7 |
8 (Stage 1) / 14 (Stage 2) |
4.965 / 554 / 11 |
621 / 70 / 1 |
6.913 |
| df8 |
9 (Stage 1) / 15 (Stage 2) |
3.021 / 417 / 9 |
378 / 52 / 1 |
4.309 |
| df9 |
10 (Stage 1) / 16 (Stage 2) |
1.172 / 258 / 6 |
147 / 33 / 1 |
1.797 |
| df10 |
11 (Stage 1) / 17 (Stage 2) |
328 / 158 / 5 |
42 / 20 / 1 |
616 |
Kết quả Benchmark các thuật toán
Thực nghiệm được thực hiện trên cùng tập kiểm thử độc lập cho cả hai giai đoạn dự đoán:
| Thuật toán |
Giai đoạn 1: $F_2$-Score Macro |
Giai đoạn 1: Recall Nhãn 2 |
Giai đoạn 2: $F_2$-Score Macro |
Giai đoạn 2: Recall Nhãn 2 |
| Decision Tree (DT) |
62.15% |
58.33% |
84.12% |
82.50% |
| Random Forest (RF) |
68.42% |
61.11% |
89.45% |
88.33% |
| Extra Trees (ET) |
67.80% |
60.00% |
88.90% |
87.50% |
| Logistic Regression (LR) |
59.30% |
52.17% |
76.80% |
74.20% |
| SGD Classifier |
58.12% |
50.00% |
75.40% |
72.10% |
| GBDT |
70.15% |
65.22% |
90.30% |
89.10% |
| Support Vector Machine (SVM) |
74.37% |
72.22% |
87.65% |
86.40% |
| Neural-SVM (N-SVM) |
71.80% |
68.00% |
88.10% |
86.90% |
| LightGBM (LGBM) |
72.90% |
70.00% |
92.71% |
94.44% |
Phân tích Kết quả Đạt được
- Hiệu năng Giai đoạn 1 (Đầu học kỳ): SVM với Kernel RBF đạt hiệu năng cao nhất ($F_2$-score Macro $74.37%$). Điều này được lý giải bởi ở giai đoạn đầu kỳ, số lượng đặc trưng đầu vào tương đối ít (chỉ gồm GPA các kỳ cũ và $pre_avg$). SVM vượt trội trong việc xây dựng siêu phẳng phi tuyến phân tách tối ưu trong không gian ít chiều nhưng có độ chênh lệch biên độ lớn.
- Hiệu năng Giai đoạn 2 (Trước thi cuối kỳ): LightGBM thể hiện sức mạnh áp đảo ($F_2$-score Macro $92.71%$, Recall nhãn 2 đạt $94.44%$). Sự xuất hiện của các thuộc tính điểm thành phần ($avg_1, avg_2, avg_3$) kết hợp hệ số trọng số ($coef_1, coef_2, coef_3$) tạo ra cấu trúc cây phân nhánh cực kỳ rõ nét, giúp thuật toán Boosting phát huy tối đa khả năng sửa lỗi tuần tự qua cơ chế GOSS và EFB.
Đổi mới và đóng góp
- Mô hình Cảnh báo Hai Giai đoạn Độc lập: Khắc phục triệt để hạn chế của các nghiên cứu truyền thống vốn chỉ cảnh báo 1 lần duy nhất. Giai đoạn 1 mang tính định hướng sớm, Giai đoạn 2 mang tính chốt chặn quyết định trước kỳ thi cuối kỳ.
- Kỹ thuật Tăng cường Dữ liệu Chuỗi Học tập (Sliding Window Augmentation): Giải quyết xuất sắc bài toán kích thước mẫu suy giảm ở các học kỳ sau ($df_8, df_9, df_{10}$) bằng cách phân tách lịch sử học tập thành các chuỗi liền kề, làm giàu dữ liệu huấn luyện lên gấp 4.5 lần mà không gây biến dạng phân phối thực tế.
- Phương pháp Phân rã Nhị phân Phân cấp (Hierarchical Decomposition): Tách bài toán 3 nhãn thành: Bộ phân loại cấp 1 tách ${0}$ (Bình thường) vs ${1, 2}$ (Nguy cơ); Bộ phân loại cấp 2 tách ${1}$ (Cảnh cáo) vs ${2}$ (Buộc thôi học). Phương pháp này giúp tăng Recall của nhãn thiểu số (Nhãn 2) thêm 8.4%.
- Bộ Thuộc tính Tổng quát Hóa cao: Các thuộc tính $pre_avg$, $avg(j)$, $coef(j)$ được chuẩn hóa bằng công thức toán học tường minh, cho phép mọi trường đại học sử dụng hệ thống tín chỉ có thể tích hợp ngay lập tức mà không cần thay đổi cấu trúc cơ sở dữ liệu hiện có.
Ứng dụng thực tế và triển khai
Kịch bản Sử dụng Thực tế
- Sinh viên: Đăng nhập cổng thông tin portal, xem dự báo trạng thái học vụ tức thời khi vừa đăng ký môn học (Đầu kỳ) và nhận cảnh báo nguy cơ trượt môn/bị xử lý học vụ khi đã có điểm giữa kỳ để lên kế hoạch ôn tập nước rút.
- Cố vấn học tập (CVHT): Dashboard lọc danh sách sinh viên có xác suất rủi ro $> 70%$, tự động gửi gợi ý can thiệp (tư vấn giảm tải tín chỉ, kèm cặp học tập).
- Phòng Đào tạo: Báo cáo phân tích tổng thể chất lượng sinh viên toàn trường theo từng khoa/ngành để điều chỉnh chính sách tuyển sinh và chương trình đào tạo.
| KIẾN TRÚC TRIỂN KHAI HỆ THỐNG CLOUD DOCKER |
[ Người dùng: Sinh viên / Giảng viên ]
[ NGINX Ingress ]
Hướng dẫn triển khai Docker hóa
# Base image tối ưu cho Data Science
FROM python:3.9-slim
WORKDIR /app
RUN apt-get update && apt-get install -y --no-install-recommends \
build-essential \
libgomp1 \
&& rm -rf /var/lib/apt/lists/*
COPY requirements.txt .
RUN pip install --no-cache-dir -r requirements.txt
COPY . .
EXPOSE 8000 8501
# Chạy song song FastAPI Backend và Streamlit Dashboard qua Entrypoint
CMD ["sh", "-c", "uvicorn app.api:app --host 0.0.0.0 --port 8000 & streamlit run app/dashboard.py --server.port 8501 --server.address 0.0.0.0"]
Phân tích Chi phí - Lợi ích (ROI)
- Chi phí hạ tầng: Triển khai 01 máy chủ ảo Cloud (4 vCPU, 8GB RAM) tiêu tốn khoảng $30 - $50 USD/tháng.
- Lợi ích kinh tế & xã hội: Giảm thiểu ước tính 15% - 25% tỷ lệ sinh viên bị buộc thôi học mỗi năm. Giúp nhà trường duy trì nguồn thu học phí hợp pháp từ sinh viên theo học đúng tiến độ, đồng thời bảo vệ nguồn nhân lực công nghệ tương lai cho xã hội.
Hạn chế và hướng phát triển
Hạn chế kỹ thuật
- Sự phụ thuộc vào dữ liệu số: Mô hình hiện tại chỉ khai thác các chỉ số định lượng (điểm số, tín chỉ), chưa thu thập được các yếu tố định tính như biến cố tâm lý gia đình, vấn đề sức khỏe hoặc thời gian đi làm thêm của sinh viên.
- Hiện tượng trễ dữ liệu điểm thành phần: Tại một số thời điểm, giảng viên nhập điểm quá trình hoặc giữa kỳ chậm hơn kế hoạch, làm giảm thời gian phản ứng của hệ thống Cảnh báo lần 2.
Hướng phát triển trong tương lai
- Tích hợp Dữ liệu LMS & Hành vi Trực tuyến: Kết nối dữ liệu log truy cập Moodle/Canvas, thời gian nộp bài tập về nhà, tần suất xem video bài giảng.
- Ứng dụng Mạng Nơ-ron Đồ thị (GNN - Graph Neural Network): Xây dựng đồ thị tri thức môn học (Course Dependency Graph) để mô hình hóa mối quan hệ ràng buộc phức tạp giữa các môn tiên quyết và môn nâng cao.
- Module Tự động Tư vấn (Explainable AI - XAI & LLM Recommender): Sử dụng SHAP values kết hợp mô hình ngôn ngữ lớn (LLM) để tự động sinh văn bản khuyến nghị học tập cá nhân hóa gửi riêng cho từng sinh viên.
Đối tượng hưởng lợi
- Sinh viên: Nhận diện sớm nguy cơ học thuật với độ tin cậy $> 92%$, chủ động bảo vệ quyền lợi học tập và tốt nghiệp đúng hạn.
- Giảng viên & Cố vấn học tập: Tiết kiệm $80%$ thời gian rà soát học bạ thủ công, nắm bắt chính xác sinh viên cần hỗ trợ khẩn cấp.
- Ban Giám hiệu & Nhà trường: Nâng cao tỷ lệ giữ chân sinh viên (retention rate), chuẩn hóa dữ liệu học vụ theo chuẩn quốc tế.
- Cộng đồng Nghiên cứu Khoa học Dữ liệu: Tiếp cận phương pháp luận tiền xử lý dữ liệu giáo dục chuẩn hóa và mô hình phân loại dữ liệu bất đối xứng (imbalanced learning) hiệu quả.
Câu hỏi thường gặp
1. Yêu cầu phần cứng tối thiểu để triển khai hệ thống là gì?
Hệ thống được thiết kế tối ưu với thư viện LightGBM (hỗ trợ GOSS/EFB) và Scikit-Learn nên không yêu cầu phần cứng GPU đắt tiền. Máy chủ tiêu chuẩn với 2 vCPU, 4GB RAM và 20GB dung lượng lưu trữ có thể phục vụ dự báo thời gian thực cho hơn 20.000 sinh viên.
2. Mô hình giải quyết bài toán mất cân bằng dữ liệu cực đoan như thế nào?
Dữ liệu sinh viên bị buộc thôi học (Nhãn 2) chỉ chiếm dưới $0.2%$ toàn bộ tập dữ liệu. Nhóm nghiên cứu đã kết hợp kỹ thuật tinh chỉnh siêu tham số class_weight='balanced', phân rã mô hình phân cấp (Hierarchical Decomposition) và tối ưu hóa hàm mục tiêu theo $F_2$-score Macro thay vì Accuracy truyền thống.
3. Hệ thống có thể tích hợp vào phần mềm quản lý đào tạo hiện có không?
Có. Hệ thống cung cấp RESTful API chuẩn OpenAPI/Swagger. Bất kỳ phần mềm đào tạo nào viết bằng PHP, .NET, Java hay Node.js đều có thể gửi dữ liệu điểm qua giao thức HTTP POST và nhận kết quả dự báo định dạng JSON trong thời gian $< 50$ms.
4. Dữ liệu sinh viên có được bảo mật danh tính không?
Toàn bộ mã sinh viên và thông tin cá nhân đều được băm một chiều (Hash SHA-256) trước khi đưa vào pipeline xử lý dữ liệu và huấn luyện mô hình, đảm bảo tuân thủ nghiêm ngặt các quy định về bảo vệ dữ liệu cá nhân.
5. Tại sao F2-Score lại được ưu tiên hơn F1-Score hay Accuracy?
Accuracy gây ra hiện tượng ngụy biện trên dữ liệu mất cân bằng (dự đoán tất cả là Bình thường vẫn đạt $98%$ Accuracy nhưng vô giá trị). $F_1$-score coi trọng Precision và Recall ngang nhau, trong khi $F_2$-score nhân đôi trọng số của Recall, phản ánh đúng mục tiêu giáo dục: Thà cảnh báo nhầm để hỗ trợ còn hơn bỏ sót một sinh viên có nguy cơ bị đuổi học.
Kết luận
Đề tài khóa luận tốt nghiệp "Nghiên cứu hệ thống cảnh báo hiệu suất học tập tại một trường đại học" đã giải quyết thành công một bài toán có ý nghĩa thực tiễn sâu sắc trong kỷ nguyên chuyển đổi số giáo dục đại học. Bằng việc kết hợp sáng tạo giữa kỹ thuật tăng cường dữ liệu chuỗi thời gian, phương pháp phân rã phân loại phân cấp và kiến trúc dự báo hai giai đoạn với các thuật toán tối ưu (SVM đạt $F_2$-score $74.37%$ đầu kỳ; LightGBM đạt $F_2$-score $92.71%$ trước thi cuối kỳ), nghiên cứu mở ra hướng tiếp cận hoàn toàn khả thi và hiệu quả cao để kiểm soát, kéo giảm tỷ lệ xử lý học vụ tại các trường đại học tại Việt Nam.