Hỗ trợ đồ án, khóa luận Web, App, AI - Uy tín, chất lượng!
Hỗ trợ đồ án, khóa luận Web, App, AI - Uy tín, chất lượng!
Trang Chủ Hướng Dẫn Đồ Án Hướng dẫn xây dựng mô hình dự đoán điểm thi bằng Machine Learning
Hướng Dẫn Đồ ÁnLập Trình AI

Hướng dẫn xây dựng mô hình dự đoán điểm thi bằng Machine Learning

Chia sẻ
Chia sẻ

Việc dự đoán điểm thi học sinh, sinh viên đang trở thành một xu hướng ứng dụng Machine Learning trong giáo dục nhằm nâng cao chất lượng giảng dạy và hỗ trợ học tập cá nhân hóa. Với khả năng xử lý dữ liệu lớn và tìm ra các quy luật ẩn, Machine Learning giúp xây dựng mô hình dự đoán chính xác điểm số dựa trên các yếu tố đầu vào như điểm các bài kiểm tra giữa kỳ, điểm chuyên cần, thái độ học tập… Bài viết này sẽ hướng dẫn bạn từng bước xây dựng một mô hình dự đoán điểm thi sử dụng các thuật toán Machine Learning phổ biến, cùng với ví dụ code minh họa bằng Python.

Chuẩn bị môi trường lập trình và thư viện cần thiết

Google Colab là một lựa chọn tuyệt vời cho người mới vì bạn chỉ cần trình duyệt và tài khoản Google. Truy cập https://colab.research.google.com và chọn “New Notebook” để bắt đầu. Nếu bạn quen với Jupyter Notebook trên máy tính, bạn có thể thực hiện các bước tương tự trong đó.

Các thư viện cần thiết bao gồm: pandas, numpy, matplotlib, seabornscikit-learn. Trên Google Colab, hầu hết đã được cài sẵn. Nếu dùng Jupyter Notebook, bạn có thể cài bằng lệnh sau:

!pip install pandas numpy matplotlib seaborn scikit-learn

Giới thiệu bài toán và tập dữ liệu

Bài toán đặt ra là dự đoán điểm thi cuối kỳ của học sinh dựa trên các yếu tố đầu vào như số giờ học mỗi tuần, tỉ lệ điểm danh, mức độ hoàn thành bài tập về nhà và điểm kiểm tra giữa kỳ. Đây là một bài toán hồi quy điển hình, nơi chúng ta dự đoán một giá trị liên tục.

Để thực hành, bạn có thể sử dụng bộ dữ liệu Student Performance Data Set từ UCI Machine Learning Repository. Bộ dữ liệu này chứa thông tin học tập của học sinh Bồ Đào Nha, rất phù hợp cho bài toán.

Truy cập https://archive.ics.uci.edu/ml/datasets/Student+Performance, tải về file student.zip, giải nén và lấy file student-mat.csv. Trong Google Colab, nhấn vào biểu tượng thư mục ở thanh bên trái, chọn “Upload” và tải file CSV này lên để sử dụng.

Nạp và tạo dữ liệu

Sau khi đã có file dữ liệu, chúng ta tiến hành đọc dữ liệu vào DataFrame bằng Pandas.

import pandas as pd

# Đọc dữ liệu từ file CSV
data = pd.read_csv('student-mat.csv')

# Xem trước 5 dòng đầu tiên
data.head()

Nếu bạn muốn tạo dữ liệu giả để thử nghiệm nhanh, có thể sử dụng đoạn mã sau. Dữ liệu giả này gồm các cột tương tự như dữ liệu thật:

import numpy as np

# Tạo dữ liệu giả lập
np.random.seed(42)
data = pd.DataFrame({
    'hours_study': np.random.normal(5, 2, 200),
    'attendance': np.random.randint(50, 100, 200),
    'homework_completion': np.random.randint(50, 100, 200),
    'midterm_score': np.random.randint(40, 100, 200),
    'final_score': np.random.randint(40, 100, 200)  # target
})

# Lưu dữ liệu vào file CSV
data.to_csv('student_scores.csv', index=False)

Sau khi tạo xong, bạn có thể đọc lại file student_scores.csv để sử dụng trong các bước tiếp theo.

Khám phá dữ liệu

Trước khi xây dựng mô hình, việc khám phá dữ liệu (EDA) giúp bạn hiểu cấu trúc dữ liệu và phát hiện các vấn đề tiềm ẩn như dữ liệu thiếu hay giá trị ngoại lai.

# Xem thông tin tổng quan
data.info()

# Thống kê mô tả
data.describe()

# Kiểm tra dữ liệu thiếu
data.isnull().sum()

Trực quan hóa dữ liệu

Để quan sát mối quan hệ giữa các biến, chúng ta sử dụng biểu đồ phân tán và ma trận tương quan. Việc này giúp phát hiện những biến có thể đóng vai trò quan trọng trong dự đoán điểm thi.

import matplotlib.pyplot as plt
import seaborn as sns

# Biểu đồ phân tán giữa giờ học và điểm cuối kỳ
sns.scatterplot(x='hours_study', y='final_score', data=data)
plt.title('Mối quan hệ giữa số giờ học và điểm cuối kỳ')
plt.show()

