Tại sao một mã hóa nóng cải thiện hiệu suất học máy?


127

Tôi đã nhận thấy rằng khi mã hóa One Hot được sử dụng trên một tập dữ liệu cụ thể (ma trận) và được sử dụng làm dữ liệu huấn luyện cho các thuật toán học tập, nó mang lại kết quả tốt hơn đáng kể về độ chính xác dự đoán, so với việc sử dụng chính ma trận ban đầu làm dữ liệu huấn luyện. Làm thế nào để tăng hiệu suất này xảy ra?

Câu trả lời:


260

Nhiều thuật toán học hoặc học một trọng số cho mỗi tính năng hoặc chúng sử dụng khoảng cách giữa các mẫu. Cái trước là trường hợp cho các mô hình tuyến tính như hồi quy logistic, rất dễ giải thích.

Giả sử bạn có một tập dữ liệu chỉ có một tính năng phân loại duy nhất là "quốc tịch", với các giá trị "UK", "French" và "US". Giả sử, không mất tính tổng quát, các giá trị này được mã hóa thành 0, 1 và 2. Sau đó, bạn có trọng số w cho tính năng này trong trình phân loại tuyến tính, sẽ đưa ra một số quyết định dựa trên ràng buộc w × x + b> 0 hoặc tương đương w × x <b.

Vấn đề bây giờ là trọng lượng w không thể mã hóa lựa chọn ba chiều. Ba giá trị có thể có của w × x là 0, w và 2 × w. Cả ba điều này đều dẫn đến cùng một quyết định (tất cả đều <b hoặc ≥b) hoặc "Anh" và "Pháp" dẫn đến cùng một quyết định, hoặc "Pháp" và "Mỹ" đưa ra quyết định tương tự. Không có khả năng cho mô hình biết rằng "Vương quốc Anh" và "Hoa Kỳ" nên được đưa ra cùng một nhãn, với "tiếng Pháp" là số lẻ.

Bằng cách mã hóa một lần, bạn sẽ thổi bùng không gian tính năng thành ba tính năng một cách hiệu quả, mỗi tính năng sẽ có trọng số riêng, do đó, chức năng quyết định hiện là w [UK] x [UK] + w [FR] x [FR] + w [US] x [US] <b, trong đó tất cả các x là booleans. Trong không gian này, một hàm tuyến tính như vậy có thể biểu thị bất kỳ tổng / phân biệt nào của các khả năng (ví dụ: "UK hoặc US", có thể là một công cụ dự đoán cho ai đó nói tiếng Anh).

Tương tự, bất kỳ người học nào dựa trên các số liệu khoảng cách tiêu chuẩn (chẳng hạn như hàng xóm gần nhất k) giữa các mẫu sẽ bị nhầm lẫn mà không cần mã hóa một lần nóng. Với mã hóa ngây thơ và khoảng cách Euclide, khoảng cách giữa Pháp và Mỹ là 1. Khoảng cách giữa Mỹ và Anh là 2. Nhưng với mã hóa một nóng, khoảng cách theo cặp giữa [1, 0, 0], [0, 1 , 0] và [0, 0, 1] đều bằng √2.

Điều này không đúng với tất cả các thuật toán học tập; cây quyết định và các mô hình dẫn xuất như rừng ngẫu nhiên, nếu đủ sâu, có thể xử lý các biến phân loại mà không cần mã hóa một nóng.


4
Cảm ơn vì điều này Lars, nhưng khi chúng tôi thực hiện OneHotEncoding giúp tăng số lượng tính năng một cách hiệu quả, chúng tôi không cần phải tăng các mẫu nữa, để đảm bảo rằng nó không quá phù hợp.
Manoj

@Manoj So với biểu diễn thay thế rõ ràng của các biến phân loại, mã hóa mỗi cấp dưới dạng một số nguyên riêng biệt, tôi không nghĩ nó quan trọng: bạn cần có đủ số liệu thống kê.
Fred Foo

7
Có tài liệu nào bạn có thể chỉ ra để tôi có thể đọc thêm về điều này không? Cảm ơn.
Dr.Knowitall 17/08/2015

1
Có lợi ích gì khi sử dụng ma trận thứ hạng dưới mức đầy đủ (mà bạn sẽ không làm khi xây dựng mô hình thống kê thông thường) khi sử dụng các kỹ thuật học máy như tăng tốc?
Steve S

2
Điều này đối với tôi giống như những gì một nhà thống kê sẽ gọi là "biến giả". Nhưng có lẽ có một số tiết kiệm không gian lưu trữ.
Soldalma

3

Về việc tăng các tính năng bằng cách thực hiện mã hóa một nóng, người ta có thể sử dụng tính năng băm. Khi bạn thực hiện băm, bạn có thể chỉ định số lượng thùng ít hơn nhiều so với số lượng các tính năng mới được giới thiệu.


0

Khi bạn muốn dự đoán danh mục, bạn muốn dự đoán các mục của một bộ. Không sử dụng mã hóa một nóng cũng giống như để các danh mục có các danh mục lân cận (ví dụ: nếu bạn đã thực hiện hồi quy với các số nguyên của các danh mục thay thế) được tổ chức theo một cách nhất định và theo một thứ tự nhất định.

Bây giờ, điều gì xảy ra nếu bạn gán loại 0 đến 0, loại 1 đến 1 và loại 2 đến 2 mà không có mã hóa một lần nóng và dự đoán thuật toán của bạn không chắc chắn nên chọn 0 hay 2: anh ta nên dự đoán 1 anh ta nghĩ đó là 0 hay 2?

Bạn thấy nó đi đâu. Điều tương tự cũng xảy ra với các đầu vào dữ liệu của bạn: nếu chúng không nên được coi là hàng xóm, thì đừng hiển thị chúng cho thuật toán của bạn như hàng xóm.

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.