Tek sıcak kodlama ile sahte kodlama arasındaki sorunlar


11

K seviyeli kategorik değişkenlerin kukla kodlamada k-1 değişkenleri ile kodlanması gerektiğinin farkındayım (benzer şekilde çok değerli kategorik değişkenler için). Çoğunlukla doğrusal regresyon, cezalandırılmış doğrusal regresyon (Kement, Ridge, Elastik Ağ), ağaç tabanlı (rastgele ormanlar) için farklı regresyon yöntemleri için kukla kodlama üzerinde bir sıcak kodlama (yani bunun yerine k değişkenlerini kullanarak) ne kadar bir sorunun ne olduğunu merak ediyordum. , gradyan artırma makineleri).

Doğrusal regresyonda çoklu-eş-doğrusallık problemlerinin oluştuğunu biliyorum (pratikte herhangi bir sorun olmadan OHE kullanarak doğrusal regresyon uyguladım).

Bununla birlikte, kukla kodlamanın hepsinde kullanılması gerekiyor mu ve tek sıcak kodlama kullanılıyorsa sonuçlar ne kadar yanlış olur?

Odak noktam, çoklu (yüksek kardinalite) kategorik değişkenleri olan regresyon modellerinde tahmin üzerine, bu yüzden güven aralıklarıyla ilgilenmiyorum.


10
İkisini ayırmanın yanlış olduğunu iddia ediyorum. Kukla değişkenler ve tek değişkenli değişkenler tam eşanlamlıdır. İlk terim daha eskidir ve istatistiklerden, ikincisi daha genç ve makine öğrenmesinden gelir. Üçüncü ve daha resmi eşanlamlı gösterge tipi kontrast değişkenleridir. Bu tür temel değişkenler kümesinde tüm k veya k-1 yedeksiz değişkenlerin kullanılıp kullanılmayacağı sorusunun bu terminoloji ile ilgisi yoktur ve analizin türüne ve somut algoritmaya veya programa bağlıdır.
ttnphns

2
Örneğin, bir regresyon yazılımı tipik olarak tekillik nedeniyle tüm k'ye girmeye izin vermeyecektir, ancak eşdeğer genel doğrusal modelleme yazılımı sözde ters yaklaşım kullandığından buna izin verebilir.
ttnphns

1
@Ttnphns ile birlikteyim, her ikisi de sadece korkunç isimler. Tam kodlamayı ve bir defa bırakma kodlamasını tercih ederim .
Matthew Drury

2
Terminoloji için özür dilerim, bu uygulayıcılar (ve benzer şekilde yönlendirilmiş kitaplar) tarafından kullanılan standart terimlerdir. Kollearlık sorunu sadece lineer olarak (unpenalized modeller) ortaya çıkıyor? Tüm yazılımların tüm k'ye girmesi durmaz (örneğin, Python'un scikit-learn, yanılıyorsam beni düzeltin)
user90772

@MatthewDrury Evcil hayvan soymalarımdan biri, "tek-sıcak kodlama" ve "A / B testi" gibi istatistiksel analiz alanına sürülen yinelenen terimler / ifadelerdir. Herkes karışıklığı önlemek için eski "kukla kodlama" ve "hipotez testi" ile yapmalıdır.
RobertF

Yanıtlar:


7

Aşağıdaki kategorik bir değişkeni temsil etme sorunu: k ile seviye kregresyondaki değişkenler, eğer model de sabit bir terime sahipse, terimlerin doğrusal olarak bağımlı olacağı ve dolayısıyla modelin tanımlanamayacağıdır. Örneğin, modelμ=bir0+bir1X1+bir2X2 ve X2=1-X1, sonra herhangi bir seçim (β0,β1,β2) parametre vektörünün (β0+β2,β1-β2,0). Bu nedenle, yazılım size bu parametreler için tahminler vermeye istekli olsa da, benzersiz bir şekilde belirlenmezler ve bu nedenle muhtemelen çok yararlı olmazlar.

Cezalandırma modeli tanımlanabilir hale getirecektir, ancak fazla kodlama, yukarıda belirtildiği gibi, parametre değerlerini tuhaf şekillerde yine de etkileyecektir.

