Các vấn đề với mã hóa một nóng so với mã hóa giả


11

Tôi nhận thức được thực tế rằng các biến phân loại có cấp độ k nên được mã hóa bằng các biến k-1 trong mã hóa giả (tương tự đối với các biến phân loại đa giá trị). Tôi đã tự hỏi có bao nhiêu vấn đề khi mã hóa một nóng (tức là sử dụng biến k thay thế) so với mã hóa giả cho các phương pháp hồi quy khác nhau, chủ yếu là hồi quy tuyến tính, hồi quy tuyến tính bị phạt (Lasso, Ridge, ElasticNet), dựa trên cây (rừng ngẫu nhiên , máy tăng cường độ dốc).

Tôi biết rằng trong hồi quy tuyến tính, các vấn đề đa cộng tuyến xảy ra (mặc dù trong thực tế tôi đã trang bị hồi quy tuyến tính bằng OHE mà không gặp vấn đề gì).

Tuy nhiên, mã hóa giả có cần phải được sử dụng trong tất cả chúng không và kết quả sẽ sai như thế nào nếu một người sử dụng mã hóa một lần nóng?

Trọng tâm của tôi là dự đoán trong các mô hình hồi quy với nhiều biến phân loại (cardinality cao), vì vậy tôi không quan tâm đến các khoảng tin cậy.


10
Tôi khẳng định nó là không chính xác để phân biệt hai. Biến giả và biến một nóng là từ đồng nghĩa hoàn chỉnh. Thuật ngữ đầu tiên cũ hơn và xuất phát từ thống kê, trong khi thuật ngữ thứ hai trẻ hơn và đến từ học máy. Từ đồng nghĩa thứ ba và chính thức hơn là các biến tương phản loại chỉ báo . Câu hỏi liệu sử dụng tất cả các biến không cần thiết k hoặc k-1 trong tập hợp các biến cơ bản như vậy không liên quan gì đến thuật ngữ đó và phụ thuộc vào loại phân tích và thuật toán hoặc chương trình cụ thể.
ttnphns

2
(tt) Ví dụ, một phần mềm hồi quy thường sẽ không cho phép nhập tất cả k vì tính đơn lẻ, nhưng phần mềm mô hình tuyến tính chung tương đương có thể cho phép phần mềm này vì nó sử dụng phương pháp giả ngẫu nhiên.
ttnphns

1
Tôi với @ttnphns, cả hai đều chỉ là những cái tên khủng khiếp. Tôi thích đầy đủ mã hóanghỉ-one-out mã hóa .
Matthew Drury

2
Xin lỗi về thuật ngữ, đây là thuật ngữ tiêu chuẩn tôi đã thấy được sử dụng bởi các học viên (và các cuốn sách định hướng tương tự). Vấn đề về cộng tuyến chỉ xuất hiện trong tuyến tính (mô hình không mở rộng)? Không phải tất cả phần mềm đều dừng nhập tất cả k (ví dụ: Scikit-learn của Python, hãy sửa tôi nếu tôi sai)
user90772 11/07/17

@MatthewDrury Một trong những thú cưng của tôi là các thuật ngữ / cụm từ trùng lặp len lỏi vào lĩnh vực phân tích thống kê, như "mã hóa một nóng" và "thử nghiệm A / B". Mọi người nên gắn bó với "mã hóa giả" cũ hơn và "kiểm tra giả thuyết" để tránh nhầm lẫn.
RobertF

Câu trả lời:


7

Vấn đề với việc biểu diễn một biến phân loại có mức với biến trong hồi quy là, nếu mô hình cũng có một số hạng không đổi, thì các thuật ngữ sẽ phụ thuộc tuyến tính và do đó mô hình sẽ không thể xác định được. Ví dụ: nếu mô hình là và , thì mọi lựa chọn của vectơ tham số không thể phân biệt được từ . Vì vậy, mặc dù phần mềm có thể sẵn sàng cung cấp cho bạn ước tính cho các tham số này, nhưng chúng không được xác định duy nhất và do đó có lẽ sẽ không hữu ích.kkμ=a0+a1X1+a2X2X2=1X1(β0,β1,β2)(β0+β2,β1β2,0)

Hình phạt sẽ làm cho mô hình có thể nhận dạng được, nhưng mã hóa dự phòng vẫn sẽ ảnh hưởng đến các giá trị tham số theo những cách kỳ lạ, được đưa ra ở trên.

Tác động của mã hóa dự phòng trên cây quyết định (hoặc tập hợp các cây) có thể sẽ làm quá tải tính năng được đề cập so với các tính năng khác, vì nó được biểu thị bằng một biến dự phòng bổ sung và do đó sẽ được chọn thường xuyên hơn so với cách khác chia tách.


