Masalah dengan pengodean satu panas vs. pengodean dummy

11

Saya menyadari fakta bahwa variabel kategori dengan level k harus dikodekan dengan variabel k-1 dalam pengkodean dummy (sama untuk variabel kategori multi-dihargai). Saya bertanya-tanya berapa banyak masalah melakukan pengkodean satu-panas (yaitu menggunakan variabel k sebagai gantinya) atas pengkodean dummy untuk metode regresi yang berbeda, terutama regresi linier, regresi linier dihukum (Lasso, Ridge, ElasticNet), berbasis pohon (hutan acak) , mesin peningkat gradien).

Saya tahu bahwa dalam regresi linear, masalah multi-collinearity terjadi (meskipun dalam praktiknya saya telah menggunakan regresi linear menggunakan OHE tanpa masalah).

Namun, apakah pengkodean dummy perlu digunakan dalam semua itu dan bagaimana salah hasilnya jika seseorang menggunakan pengkodean satu-panas?

Fokus saya adalah prediksi model regresi dengan beberapa variabel kategori (kardinalitas tinggi), jadi saya tidak tertarik pada interval kepercayaan.

user90772
sumber
10
Saya mengklaim tidak benar untuk membedakan keduanya. Variabel Dummy dan variabel satu-panas adalah sinonim lengkap. Istilah pertama lebih tua dan berasal dari statistik, sedangkan yang kedua lebih muda dan berasal dari pembelajaran mesin. Sinonim ketiga, dan yang lebih formal adalah variabel kontras jenis indikator . Pertanyaan apakah menggunakan semua variabel nonredundant k atau k-1 dalam set variabel elementer seperti itu tidak ada hubungannya dengan terminologi itu dan tergantung pada jenis analisis dan pada algoritma atau program konkret.
ttnphns
2
(lanjutan) Sebagai contoh, perangkat lunak regresi biasanya tidak akan memungkinkan untuk memasukkan semua k karena singularitas, tetapi perangkat lunak pemodelan linier umum yang setara memungkinkannya karena menggunakan pendekatan pseudoinverse.
ttnphns
1
Saya dengan @ttnphns, keduanya hanya nama yang mengerikan. Saya lebih suka pengkodean lengkap dan pengkodean tinggalkan satu .
Matthew Drury
2
Permintaan maaf untuk terminologi, ini adalah istilah standar yang saya lihat digunakan oleh para praktisi (dan buku-buku yang berorientasi serupa). Masalah collinearity hanya muncul dalam linier (model yang tidak dilegalisir) Tidak semua perangkat lunak berhenti memasukkan semua k (misalnya scikit-learn Python, koreksi saya jika saya salah)
user90772
@MatthewDrury Salah satu masalah kesayangan saya adalah istilah / frasa duplikat yang merayap ke bidang analisis statistik, seperti "pengodean satu-panas" dan "pengujian A / B". Setiap orang harus tetap menggunakan "dummy coding" dan "testing hipotesis" yang lebih lama untuk menghindari kebingungan.
RobertF

Jawaban:

7

Masalah dengan merepresentasikan variabel kategori yang memiliki level dengan variabel dalam regresi adalah bahwa, jika model juga memiliki suku yang konstan, maka syarat-syaratnya akan bergantung secara linier dan karenanya model tersebut tidak dapat diidentifikasi. Misalnya, jika modelnya adalah dan , maka semua pilihan dari vektor parameter tidak dapat dibedakan dari . Jadi, meskipun perangkat lunak mungkin bersedia memberi Anda perkiraan untuk parameter ini, mereka tidak ditentukan secara unik dan karenanya mungkin tidak akan sangat berguna.kkkμ=a0+a1X1+a2X2X2=1X1(β0,β1,β2)(β0+β2,β1β2,0)

Penalti akan membuat model dapat diidentifikasi, tetapi pengkodean yang berlebihan masih akan mempengaruhi nilai parameter dengan cara yang aneh, mengingat hal di atas.

Efek pengkodean redundan pada pohon keputusan (atau ansambel pohon) kemungkinan akan kelebihan berat fitur dalam pertanyaan relatif terhadap yang lain, karena itu diwakili dengan variabel redundan tambahan dan karena itu akan dipilih lebih sering daripada yang seharusnya untuk split.

