Model regresi linier Scikit-learn memungkinkan pengguna untuk menonaktifkan intersep. Jadi untuk pengkodean satu-panas, haruskah saya selalu mengatur fit_intercept = Salah? Untuk pengkodean dummy, fit_intercept harus selalu disetel ke True? Saya tidak melihat "peringatan" di situs web.
Untuk model linier yang tidak diregulasi dengan pengkodean satu-panas, ya, Anda harus mengatur intersep menjadi salah atau menggunakan collinearity sempurna. sklearn
juga memungkinkan untuk hukuman penyusutan punggungan, dan dalam hal itu tidak perlu, dan pada kenyataannya Anda harus menyertakan intersep dan semua level. Untuk penyandian dummy, Anda harus menyertakan intersep, kecuali jika Anda telah menstandarkan semua variabel Anda, dalam hal ini intersepnya nol.
Karena pengodean satu-panas menghasilkan lebih banyak variabel, apakah ia memiliki tingkat kebebasan lebih dari pengodean dummy?
Pencegatan adalah tingkat kebebasan tambahan, jadi dalam model yang ditentukan dengan baik semuanya sama.
Untuk yang kedua, bagaimana jika ada variabel k kategori? variabel k dihapus dalam pengkodean dummy. Apakah derajat kebebasannya masih sama?
Anda tidak dapat memasukkan model di mana Anda menggunakan semua level dari kedua variabel kategori, intersep atau tidak. Karena, begitu Anda memiliki satu-hot-encoded semua level dalam satu variabel dalam model, katakan dengan variabel biner , maka Anda memiliki kombinasi linear dari prediktor yang sama dengan vektor konstanx1,x2,…,xn
x1+x2+⋯+xn=1
Jika Anda kemudian mencoba memasukkan semua level kategori lain ke dalam model, Anda berakhir dengan kombinasi linier yang sama dengan vektor konstanx′
x′1+x′2+⋯+x′k=1
dan Anda telah membuat ketergantungan linear
x1+x2+⋯xn−x′1−x′2−⋯−x′k=0
Jadi, Anda harus meninggalkan tingkat dalam variabel kedua, dan semuanya berbaris dengan benar.
Katakanlah, saya memiliki 3 variabel kategori, yang masing-masing memiliki 4 level. Dalam pengkodean dummy, 3 * 4-3 = 9 variabel dibangun dengan satu intersep. Dalam pengkodean satu-panas, 3 * 4 = 12 variabel dibangun tanpa intersep. Apakah saya benar?
Hal kedua sebenarnya tidak berhasil. The kolom desain matrix yang Anda buat akan tunggal. Anda perlu menghapus tiga kolom, satu dari masing-masing dari tiga pengkodean kategorikal yang berbeda, untuk memulihkan non-singularitas desain Anda.3×4=12