Trong ML , chúng ta thường xử lý các tập dữ liệu chứa nhiều nhãn trong một hoặc nhiều cột. Các nhãn này có thể ở dạng từ hoặc số. Để làm cho dữ liệu dễ hiểu hoặc ở dạng con người có thể đọc được, dữ liệu huấn luyện thường được gắn nhãn bằng chữ.

Mã hóa nhãn đề cập đến việc chuyển đổi các nhãn thành dạng số để chuyển nó thành dạng máy có thể đọc được. Sau đó, các thuật toán ML có thể quyết định theo cách tốt hơn về cách các nhãn đó phải được vận hành. Đây là bước tiền xử lý quan trọng đối với tập dữ liệu có cấu trúc trong học có giám sát.

Thí dụ :

Giả sử chúng ta có một cột Chiều cao trong một số tập dữ liệu.

Sau khi áp dụng mã hóa nhãn, cột Chiều cao được chuyển đổi thành:

trong đó 0 là nhãn cho chiều cao, 1 là nhãn cho chiều cao trung bình và 2 là nhãn cho chiều cao ngắn.

Chúng ta áp dụng Mã hóa nhãn trên tập dữ liệu mống mắt trên cột mục tiêu là Loài. Nó chứa ba loài Iris-setosa, Iris-versicolor, Iris-virginica.

# Import libraries  
import numpy as np 
import pandas as pd 
  
# Import dataset 
df = pd.read_csv('../../data/Iris.csv') 
  
df['species'].unique() 

Output

array(['Iris-setosa', 'Iris-versicolor', 'Iris-virginica'], dtype=object)

Sau khi áp dụng code mã hóa nhãn –

# -----------------------------------------------------------
#Cafedev.vn - Kênh thông tin IT hàng đầu Việt Nam
#@author cafedevn
#Contact: cafedevn@gmail.com
#Fanpage: https://www.facebook.com/cafedevn
#Group: https://www.facebook.com/groups/cafedev.vn/
#Instagram: https://instagram.com/cafedevn
#Twitter: https://twitter.com/CafedeVn
#Linkedin: https://www.linkedin.com/in/cafe-dev-407054199/
#Pinterest: https://www.pinterest.com/cafedevvn/
#YouTube: https://www.youtube.com/channel/UCE7zpY_SlHGEgo67pHxqIoA/
# -----------------------------------------------------------

# Import label encoder 
from sklearn import preprocessing 
  
# label_encoder object knows how to understand word labels. 
label_encoder = preprocessing.LabelEncoder() 
  
# Encode labels in column 'species'. 
df['species']= label_encoder.fit_transform(df['species']) 
  
df['species'].unique() 

Output:

-->
array([0, 1, 2], dtype=int64)

Giới hạn của mã hóa nhãn

Mã hóa nhãn chuyển đổi dữ liệu ở dạng máy có thể đọc được, nhưng nó chỉ định một số duy nhất (bắt đầu từ 0) cho mỗi lớp dữ liệu. Điều này có thể dẫn đến phát sinh vấn đề ưu tiên trong việc đào tạo các tập dữ liệu. Nhãn có giá trị cao có thể được coi là có mức độ ưu tiên cao hơn nhãn có giá trị thấp hơn.

Thí dụ

Một thuộc tính có các lớp đầu ra mexico, paris, dubai. Trong Mã hóa nhãn cột này, mexico được thay thế bằng 0, paris được thay bằng 1 và dubai được thay bằng 2.

Với điều này, có thể hiểu rằng dubai có mức độ ưu tiên cao hơn mexico và paris trong khi đào tạo người mẫu, Nhưng thực tế không có mối quan hệ ưu tiên như vậy giữa các thành phố này ở đây.

Cài ứng dụng cafedev để dễ dàng cập nhật tin và học lập trình mọi lúc mọi nơi tại đây.

Nguồn và Tài liệu tiếng anh tham khảo:

Tài liệu từ cafedev:

Nếu bạn thấy hay và hữu ích, bạn có thể tham gia các kênh sau của cafedev để nhận được nhiều hơn nữa:

Chào thân ái và quyết thắng!

Đăng ký kênh youtube để ủng hộ Cafedev nha các bạn, Thanks you!