Nội dung bài viết
© 2025 AI VIET NAM. All rights reserved.
Tác giả: AI VIET NAM (AI VIET NAM)
Keywords: LabelEncoder, Naive Bayes, mã hóa nhãn, classification, preprocessing
Khi làm việc với những mô hình phân loại cơ bản như Naive Bayes, một câu hỏi quen thuộc thường xuất hiện:
“Nhãn (label) đã là chữ, ví dụ ‘spam’ – ‘ham’ hay ‘dog’ – ‘cat’, vậy có cần mã hóa lại không? Hay mô hình tự hiểu?”
Thực tế, hầu hết thuật toán ML đều yêu cầu nhãn được biểu diễn bằng dạng số.
Không phải vì mô hình cần giá trị lớn – nhỏ, mà vì nó cần một định danh để hiểu mỗi lớp là một thực thể riêng biệt.
Ở giai đoạn đầu học ML (nhóm kiến thức thuộc Module 4 – Classification), nhiều bạn dễ nhầm lẫn giữa:
Trong bài này, chúng ta tập trung vào lý do vì sao LabelEncoder đặc biệt quan trọng với Naive Bayes.
Naive Bayes là mô hình dựa trên xác suất có điều kiện.
Khi huấn luyện, nó tính:
Để làm được điều này, mô hình cần:
Các định danh này phải là số nguyên (
012Mô hình không hiểu “spam” lớn hơn “ham” hay “dog” bé hơn “cat”.
Transformer thì có embedding, còn Naive Bayes thì không → nó cần định danh rời rạc.
LabelEncoder giúp tạo ra chuỗi giá trị:
10Hoặc theo thứ tự từ điển.
Chỉ cần định danh, không có ý nghĩa thứ tự.
Ví dụ bài toán 3 lớp A, B, C:
012Mô hình sẽ tạo 3 nhóm xác suất tương ứng.
Nếu không có mã hóa thống nhất, việc lưu – truy xuất các nhóm xác suất sẽ trở nên rối.
Các thư viện như scikit-learn yêu cầu:
yNếu bạn bỏ qua bước LabelEncoder, mô hình sẽ báo lỗi ngay từ bước
fit()Sau khi mô hình trả về số:
012Bạn sẽ cần ánh xạ ngược lại thành nhãn thật.
LabelEncoder có sẵn
inverse_transformGiả sử bài toán phân loại email:
| Nhãn gốc | |
|---|---|
| Nội dung 1 | spam |
| Nội dung 2 | ham |
| Nội dung 3 | spam |
| Nội dung 4 | ham |
LabelEncoder chuyển thành:
| Nhãn mã hóa | |
|---|---|
| Nội dung 1 | 1 |
| Nội dung 2 | 0 |
| Nội dung 3 | 1 |
| Nội dung 4 | 0 |
Lúc huấn luyện, Naive Bayes sẽ tính:
P(y=0)P(y=1)P(words | y=0)P(words | y=1)Tất cả đều cần định danh số.
Ở mức triển khai pipeline ML (nhóm kỹ năng thường xuất hiện trong Module 3–5):
Nhiều lỗi của người mới thường đến từ việc không lưu LabelEncoder, dẫn đến nhãn bị gán khác thứ tự khi chạy dự đoán.
Chủ đề này liên quan trực tiếp đến:
Việc hiểu nhãn được encode như thế nào giúp bạn tránh sai sót trong suốt vòng đời mô hình.
Q1. LabelEncoder có làm thay đổi ý nghĩa các lớp không?
A: Không, chỉ gán mã số để mô hình dễ xử lý.
Q2. LabelEncoder có làm mô hình hiểu nhầm thứ tự không?
A: Không, Naive Bayes không quan tâm thứ tự số – chỉ xem đó là ID.
Q3. Có thể dùng One-Hot cho nhãn không?
A: Không phù hợp, nhãn chỉ cần 1 định danh, không cần vector.
Q4. Nếu nhãn đã là số rồi, có cần LabelEncoder?
A: Không nhất thiết, miễn là số đó đại diện 1 lớp duy nhất.
Q: Mình con số 0 thì học nổi không?
A: Chỉ cần có thời gian học mỗi ngày. Kiến thức và tài liệu team admin lo.
Q: Ai dạy AIO?
A: Toàn bộ admin AIO trực tiếp dạy và hỗ trợ trong suốt hành trình.
Q: Admin có “xịn” không?
A: Admin đều là người làm nghề thật. Không dám nói xịn, chỉ dạy bằng hết sức mình.
Q: AIO khác gì trung tâm khác?
A: AIO không phải trung tâm. Đây là dự án học tập cộng đồng với tinh thần “Cùng nhau học – cùng nhau khổ – cùng nhau lớn”.