Cách mã hóa biến phân loại thành biến số khi sử dụng SVM hoặc Mạng thần kinh


19

Để sử dụng SVM hoặc Mạng thần kinh, nó cần chuyển đổi (mã hóa) các biến phân loại thành các biến số, phương pháp bình thường trong trường hợp này là sử dụng các giá trị nhị phân 0-1 với giá trị phân loại thứ k được chuyển đổi thành (0,0, .. ., 1,0, ... 0) (1 ở vị trí thứ k). Có phương pháp nào khác để thực hiện việc này không, đặc biệt là khi có một số lượng lớn các giá trị phân loại (ví dụ 100100) sao cho biểu diễn 0-1 sẽ giới thiệu một số lượng lớn các kích thước bổ sung (đơn vị đầu vào) trong Mạng thần kinh có vẻ không được mong muốn hoặc mong đợi ?

Tôi đang hỏi về chiến lược chung.


Bạn đang hỏi về chiến lược chung hoặc về một số vấn đề cụ thể?
Denis Tarasov

Câu trả lời:


11

Trong NLP, trong đó các từ thường được mã hóa dưới dạng 1-k, việc sử dụng các từ nhúng đã xuất hiện gần đây. Các trang wikipedia với sự tham khảo của nó là một khởi đầu tốt.

Ý tưởng chung là tìm hiểu một biểu diễn vectơ cho mỗi từ trong đó các từ tương tự về mặt ngữ nghĩa gần nhau trong không gian đó. Do đó, các đầu vào có kích thước thay vì kích thước của từ vựng. i nxTôiRnTôin

Có lẽ bạn có thể chuyển ý tưởng đó vào thiết lập của bạn.


10

Các phương pháp 'tiêu chuẩn' là: mã hóa một nóng (mà bạn đã đề cập trong câu hỏi). Nếu có quá nhiều danh mục có thể, nhưng bạn cần mã hóa 0-1, bạn có thể sử dụng thủ thuật băm .

Phương pháp thường được sử dụng khác là trả lời trung bình trên danh mục: xem hình ảnh từ nhận xét tại kaggle .


1

Bạn có thể sử dụng dummyVarstrong R, từ caretgói. Nó sẽ tự động tạo các cột khác nhau dựa trên số cấp. Sau đó, bạn có thể sử dụng cbindvà đính kèm nó vào dữ liệu gốc của bạn. Các tùy chọn khác bao gồm model.matrixsparse.model.matrix.


0

Bạn có thể thử mã hóa nhị phân nhỏ gọn hơn và đôi khi vượt trội hơn một lần. Bạn có thể thực hiện nhúng phân loại trong Keras, ví dụ.


0

k-1

"Các thực thể nhúng của các biến phân loại" của Cheng Guo, Felix Berkhahn

Chúng tôi ánh xạ các biến phân loại trong một vấn đề gần đúng hàm vào các không gian Euclide, đó là các nhúng thực thể của các biến phân loại. Ánh xạ được học bởi một mạng lưới thần kinh trong quá trình đào tạo được giám sát tiêu chuẩn. Việc nhúng thực thể không chỉ làm giảm việc sử dụng bộ nhớ và tăng tốc các mạng thần kinh so với mã hóa một lần nóng, mà quan trọng hơn là bằng cách ánh xạ các giá trị tương tự gần nhau trong không gian nhúng, nó cho thấy các thuộc tính bên trong của các biến phân loại. Chúng tôi đã áp dụng nó thành công trong một cuộc thi Kaggle gần đây và có thể đạt được vị trí thứ ba với các tính năng đơn giản tương đối. Chúng tôi tiếp tục chứng minh trong bài báo này rằng việc nhúng thực thể giúp mạng lưới thần kinh tổng quát hóa tốt hơn khi dữ liệu thưa thớt và không rõ số liệu thống kê. Do đó, nó đặc biệt hữu ích cho các bộ dữ liệu có nhiều tính năng cardinality cao, trong đó các phương pháp khác có xu hướng quá phù hợp. Chúng tôi cũng chứng minh rằng các nhúng được thu được từ mạng nơ ron được đào tạo giúp tăng hiệu suất của tất cả các phương pháp học máy được kiểm tra đáng kể khi được sử dụng làm các tính năng đầu vào thay thế. Khi nhúng thực thể xác định một thước đo khoảng cách cho các biến phân loại, nó có thể được sử dụng để trực quan hóa dữ liệu phân loại và phân cụm dữ liệu.

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.