Fazladan bir kodlamanın karar ağacı (veya ağaç topluluğu) üzerindeki etkisi, söz konusu özelliğin diğerlerine göre fazla kilolu olması muhtemeldir, çünkü fazladan fazla değişkenle temsil edilir ve bu nedenle aksi takdirde olacağından daha sık seçilecektir böler.


1
Bir ağaca veya ağaç topluluğuna bir kesişme eklemek için herhangi bir neden olduğunu düşünmüyorum. Bunun doğrusal tip modellere özgü bir şey olduğuna inanıyorum. Yani ağaç tabanlı modeller için, doğru fikrin kesişme noktası değil, tam kodlama olduğunu düşünüyorum.
Matthew Drury

@MatthewDrury Kesişim konusunda haklı olduğunu düşünüyorum, ama o zaman bile, bir ağaç için gereksiz kodlama sınırlı kullanım gibi görünüyor. Örneğin, bir özellik ikili ise, birinci sınıfta bölme ile ikinci sınıfta bölme arasındaki fark nedir? Söyleyebildiğim kadarıyla hiçbir şey.
Kodiolog

Doğru, ama bence tam simetriyi korumak her şeyi açık ve yorumlanabilir tutmanın en basit yoludur.
Matthew Drury

1

Kodiolog harika bir cevap verdi (+1). Tek-sıcak kodlama ile kukla kodlama kodlama yöntemleri aynıdır, tasarım matrisi açısından farklı temelde aynı boşluktadır. (bir sıcak kodlamanın daha fazla sütunu olmasına rağmen)

Bu nedenle, yorumlanabilirlik yerine doğruluk üzerine odaklanıyorsanız. İki kodlama yöntemi fark etmez.


1
Bilgiçlikçi olmak için, tek-sıcak versiyon bir temel değildir (çünkü doğrusal olarak bağımlıdır); sadece aynı alana yayılır. Ancak kodlamanın doğruluk için fark yaratmadığından emin misiniz? Özellikle cezalandırılmış regresyon durumunda, son seçilen modelin farklı tahminlerde bulunacağını düşünüyorum.
Kodiyolog

@Kodiolog, temel konuda beni düzelttiğiniz için teşekkürler.
Haitao Du

@Kodiolog düzenli doğrusal yöntemde doğruluk neden farklı olacak?
Haitao Du

4
Düzenli regresyonda, her zaman tam bir kodlama kullanmalısınız (yani bir kez bırakmayın, kullandığınız adları düz tutamıyorum ve bunları kendim kullanmamayı tercih ediyorum). Bunun nedeni, kesişimin cezalandırılmamasıdır, bu nedenle bir seviyenin kesişimin bir parçası olarak etkisini çıkartıyorsanız, tüm seviyeleri eşit olarak cezalandırdığınızı söylemek zor. Bunun yerine, her zaman tüm seviyeleri dahil edin, bu yüzden her biri cezaya göre simetriktir.
Matthew Drury

1
@ Mathew Drury, bu son yorum için teşekkür ederim. Bir cevapta genişletebilir misiniz? Yani sadece kukla kodlamanın gerekli olduğu düz doğrusal regresyon için mi?
kullanıcı90772

1

Ben bu soruya en iyi cevabı var belirten @MatthewDrury, yorumlarına gömüldü hissetmek olduğunu fark ve herhangi regularize yaklaşımda görünüşte gereksiz sütun kullanması gerektiğini. @ MatthewDrury'nin mantığı şudur:

[Düzenli regresyonda] kesişme cezalandırılmaz, bu yüzden kesimin bir parçası olmayan bir seviyenin etkisini çıkarıyorsanız, tüm seviyeleri eşit olarak cezalandırdığınızı söylemek zor. Bunun yerine, her zaman tüm seviyeleri dahil edin, bu yüzden her biri cezaya göre simetriktir.

Bence bir anlamı var.


Yani duruma göre kseviyelere veya k-1seviyelere sahip bir sıcak kodlama değişkeni olmalıdır . İfadenize ek olarak (düzenli / düzenli değil), her durumda ne yapılacağı konusunda yönergeler var mı?
Dan Chaltiel

Benim kuralım, klasik ANOVA'da olduğu gibi düzenlileştirme yoksa k-1 seviyeleri kullanın. Bayes yöntemlerinde olduğu gibi L2 düzenlenmesi ile regresyon varsa, k seviyelerini kullanın.
Ben Ogorek
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.