Thuật ngữ phương diện là từ đồng nghĩa với số lượng phần tử trong một vectơ đặc trưng. Một số đặc điểm phân loại có tính chất chiều thấp. Ví dụ:
Tên đối tượng | Số danh mục | Danh mục mẫu |
---|---|---|
snowed_today | 2 | Đúng, Sai |
skill_level | 3 | Người mới bắt đầu, Người thực hành, Chuyên gia |
season | 4 | Mùa đông, mùa xuân, mùa hè, mùa thu |
day_of_week | 7 | Thứ Hai, thứ Ba, thứ Tư |
hành tinh | 8 | Sao Thuỷ, Sao Kim, Trái Đất |
Khi một đặc điểm phân loại có số lượng danh mục có thể có thấp, bạn có thể mã hoá đặc điểm đó dưới dạng một từ vựng. Với một mã hoá từ vựng, mô hình sẽ coi mỗi giá trị phân loại có thể có là một đặc điểm riêng biệt. Trong quá trình huấn luyện, mô hình sẽ học các trọng số khác nhau cho từng danh mục.
Ví dụ: giả sử bạn đang tạo một mô hình để dự đoán giá của ô tô dựa trên một phần của một đối tượng có tên là car_color
.
Có lẽ xe màu đỏ có giá trị hơn xe màu xanh lục.
Vì nhà sản xuất chỉ cung cấp một số ít màu sơn ngoại thất, nên car_color
là một đặc điểm phân loại có số chiều thấp.
Hình minh hoạ sau đây đề xuất một từ vựng (các giá trị có thể có) cho car_color
:
Bài tập: Kiểm tra mức độ hiểu biết của bạn
"Red"
không phải là số thập phân. Bạn phải chuyển đổi các chuỗi như "Red"
thành số dấu phẩy động.
Số chỉ mục
Các mô hình học máy chỉ có thể thao tác với số thực. Do đó, bạn phải chuyển đổi mỗi chuỗi thành một số chỉ mục duy nhất, như trong hình minh hoạ sau:
Sau khi chuyển đổi các chuỗi thành số chỉ mục duy nhất, bạn sẽ cần xử lý thêm dữ liệu để biểu thị dữ liệu theo cách giúp mô hình tìm hiểu các mối quan hệ có ý nghĩa giữa các giá trị. Nếu dữ liệu về đặc điểm phân loại được giữ nguyên dưới dạng số nguyên được lập chỉ mục và được tải vào một mô hình, thì mô hình sẽ coi các giá trị được lập chỉ mục là các số thực liên tục. Sau đó, mô hình sẽ xem xét "tím" có khả năng xuất hiện gấp 6 lần so với "cam".
Mã hoá one-hot
Bước tiếp theo trong việc xây dựng từ vựng là chuyển đổi từng số chỉ mục thành mã hoá one-hot. Trong mã hoá one-hot:
- Mỗi danh mục được biểu thị bằng một vectơ (mảng) gồm N phần tử, trong đó N là số danh mục. Ví dụ: nếu
car_color
có 8 danh mục có thể có, thì vectơ mã hoá một lần đại diện sẽ có 8 phần tử. - Chính xác một trong số các phần tử trong một vectơ mã hoá một lần có giá trị 1.0; tất cả các phần tử còn lại có giá trị 0.0.
Ví dụ: bảng sau đây cho thấy phương pháp mã hoá một lần cho từng màu trong car_color
:
Tính năng | Đỏ | Màu cam | Xanh dương | Vàng | Xanh lục | Đen | Tía | Nâu |
---|---|---|---|---|---|---|---|---|
"Đỏ" | 1 | 0 | 0 | 0 | 0 | 0 | 0 | 0 |
"Cam" | 0 | 1 | 0 | 0 | 0 | 0 | 0 | 0 |
"Xanh dương" | 0 | 0 | 1 | 0 | 0 | 0 | 0 | 0 |
"Vàng" | 0 | 0 | 0 | 1 | 0 | 0 | 0 | 0 |
"Xanh lục" | 0 | 0 | 0 | 0 | 1 | 0 | 0 | 0 |
"Đen" | 0 | 0 | 0 | 0 | 0 | 1 | 0 | 0 |
"Tím" | 0 | 0 | 0 | 0 | 0 | 0 | 1 | 0 |
"Nâu" | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 1 |
Đó là vectơ one-hot, không phải chuỗi hoặc số chỉ mục, được truyền đến vectơ đặc trưng. Mô hình này sẽ tìm hiểu một trọng số riêng cho từng phần tử của vectơ đối tượng.
Hình minh hoạ sau đây cho thấy nhiều phép biến đổi trong biểu diễn từ vựng:
Biểu diễn thưa
Một tính năng có giá trị chủ yếu là 0 (hoặc trống) được gọi là tính năng thưa thớt. Nhiều đặc điểm phân loại, chẳng hạn như car_color
, có xu hướng là các đặc điểm thưa thớt.
Biểu diễn thưa thớt có nghĩa là lưu trữ vị trí của 1.0 trong một vectơ thưa thớt. Ví dụ: vectơ một lần nóng cho "Blue"
là:
[0, 0, 1, 0, 0, 0, 0, 0]
Vì 1
ở vị trí 2 (khi bắt đầu đếm từ 0), nên biểu diễn thưa thớt cho vectơ mã hoá một lần trước đó là:
2
Xin lưu ý rằng biểu diễn thưa thớt tiêu tốn ít bộ nhớ hơn nhiều so với vectơ mã hoá một lần gồm 8 phần tử. Điều quan trọng là mô hình phải huấn luyện trên vectơ một lần mã hoá, chứ không phải biểu diễn thưa thớt.
Giá trị ngoại lệ trong dữ liệu phân loại
Giống như dữ liệu số, dữ liệu phân loại cũng chứa các giá trị ngoại lệ. Giả sử car_color
không chỉ chứa các màu phổ biến mà còn chứa một số màu bất thường hiếm khi được sử dụng, chẳng hạn như "Mauve"
hoặc "Avocado"
.
Thay vì gán cho mỗi màu sắc bất thường này một danh mục riêng, bạn có thể gộp chúng vào một danh mục "bao hàm tất cả" duy nhất có tên là ngoài từ vựng (OOV). Nói cách khác, tất cả các màu bất thường đều được đưa vào một nhóm bất thường duy nhất. Hệ thống sẽ tìm hiểu một trọng số duy nhất cho nhóm giá trị ngoại lệ đó.
Mã hoá các đặc điểm phân loại có nhiều chiều
Một số đặc điểm phân loại có số lượng phương diện lớn, chẳng hạn như những đặc điểm trong bảng sau:
Tên đối tượng | Số danh mục | Danh mục mẫu |
---|---|---|
words_in_english | ~500.000 | "vui vẻ", "đi bộ" |
US_postal_codes | ~42.000 | "02114", "90301" |
last_names_in_Germany | ~850.000 | "Schmidt", "Schneider" |
Khi số lượng danh mục lớn, mã hoá một lần thường là lựa chọn không phù hợp. Các mục nhúng (được trình bày chi tiết trong một mô-đun Mục nhúng riêng biệt) thường là lựa chọn phù hợp hơn nhiều. Các mục nhúng giảm đáng kể số lượng phương diện, mang lại lợi ích cho các mô hình theo 2 cách quan trọng:
- Mô hình thường huấn luyện nhanh hơn.
- Mô hình đã tạo thường suy luận dự đoán nhanh hơn. Tức là mô hình có độ trễ thấp hơn.
Băm (còn được gọi là thủ thuật băm) là một cách ít phổ biến hơn để giảm số lượng phương diện.