Dữ liệu phân loại: Từ vựng và mã hoá chung

Từ phương diện là từ đồng nghĩa với số lượng phần tử trong một vectơ đối tượng. Một số đối tượng phân loại có thứ nguyên 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, Chuyên viên, 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 Kim, Sao Kim, Trái Đất

Khi một đối tượng phân loại có ít danh mục, bạn có thể mã hoá dưới dạng từ vựng. Với mã hoá từ vựng, mô hình xử lý mỗi giá trị phân loại có thể có dưới dạng tính năng riêng biệt. Trong quá trình đào tạo, mô hình này 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 dựa trên giá xe ô tô, một phần là về một tính năng phân loại có tên là car_color. Có lẽ ô tô màu đỏ đáng giá hơn xe màu xanh lục. Vì các nhà sản xuất cung cấp một số lượng màu ngoại thất có giới hạn, nên car_color là tính năng phân loại ít chiều. Hình minh hoạ dưới đây gợi ý một từ vựng (các giá trị có thể có) cho car_color:

Hình 1. Mỗi màu trong bảng màu được thể hiện dưới dạng một màu riêng biệt
      của chúng tôi. Tức là mỗi màu là một đối tượng riêng biệt trong vectơ đối tượng.
      Ví dụ: "Màu đỏ" là một tính năng 'Màu cam' là một tính năng riêng biệt,
      và cứ tiếp tục như vậy.
Hình 1. Một tính năng riêng biệt cho mỗi danh mục.

Bài tập: Kiểm tra trực giác của bạn

Đúng hay sai: Mô hình học máy có thể huấn luyện trực tiếp dựa trên các giá trị chuỗi thô, như "Đỏ""Đen", mà không có chuyển đổi các giá trị này thành vectơ số.
Đúng
Trong quá trình huấn luyện, một mô hình chỉ có thể thao tác với các số dấu phẩy động. Chuỗi "Red" không phải là số thực. Bạn phải chuyển đổi các chuỗi như "Red" thành số dấu phẩy động.
Sai
Mô hình học máy chỉ có thể huấn luyện cho những tính năng có các giá trị dấu phẩy động, nên bạn cần chuyển đổi các chuỗi đó để dấu phẩy động trước khi huấn luyện.

Số chỉ mục

Các mô hình học máy chỉ có thể thao tác với số dấu phẩy động. 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 đây:

Hình 2. Mỗi màu liên kết với một giá trị số nguyên duy nhất. Để
      ví dụ: "Đỏ" được liên kết với số nguyên 0, "Cam" với
      số nguyên 1, v.v.
Hình 2. Các tính năng đã được lập chỉ mục.

Kiểm tra trực giác của bạn

Mô hình của bạn có được huấn luyện trực tiếp dựa trên số chỉ mục được hiển thị trong Hình 2?
Nếu mô hình được huấn luyện dựa trên các số chỉ mục, coi sai mỗi thông số là một giá trị số và xem xét "Black" (chỉ mục số 5) có ý nghĩa hơn gấp 5 lần vào mô hình khác với "Orange" (chỉ mục số 1).
Không
Mô hình của bạn không được huấn luyện dựa trên các số chỉ mục. Nếu có, mô hình của bạn sẽ coi mỗi số chỉ mục là số và coi "Black" (chỉ số số 5) là Có ý nghĩa gấp 5 lần đối với mô hình này so với "Orange" (chỉ mục số 1).

Mã hoá một lần

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 phương thức mã hoá một nóng. Ở phương thức mã hoá một nhiệt:

  • Mỗi danh mục được biểu thị bằng một vectơ (mảng) của N phần tử, trong đó N là số lượng danh mục. Ví dụ: nếu car_color có 8 đề xuất danh mục, thì vectơ một nóng biểu thị sẽ có tám phần tử.
  • Chính xác một trong các phần tử trong vectơ một nóng có giá trị 1,0; tất cả các phần tử còn lại đều có giá trị 0.0.

Ví dụ: bảng sau đây trình bày chế độ mã hoá một nhiệt cho mỗi chế độ trong car_color:

