Feature hashing là gì?
- ★
- ★
- ★
- ★
- ★
Feature hashing được gọi là hashing trick chuyển đổi dữ liệu văn bản hoặc các thuộc tính phân loại (categorical attribute) với high cardinality thành một vectơ đặc trưng (feature vector) có số chiều (dimensionality) tùy ý.
Feature hashing rất hữu ích cho các đặc trưng (feature) có high cardinality với hàng trăm và hàng nghìn giá trị duy nhất. Feature hashing là một cách để giảm sự gia tăng về bộ nhớ bằng cách cho phép nhiều giá trị có mặt / được mã hóa như cùng một giá trị.
Đầu tiên, bạn chọn kích thước của các vectơ đặc trưng (feature vector) của mình, giả sử kích thước là 5. Sau đó, bằng cách sử dụng hàm băm (hash function), bạn chuyển đổi tất cả các giá trị của thuộc tính phân loại thành một số. Sau đó, bạn chuyển đổi số này thành một chỉ số (index) của vectơ đặc trưng của bạn. Hãy minh họa việc chuyển đổi văn bản "The quick brown fox" thành một vectơ đặc trưng sẽ trông như thế nào. Giá trị của mỗi từ trong cụm từ là:
the = 5 quick = 4 brown = 4 fox = 3
Hãy định nghĩa một hàm băm, h nhận một chuỗi làm đầu vào và đầu ra là một số nguyên không âm. Bằng cách áp dụng hàm băm cho mỗi từ và áp dụng môđun của 5 (kích thước của các vectơ đặc trưng) để thu được chỉ số của từ đó, chúng ta nhận được:
h(the) mod 5 = 0 h(quick) mod 5 = 4 h(brown) mod 5 = 4 h(fox) mod 5 = 3
Trong ví dụ này
- h (the) mod 5 = 0 có nghĩa là chúng ta có một từ ở chỉ số 0 của vectơ đặc trưng.
- h(quick) mod 5 = 4 và h(brown) mod 5 = 4 có nghĩa là chúng ta có hai từ ở chỉ số 4 của vectơ đặc trưng.
- h(fox) mod 5 = 3 có nghĩa là chúng ta có một từ ở chỉ số 3 của vector đặc trưng.
- Như bạn có thể thấy, không có từ nào trong các chỉ số 1 hoặc 2 của vectơ, vì vậy chúng ta giữ chúng là 0.
- Cuối cùng, chúng ta có vector đặc trưng là: [1, 0, 0, 1, 2].
Learning English Everyday