2013-07-04 23 views
106

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 đào tạo cho thuật toán học, nó cho kết quả tốt hơn đáng kể so với độ chính xác dự đoán. dữ liệu. Làm thế nào để tăng hiệu suất này xảy ra?Tại sao một mã hóa nóng cải thiện hiệu năng học máy?

Trả lời

225

Nhiều thuật toán học tập hoặc tìm hiểu một trọng lượng duy nhất cho mỗi đối tượng hoặc họ sử dụng khoảng cách giữa các mẫu. Trước đây 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ó 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ị "Vương quốc Anh", "tiếng Pháp" và "Hoa Kỳ". Giả sử, không mất tính tổng quát, chúng được mã hóa là 0, 1 và 2. Sau đó, bạn có một trọng số w cho tính năng này trong một trình phân loại tuyến tính, điều này 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 số 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 là số < b hoặc ≥b) hoặc "Vương quốc Anh" và "tiếng Pháp" dẫn đến cùng một quyết định hoặc "Pháp" và "Hoa Kỳ" đưa ra quyết định tương tự. Không có khả năng cho mô hình để tìm hiểu rằng "Anh" và "Hoa Kỳ" nên được đưa ra cùng một nhãn, với "tiếng Pháp" lẻ ra ngoài.

Bằng mã hóa một lần, bạn sẽ tăng hiệu quả không gian lên ba tính năng, 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à boolean. Trong không gian này, hàm tuyến tính như vậy có thể biểu thị bất kỳ tổng hợp/phân tách nào của các khả năng (ví dụ: "Vương quốc Anh hoặc Hoa Kỳ", có thể là một yếu tố dự báo cho người nói tiếng Anh).

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

Điều này không đúng cho tất cả các thuật toán học tập; cây quyết định và các mô hình có nguồn gốc 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.

+3

câu trả lời này thực sự tốt. cảm ơn. – goh

+4

Cảm ơn vì Lars này, nhưng khi chúng ta thực hiện OneHotEncoding, điều này có hiệu quả làm tăng số lượng các tính năng, chúng ta cũng không cần phải tăng thêm các mẫu, để đảm bảo nó không quá mức. – Manoj

+0

@Manoj So với đại diện thay thế rõ ràng của các biến phân loại, mã hóa mỗi cấp độ như một số nguyên riêng biệt, tôi không nghĩ rằng nó quan trọng: bạn cần thống kê đầy đủ một trong hai cách. –

2

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

Các vấn đề liên quan