Kodiologis
sumber
1
Saya tidak berpikir ada alasan untuk memasukkan intersepsi di pohon atau ansambel pohon. Saya percaya itu adalah hal yang khusus untuk model tipe linier. Jadi untuk model berbasis pohon, saya pikir ide yang tepat tidak mencegat, pengkodean penuh.
Matthew Drury
@ MatthewDrury Saya pikir Anda benar tentang mencegat, tetapi bahkan kemudian, untuk pohon, pengkodean berlebihan tampaknya penggunaan terbatas. Misalnya, jika fitur adalah biner, apa perbedaan antara pemisahan pada kelas pertama dan pemisahan pada kelas kedua? Tidak ada, sejauh yang saya tahu.
Kodiologist
Memang benar, tetapi saya pikir menjaga simetri penuh adalah cara paling sederhana untuk menjaga semuanya jelas adil dan dapat ditafsirkan.
Matthew Drury
1

Kodiologist punya jawaban bagus (+1). Metode enkode enkode satu-hot vs dummy adalah sama, dalam hal matriks desain berada di ruang yang sama, dengan dasar yang berbeda. (meskipun pengodean satu-panas memiliki lebih banyak kolom)

Karena itu jika Anda berfokus pada akurasi daripada interpretabilitas. Dua metode pengkodean tidak membuat perbedaan.

Haitao Du
sumber
1
Untuk menjadi bertele-tele, versi one-hot bukanlah basis (karena itu tergantung linear); itu hanya mencakup ruang yang sama. Tetapi apakah Anda yakin pengodean tidak membuat perbedaan dalam hal akurasi? Khususnya dalam kasus regresi yang dihukum, saya pikir model yang dipilih akhir akan membuat prediksi yang berbeda.
Kodiologist
@Kodiologist terima kasih sudah memperbaiki masalah saya.
Haitao Du
@Kodiologist mengapa akurasinya akan berbeda dalam metode linear teregulasi?
Haitao Du
4
Dalam regresi yang diatur, Anda harus selalu menggunakan pengkodean penuh (yaitu tidak meninggalkan-satu-keluar, saya tidak bisa menjaga nama yang Anda gunakan lurus, dan memilih untuk tidak menggunakannya sendiri). Ini karena intersep tidak dihukum, jadi jika Anda menyimpulkan efek level sebagai bukan bagian intersep, sulit untuk mengatakan Anda menghukum semua level secara sama. Sebaliknya, selalu sertakan semua level, sehingga masing-masing simetris sehubungan dengan penalti.
Matthew Drury
1
@Matthew Drury, terima kasih atas komentar terakhir ini. Bisakah Anda memperluasnya dalam jawaban? Jadi itu hanya untuk regresi linier biasa di mana pengkodean dummy diperlukan?
user90772
1

Saya merasa jawaban terbaik untuk pertanyaan ini dimakamkan di komentar oleh @MatthewDrury, yang menyatakan bahwa ada adalah perbedaan dan bahwa Anda harus menggunakan kolom yang tampaknya berlebihan dalam pendekatan regularized. @ Alasan MatthewDrury adalah

[Dalam regresi yang diatur], intersep tidak dihukum, jadi jika Anda menyimpulkan efek level sebagai bukan bagian dari intersep, sulit untuk mengatakan Anda menghukum semua level secara sama. Sebaliknya, selalu sertakan semua level, sehingga masing-masing simetris sehubungan dengan penalti.

Saya pikir dia ada benarnya.

Ben Ogorek
sumber
Jadi, Anda harus memiliki satu variabel penyandian panas dengan klevel atau k-1level tergantung pada situasinya. Selain pernyataan Anda (diatur / tidak diatur), apakah akan ada pedoman tentang apa yang harus dilakukan dalam semua kasus?
Dan Chaltiel
Aturan saya adalah jika tidak ada regularisasi, seperti pada ANOVA klasik, gunakan level k-1. Jika ada regularisasi, seperti dalam metode Bayesian atau regresi dengan regularisasi L2, gunakan level k.
Ben Ogorek