Tính năng biến đổi dữ liệu danh mục

Một số tính năng có thể là các giá trị riêng biệt không theo mối quan hệ có thứ tự. Ví dụ: các giống chó, từ hoặc mã bưu chính. Các tính năng này được gọi là danh mục và mỗi giá trị được gọi là một danh mục. Bạn có thể biểu thị các giá trị phân loại dưới dạng chuỗi hoặc số chẵn, nhưng bạn sẽ không thể so sánh các số này hoặc trừ chúng.

Thông thường, bạn nên trình bày các tính năng chứa giá trị số nguyên dưới dạng dữ liệu danh mục thay vì dữ liệu số. Ví dụ: hãy xem xét một tính năng mã bưu chính, trong đó giá trị là số nguyên. Nếu thể hiện sai tính năng này bằng số, thì bạn sẽ yêu cầu mô hình tìm một mối quan hệ số giữa các mã bưu chính khác nhau; ví dụ: bạn muốn mô hình xác định rằng mã bưu chính 20004 gấp đôi (hoặc một nửa) tín hiệu dưới dạng mã bưu chính 10002. Bằng cách trình bày mã bưu chính dưới dạng dữ liệu phân loại, bạn cho phép mô hình tìm các tín hiệu riêng cho từng mã bưu chính riêng lẻ.

Nếu số lượng danh mục của một trường dữ liệu nhỏ, chẳng hạn như ngày trong tuần hoặc một bảng màu hạn chế, bạn có thể tạo một tính năng riêng cho mỗi danh mục. Ví dụ:

Mỗi màu trong bảng được biểu thị dưới dạng một tính năng riêng biệt.
Tức là, mỗi màu là một tính năng riêng biệt trong vectơ tính nă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.v. Hình 1: Một tính năng duy nhất cho từng danh mục.

 

Sau đó, một mô hình có thể tìm hiểu trọng số riêng cho từng màu. Ví dụ: có lẽ mô hình có thể hiểu rằng ô tô màu đỏ đắt hơn ô tô màu xanh lục.

Sau đó, bạn có thể lập chỉ mục các tính năng này.

Mỗi màu trong bảng màu đều thuộc về cùng một tính năng. 
Tức là màu hiện chỉ là một đối tượng duy nhất trong vectơ đặc điểm.
Mỗi màu có một giá trị duy nhất. Ví dụ: màu đỏ có giá trị 0, màu cam có 
giá trị 1, v.v. Hình 2: Các tính năng được lập chỉ mục.

 

Loại ánh xạ này được gọi là từ vựng.

Từ vựng

Trong từ vựng, mỗi giá trị đại diện cho một tính năng duy nhất.

Index NumberCategory
0Red
1Orange
2Blue
......

Mô hình này tra cứu chỉ mục từ chuỗi, gán 1.0 cho vùng tương ứng trong vectơ tính năng và 0.0 cho tất cả các khe khác trong vectơ tính năng.

Sơ đồ quy trình hai đầu để ánh xạ các danh mục với vectơ đặc trưng.
Trong sơ đồ, các tính năng nhập có màu vàng, cam, xanh dương, xanh dương. Hệ thống sử dụng từ vựng được lưu trữ (màu đỏ là 0, màu cam là 1, màu xanh lam là 2, màu vàng là 3, v.v.) để ánh xạ giá trị đầu vào với mã nhận dạng. Do đó, hệ thống ánh xạ màu vàng, cam, xanh dương, xanh dương tới 3, 1, 2, 2. Sau đó, hệ thống sẽ chuyển đổi các giá trị đó thành vectơ tính năng nóng. Ví dụ: khi hệ thống có 7 màu sắc có thể có, 3 màu sẽ trở thành 0, 0, 0, 0, 1, 0, 0, 0, 0. Hình 3: Quy trình từ đầu đến cuối để ánh xạ các danh mục với các đối tượng vectơ.

Lưu ý về cách biểu diễn thưa thớt

Nếu danh mục của bạn là ngày trong tuần, ví dụ: bạn có thể kết thúc biểu thị thứ Sáu với vectơ tính năng [0, 0, 0, 0, 1, 0, 0]. Tuy nhiên, hầu hết các hoạt động triển khai của hệ thống máy học đều sẽ biểu thị vectơ này trong bộ nhớ với biểu diễn thưa thớt. Đại diện chung là danh sách các giá trị không trống và chỉ mục tương ứng. Các ví dụ này là 1.0 cho giá trị và [4] cho chỉ mục. Việc này cho phép bạn tiêu tốn ít bộ nhớ hơn và lưu số lượng lớn bằng 0, đồng thời cho phép nhân ma trận hiệu quả hơn. Về mặt toán học cơ bản, [4] tương đương với [0, 0, 0, 0, 1, 0, 0].

Ngoài Vocab (OOV)