Tính năng Đỏ Orange Xanh dương Vàng Xanh lục Đen Tía Nâu
"Mà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ơ một nóng, không phải chuỗi hoặc số chỉ mục, được truyền thành vectơ đối tượng. Mô hình này học trọng số riêng cho mỗi phần tử của vectơ đối tượng.

Hình minh hoạ sau đây cho thấy các phép biến đổi khác nhau trong trình bày từ vựng:

Hình 3. Sơ đồ quy trình toàn diện để liên kết các danh mục với
      vectơ đặc trưng. Trong sơ đồ, các tính năng đầu vào có màu "Vàng",
      "Cam", "Xanh dương" và "Xanh dương" lần thứ hai.  Hệ thống sử dụng một mã
      từ vựng ('Đỏ' là 0, 'Cam' là 1, 'Xanh' là 2, 'Vàng' là 3, và
      tương tự) để ánh xạ giá trị đầu vào với một mã nhận dạng. Do đó, hệ thống lập bản đồ 'Vàng',
      "Cam", "Xanh dương" và "Xanh dương" đến 3, 1, 2, 2. Sau đó, hệ thống chuyển đổi
      các giá trị đó thành vectơ đối tượng một điểm nóng. Ví dụ: với một hệ thống
      với tám màu có thể, 3 trở thành 0, 0, 0, 1, 0, 0, 0, 0.
Hình 3. Quá trình toàn diện để ánh xạ các danh mục với vectơ đặc trưng.

Biểu diễn thưa thớt

Đối tượng có giá trị chủ yếu bằng 0 (hoặc trống) được gọi là tính năng thưa thớt. Nhiều các tính năng phân loại (chẳng hạn như car_color) thường là các tính năng 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 điểm nóng cho "Blue" là:

[0, 0, 1, 0, 0, 0, 0, 0]

1 đang ở vị trí 2 (khi bắt đầu đếm từ 0), nên hàm cách biểu diễn thưa cho vectơ một nóng trước đó là:

2

Lưu ý rằng biểu diễn thưa thớt tốn ít bộ nhớ hơn nhiều so với vectơ một nóng 8 phần tử. Quan trọng là mô hình phải được huấn luyện trên vectơ một nóng, chứ không phải biểu diễn thưa thớt.

Các điểm ngoại lai 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 điểm ngoại lai. Giả sử car_color không chỉ chứa màu phổ biến mà còn có một số màu hiếm khi được sử dụng màu ngoại lệ, chẳng hạn như "Mauve" hoặc "Avocado". Thay vì gán cho mỗi màu sắc ngoại lệ này một danh mục riêng, bạn có thể gộp chúng thành một bài hát chung duy nhất danh mục có tên ngoài từ vựng (OOV). Nói cách khác, tất cả các màu ngoại lệ được gộp thành một màu duy nhất bộ chứa ngoại lệ. Hệ thống sẽ học được trọng số duy nhất cho bộ chứa ngoại lệ đó.

Mã hoá các tính năng phân loại theo chiều cao

Một số tính năng phân loại có nhiều phương diện, chẳng hạn như các kết quả trong bảng sau:

Tên đối tượng Số danh mục Danh mục mẫu
words_in_english Khoảng 500.000 "vui vẻ", "đi dạo"
US_postal_codes Khoảng 42.000 "02114", "90301"
last_names_in_Germany Khoảng 850.000 "Schmidt", "Schneider"

Khi số lượng danh mục nhiều, mã hoá một lần thường là một lựa chọn không đúng. Phần Nhúng, trình bày chi tiết ở phần riêng Mô-đun nhúng thường lựa chọn tốt hơn nhiều. Nhúng làm giảm đáng kể số lượng mang lại lợi ích cho mô hình theo hai cách quan trọng:

  • Mô hình này thường huấn luyện nhanh hơn.
  • Mô hình đã xây dựng thường dự đoán các dự đoán nhanh hơn. Đó là mô hình có độ trễ thấp hơn.

Băm (còn được gọi là băm) ) là một cách ít phổ biến hơn để giảm số lượng phương diện.