1
Tôi không nghĩ có bất kỳ lý do nào để bao gồm việc đánh chặn trong một cái cây hoặc một nhóm cây. Tôi tin rằng đó là một điều đặc biệt cho các mô hình loại tuyến tính. Vì vậy, đối với các mô hình dựa trên cây, tôi nghĩ rằng ý tưởng đúng không bị chặn, mã hóa đầy đủ.
Matthew Drury

@MatthewDrury Tôi nghĩ rằng bạn đúng về việc đánh chặn, nhưng ngay cả khi đó, đối với một cây, mã hóa dự phòng dường như bị hạn chế sử dụng. Ví dụ: nếu một tính năng là nhị phân, thì sự khác biệt giữa tách trên lớp thứ nhất và tách trên lớp thứ hai là gì? Không có gì, cho đến nay tôi có thể nói.
Kodiologist

Đó là sự thật, nhưng tôi nghĩ giữ cho đối xứng đầy đủ là cách đơn giản nhất để giữ mọi thứ rõ ràng công bằng và có thể giải thích được.
Matthew Drury

1

Kodiologist đã có một câu trả lời tuyệt vời (+1). Phương pháp mã hóa một nóng so với mã hóa giả là giống nhau, về mặt ma trận thiết kế nằm trong cùng một không gian, với cơ sở khác nhau. (mặc dù mã hóa một nóng có nhiều cột hơn)

Do đó, nếu bạn đang tập trung vào độ chính xác thay vì khả năng diễn giải. Hai phương pháp mã hóa làm cho không có sự khác biệt.


1
Để được mô phạm, phiên bản một nóng không phải là một cơ sở (vì nó phụ thuộc tuyến tính); nó chỉ kéo dài cùng một không gian. Nhưng bạn có chắc chắn mã hóa làm cho không có sự khác biệt cho độ chính xác? Đặc biệt trong trường hợp hồi quy bị phạt, tôi nghĩ rằng mô hình được chọn cuối cùng sẽ đưa ra các dự đoán khác nhau.
Kodiologist

@Kodiologist cảm ơn đã sửa cho tôi về vấn đề cơ bản.
Haitao Du

@Kodiologist tại sao độ chính xác sẽ khác nhau trong phương pháp tuyến tính chính quy?
Haitao Du

4
Trong hồi quy thường xuyên, bạn phải luôn sử dụng mã hóa đầy đủ (nghĩa là không bỏ qua một lần, tôi không thể giữ thẳng tên bạn đã sử dụng và không muốn tự mình sử dụng chúng). Điều này là do việc đánh chặn không bị phạt, vì vậy nếu bạn suy ra ảnh hưởng của cấp độ không phải là một phần của việc chặn, thì khó có thể nói bạn đang phạt tất cả các cấp như nhau. Thay vào đó, luôn luôn bao gồm tất cả các cấp độ, vì vậy mỗi cấp là đối xứng với hình phạt.
Matthew Drury

1
@Matthew Drury, cảm ơn bạn vì bình luận cuối cùng này. Bạn có thể vui lòng mở rộng nó trong một câu trả lời? Vì vậy, nó chỉ dành cho hồi quy tuyến tính đơn giản, nơi mã hóa giả là cần thiết?
dùng90772

1

Tôi cảm nhận được câu trả lời tốt nhất cho câu hỏi này được chôn trong các ý kiến của @MatthewDrury, trong đó nêu rằng có một sự khác biệt và rằng bạn nên sử dụng cột dường như không cần thiết trong bất kỳ cách tiếp cận đúng quy tắc. @ MatthewDrury lý luận là

[Trong hồi quy chính quy], phần chặn không bị phạt, vì vậy nếu bạn suy ra ảnh hưởng của cấp độ không phải là một phần của phần chặn, thì khó có thể nói bạn đang phạt tất cả các cấp như nhau. Thay vào đó, luôn luôn bao gồm tất cả các cấp độ, vì vậy mỗi cấp độ đều đối xứng với hình phạt.

Tôi nghĩ rằng anh ấy có một điểm.


Vì vậy, bạn nên một biến mã hóa nóng với kcấp độ hoặc với k-1cấp độ tùy thuộc vào tình huống. Ngoài tuyên bố của bạn (thường xuyên / không chính quy), sẽ có hướng dẫn về những việc cần làm trong mọi trường hợp?
Dan Chaltiel

Quy tắc của tôi là nếu không có chính quy hóa, như trong ANOVA cổ điển, sử dụng cấp độ k-1. Nếu có chính quy hóa, như trong các phương pháp Bayes hoặc hồi quy với chính quy L2, sử dụng các mức k.
Ben Ogorek
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.