Cũng giống như dữ liệu dạng số, các dữ liệu phân loại cũng có trong dữ liệu. Ví dụ: hãy xem xét một tập dữ liệu có chứa thông tin mô tả về ô tô. Một trong những tính năng của tập dữ liệu này có thể là màu ô tô. Giả sử các màu sắc phổ biến trên ô tô (đen, trắng, xám, v.v.) được thể hiện rõ trong tập dữ liệu này và bạn sẽ chuyển mỗi màu sắc vào một danh mục để có thể tìm hiểu cách những màu sắc này ảnh hưởng đến giá trị. Tuy nhiên, giả sử tập dữ liệu này chứa một số ít các chiếc ô tô có màu sắc lập dị (maua, puce, bơ). Thay vì chia mỗi màu trong số này thành một danh mục riêng, bạn có thể gộp các màu đó vào một danh mục bắt được toàn bộ có tên là Out of Vocab (OOV). Bằng cách sử dụng OOV, hệ thống sẽ không lãng phí thời gian đào tạo cho từng màu hiếm gặp đó.

Băm

Một tuỳ chọn khác là băm mọi chuỗi (danh mục) vào không gian lập chỉ mục có sẵn. Việc băm thường gây ra xung đột, nhưng bạn dựa vào mô hình tìm hiểu một số cách biểu thị được chia sẻ của các danh mục trong cùng một chỉ mục hoạt động tốt cho vấn đề đã cho.

Đối với các thuật ngữ quan trọng, việc băm có thể tệ hơn việc chọn từ vựng, do xung đột. Mặt khác, việc băm không yêu cầu bạn phải tập hợp từ vựng. Đây là một lợi thế nếu hoạt động phân phối tính năng thay đổi nhiều theo thời gian.

Sơ đồ thể hiện hai danh sách từ. Một danh sách bao gồm 10 từ. Danh sách còn lại cho thấy 10 từ được chia thành 8 nhóm băm. Do đó, 6 nhóm băm chứa một từ, trong khi 2 nhóm băm đều chứa 2 từ.  Mỗi nhóm băm được xác định bằng một số từ 1 đến 8. Hình 4: Liên kết các mục với một từ vựng.

Kết hợp băm và từ vựng

Bạn có thể áp dụng phương pháp kết hợp và băm cả từ vựng. Sử dụng từ vựng cho các danh mục quan trọng nhất trong dữ liệu của bạn, nhưng thay thế nhóm OOV bằng nhiều nhóm OOV và sử dụng tính năng băm để chỉ định danh mục cho các nhóm.

Các danh mục trong nhóm băm phải chia sẻ chỉ mục và mô hình này có khả năng sẽ không đưa ra gợi ý phù hợp, nhưng chúng tôi đã phân bổ một lượng bộ nhớ để cố gắng tìm hiểu các danh mục bên ngoài phạm vi từ vựng.

Sơ đồ thể hiện 3 danh sách từ. Một danh sách bao gồm 10 từ để phân loại. Hai danh sách còn lại liên kết 10 từ đó thành các từ vựng và bộ chứa. Điều này có nghĩa là 5 từ sẽ ánh xạ trực tiếp đến từ vựng, trong khi 5 từ khác sẽ ánh xạ tới 2 nhóm băm. Một bộ chứa dữ liệu băm chứa hai từ; nhóm bộ chứa băm khác chứa ba từ.  Từ vựng
chứa các từ phổ biến; nhóm băm chứa các từ hiếm hơn. Hình 5: Phương pháp kết hợp kết hợp từ vựng và hàm băm.

Lưu ý về tính năng nhúng

Hãy nhớ rằng Khoá học máy họcnhúng là một tính năng danh mục được biểu thị dưới dạng một tính năng được đánh giá liên tục. Các mô hình chuyên sâu thường xuyên chuyển đổi các chỉ mục từ một chỉ mục thành dạng nhúng.

Sơ đồ biểu diễn quy trình từ đầu đến cuối để ánh xạ các danh mục với vectơ đặc trưng thông qua việc nhúng. Bảng nhúng bao gồm một tập hợp các hàng được đánh số. Mỗi hàng bao gồm một tập hợp các giá trị dấu phẩy động trong khoảng từ 0 đến 1,0. Để chuyển đổi một danh mục, hệ thống sẽ sao chép hàng tương ứng từ bảng nhúng.
Ví dụ: nếu danh mục đầu vào là 0, hệ thống sẽ sao chép hàng đầu tiên của bảng nhúng vào vectơ tính năng. Nếu danh mục nhập là 1,
hệ thống sẽ sao chép hàng thứ hai của bảng nhúng vào vectơ
tính năng. Hình 6: Vectơ tính năng thưa thớt qua tính năng nhúng

Các phép biến đổi khác mà chúng ta đã thảo luận có thể được lưu trữ trên đĩa, nhưng tính năng nhúng vẫn khác nhau. Vì được nhúng đã được đào tạo nên chúng không phải là một cách biến đổi dữ liệu thông thường. Chúng là một phần của mô hình. Chúng được đào tạo với các trọng số mô hình khác và về mặt chức năng tương đương với một lớp trọng số.

Vậy còn tính năng nhúng trước thì sao? Nội dung nhúng được đào tạo trước thường vẫn có thể sửa đổi được trong quá trình đào tạo, vì vậy về nguyên lý, chúng vẫn là một phần của mô hình.