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ử lý dữ liệu đầu vào trong đồ án AI
Hướng Dẫn Đồ Án

Hướng dẫn xử lý dữ liệu đầu vào trong đồ án AI

Chia sẻ
Chia sẻ

Trong bất kỳ đồ án AI hoặc bài toán học máy nào, dữ liệu đầu vào đóng vai trò then chốt. Một mô hình dù tốt đến đâu cũng sẽ cho kết quả tệ nếu dữ liệu đầu vào bẩn, chưa chuẩn hóa hoặc chưa được xử lý đúng cách.

Vì thế, việc xử lý dữ liệu đầu vào (data preprocessing) luôn là bước đầu tiên trong mọi dự án AI nghiêm túc. Trong bài viết này, bạn sẽ được hướng dẫn từng bước làm sạch – biến đổi – chuẩn hóa – mã hóa dữ liệu đầu vào, sao cho mô hình học máy có thể “hiểu” được.

Các thao tác sẽ được thực hiện bằng Python và thư viện scikit-learn/pandas, dễ áp dụng vào mọi đồ án sinh viên hoặc thực tế.

Tải bộ dữ liệu mẫu

Ta sẽ sử dụng dữ liệu điểm số sinh viên có cột dạng số và chữ để xử lý cho bài toán dự đoán điểm sinh viên

Bạn có thể tải một file mẫu tại đây:

Download Dataset – StudentsPerformance.csv (Kaggle)

Sau khi tải, đặt file vào thư mục data/StudentsPerformance.csv trong project của bạn.

Đọc dữ liệu và xem thông tin cơ bản

File: preprocess.py

import pandas as pd

# Đọc dữ liệu
df = pd.read_csv("data/StudentsPerformance.csv")

# Xem 5 dòng đầu
print(df.head())

# Kiểm tra thông tin
print(df.info())
print(df.describe())

Ở đây ta sẽ thấy một số cột như:

  • gender (male/female)

  • parental level of education (chữ)

  • test preparation course (none/completed)

  • math score, reading score, writing score (số)

Xử lý giá trị thiếu

Đầu tiên phải đảm bảo không có dữ liệu bị thiếu (NaN), nếu có cần xử lý:

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

# Có thể điền trung bình vào các cột số
df['math score'].fillna(df['math score'].mean(), inplace=True)

Nếu cột nào quá nhiều giá trị thiếu (trên 30%), có thể cân nhắc loại bỏ hoàn toàn.

Mã hóa biến phân loại (Encoding)

Các cột dạng text cần chuyển về dạng số để mô hình hiểu được.

# Mã hóa giới tính (label encoding)
df['gender'] = df['gender'].map({'female': 0, 'male': 1})

# Mã hóa test preparation course (one-hot encoding)
df = pd.get_dummies(df, columns=['test preparation course'], drop_first=True)

Nếu bạn dùng nhiều biến phân loại, nên dùng OneHotEncoder hoặc LabelEncoder từ sklearn.preprocessing.

Chuẩn hóa dữ liệu số

Các cột số nên được chuẩn hóa về cùng thang đo, nhất là nếu bạn dùng KNN, SVM hoặc Gradient Descent.

from sklearn.preprocessing import StandardScaler

scaler = StandardScaler()

# Cột số cần chuẩn hóa
cols_to_scale = ['math score', 'reading score', 'writing score']
df[cols_to_scale] = scaler.fit_transform(df[cols_to_scale])

Tạo cột mới từ cột có sẵn (Feature Engineering)

Bạn có thể tạo thêm các cột như:

# Tạo điểm trung bình
df['avg_score'] = df[['math score', 'reading score', 'writing score']].mean(axis=1)

# Tạo cột học lực (giả sử chia 3 mức)
def categorize(score):
    if score >= 0.8:
        return 'Giỏi'
    elif score >= 0.6:
        return 'Khá'
    else:
        return 'Trung bình'

df['hoc_luc'] = df['avg_score'].apply(categorize)

Sau đó bạn lại tiếp tục mã hóa cột hoc_luc như ở trên nếu cần dùng cho mô hình phân loại.

Chia dữ liệu train/test

Sau khi xử lý xong, bạn nên chia dữ liệu thành tập huấn luyện và kiểm tra:

from sklearn.model_selection import train_test_split

# Giả sử ta muốn dự đoán điểm trung bình
X = df.drop(['avg_score', 'hoc_luc'], axis=1)
y = df['avg_score']

X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2, random_state=42)

Bạn nên lưu dữ liệu đã xử lý vào file .csv hoặc .pkl để không cần xử lý lại mỗi lần:

import joblib
joblib.dump(scaler, "scaler.pkl")
X_train.to_csv("data/X_train.csv", index=False)
y_train.to_csv("data/y_train.csv", index=False)

Những lỗi thường gặp khi xử lý dữ liệu

  • Quên mã hóa cột chữ → mô hình lỗi vì không hiểu kiểu str

  • Quên chuẩn hóa dữ liệu → mô hình học sai, đặc biệt là KNN, SVM

  • Mã hóa nhãn không đồng nhất giữa train và test → kết quả sai

  • Mã hóa nhãn có thứ tự nhưng dùng one-hot → mô hình không hiểu được “tính liên tục”

Gợi ý thêm

Nếu bạn đang làm đồ án AI có xử lý dữ liệu, hãy áp dụng thêm:

  • Xử lý outlier (giá trị ngoại lai): dùng IQR hoặc Z-score

  • Giảm chiều dữ liệu: dùng PCA hoặc Feature Selection

  • Trực quan hóa dữ liệu: dùng seaborn, matplotlib để hiểu sâu hơn

pip install seaborn
import seaborn as sns
import matplotlib.pyplot as plt

sns.pairplot(df[['math score', 'reading score', 'writing score', 'gender']])
plt.show()

Kết luận

Xử lý dữ liệu đầu vào là bước không thể thiếu trong mọi đồ án AI. Một mô hình tốt luôn cần được “nuôi” bằng dữ liệu sạch, chính xác, và phù hợp.

Hy vọng bài viết đã giúp bạn nắm rõ các bước từ làm sạch, mã hóa, chuẩn hóa cho đến chia dữ liệu. Bạn có thể dùng bài này để chuẩn bị trước khi huấn luyện bất kỳ mô hình AI nào – từ hồi quy, phân loại cho đến clustering hoặc dự đoán nâng cao.

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!