# Ma trận tương quan
sns.heatmap(data.corr(), annot=True, cmap='coolwarm')
plt.title('Ma trận tương quan')
plt.show()

Xây dựng mô hình Machine Learning

Chúng ta chọn các cột hours_study, attendance, homework_completion, và midterm_score làm biến đầu vào để dự đoán final_score. Sau đó chia dữ liệu thành tập huấn luyện và tập kiểm tra.

from sklearn.model_selection import train_test_split

# Tách biến đầu vào và biến mục tiêu
X = data[['hours_study', 'attendance', 'homework_completion', 'midterm_score']]
y = data['final_score']

# Chia dữ liệu thành tập huấn luyện và kiểm tra
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2, random_state=42)

Tiếp theo, sử dụng mô hình hồi quy tuyến tính để huấn luyện.

from sklearn.linear_model import LinearRegression

# Khởi tạo và huấn luyện mô hình
model = LinearRegression()
model.fit(X_train, y_train)

# Dự đoán trên tập kiểm tra
y_pred = model.predict(X_test)

Đánh giá mô hình

Để đánh giá độ chính xác của mô hình, chúng ta sử dụng các chỉ số Mean Absolute Error (MAE), Mean Squared Error (MSE) và R² Score.

from sklearn.metrics import mean_absolute_error, mean_squared_error, r2_score

mae = mean_absolute_error(y_test, y_pred)
mse = mean_squared_error(y_test, y_pred)
r2 = r2_score(y_test, y_pred)

print(f'MAE: {mae:.2f}')
print(f'MSE: {mse:.2f}')
print(f'R² Score: {r2:.2f}')

Trực quan hóa kết quả dự đoán so với thực tế để xem mô hình hoạt động thế nào.

# Vẽ biểu đồ so sánh
plt.scatter(y_test, y_pred)
plt.xlabel('Điểm thực tế')
plt.ylabel('Điểm dự đoán')
plt.title('So sánh điểm thực tế và điểm dự đoán')
plt.show()

Cải thiện mô hình với Random Forest

Nếu kết quả chưa tốt, bạn có thể thử mô hình Random Forest – một thuật toán mạnh mẽ hơn để xử lý dữ liệu phi tuyến.

from sklearn.ensemble import RandomForestRegressor

# Khởi tạo mô hình Random Forest
rf_model = RandomForestRegressor(n_estimators=100, random_state=42)
rf_model.fit(X_train, y_train)

# Dự đoán và đánh giá
y_rf_pred = rf_model.predict(X_test)
print('R² của Random Forest:', r2_score(y_test, y_rf_pred))

Kết luận

Xây dựng mô hình dự đoán điểm thi bằng Machine Learning không chỉ giúp giáo viên và nhà trường hỗ trợ học sinh tốt hơn mà còn là một ví dụ thực tế để người học làm quen với quy trình ML từ xử lý dữ liệu đến huấn luyện và đánh giá mô hình.

Bài viết này đã cung cấp cho bạn kiến thức nền tảng để tiếp tục khám phá các mô hình phức tạp hơn như XGBoost, LightGBM, cũng như triển khai chúng vào các ứng dụng thực tế. Đừng quên thử tối ưu siêu tham số bằng GridSearchCV để nâng cao độ chính xác của mô hình.

Tham Gia Nhóm – Hỗ Trợ Lập Trình

Hỗ Trợ Đồ Án – ThueDoAn.vn

Liên quan
Hướng Dẫn Đồ Án

Checklist 10 bước kiểm tra cuối cùng trước khi nhấn nút nộp đồ án

Thời điểm chuẩn bị nhấn nút nộp đồ án luôn mang lại...

Hướng Dẫn Đồ Án

Tuyệt chiêu đối phó với những giảng viên hướng dẫn ‘khó tính’ nhất

Giai đoạn làm đồ án tốt nghiệp luôn đi kèm với vô...

Hướng Dẫn Đồ Án

Tại sao việc quản lý Source Code bằng Git lại quan trọng hơn bạn nghĩ?

Trong thế giới lập trình hiện đại, mã nguồn chính là linh...

Hướng Dẫn Đồ Án

Những chức năng ‘thừa’ khiến bạn tốn thời gian mà không được cộng điểm

Làm đồ án tốt nghiệp là một cuộc đua thực thụ với...

Hướng Dẫn Đồ Án

Cách xử lý khi đề tài bị trùng lặp ý tưởng với các khóa trước quá nhiều

Lựa chọn đề tài đồ án luôn là bước khởi đầu đầy...

Hướng Dẫn Đồ Án

Làm sao để giải trình với giảng viên khi code bị nghi ngờ là đi chép?

Trong quá trình thực hiện đồ án, việc tham khảo mã nguồn...

Hướng Dẫn Đồ Án

Cảnh báo: Những nguồn share code ‘rác’ trên mạng cần tuyệt đối tránh

Trong quá trình làm đồ án, việc tìm kiếm sự hỗ trợ...

Hướng Dẫn Đồ Án

Sai lầm khi chọn công nghệ quá khó so với năng lực thực tế của bản thân

Chọn đề tài và công nghệ cho đồ án luôn là bước...

Liên Hệ
Liên hệ để được tư vấn & hỗ trợ đồ án CNTT nhé bạn!