Tek etkin kodlamayı kullanırken sütunlardan birini düşürme


23

Anladığım kadarıyla, makine öğreniminde, veri kümenizin aynı bilgileri etkili bir şekilde kodladıkları için yüksek derecede ilişkili özelliklere sahip olması bir sorun olabilir.

Son zamanlarda birisi, kategorik bir değişken üzerinde tek-sıcak kodlama yaptığınızda, ilişkili özelliklerle sonuçlandığınızı, bu yüzden bunlardan birini "referans" olarak bırakmanız gerektiğini belirtti.

Örneğin, cinsiyeti iki değişken olarak kodlamak is_maleve is_femalemükemmel negatif negatif korelasyona sahip iki özellik üretir, bu yüzden bunlardan sadece birini kullanmayı, taban çizgisini erkek söyleyecek şekilde etkili bir şekilde ayarlamayı ve ardından is_female sütununun öngörü algoritmasında önemli olup olmadığını görmelerini önermişlerdir. .

Bu bana mantıklı geldi, ancak bunun böyle olabileceğini önermek için çevrimiçi bir şey bulamadım, bu yanlış mı yoksa bir şey mi kaçırıyorum?

Olası (yanıtlanmamış) yinelenen: Tek etkin kodlanmış özelliklerin eşzamanlılığı SVM ve LogReg için önemli mi?


8
you end up with correlated features, so you should drop one of them as a "reference"Kukla değişkenler veya gösterge değişkenleri (bunlar, istatistikte kullanılan iki isimdir, makine öğreniminde "bir-sıcak kodlama" ile eşanlamlıdır), hepsi k veya k-1 değişkenleri olsun, yine de çift yönlü olarak ilişkilidir. Bu nedenle, daha iyi olan kelime "ilişkili" yerine "istatistiksel / bilgi açısından gereksizdir".
ttnphns

Tüm k mankenleri kümesi çok satırlı settir, çünkü verilerdeki k-1 mankenlerinin değerlerini biliyorsanız, o son bir mankenin değerlerini otomatik olarak bilirsiniz. Bazı veri analizi yöntemleri veya algoritmaları k'den birini düşürmenizi gerektirir. Diğer tüm k ile başa çıkabilir.
ttnphns

@ttnphns: teşekkürler, bu mantıklı. Tüm k değerlerinin teorik olarak tutulması, bunları boyutsallık azalmasıyla ortadan kaldırılabilecek / ortadan kaldırılması gereken daha zayıf özellikler yapıyor mu? PCA gibi bir şey kullanmak için argümanlardan biri genellikle ilişkili / yedekli özellikleri kaldırmaktır, tüm k değişkenlerini tutmanın bu kategoriye düşüp düşmediğini merak ediyorum.
dasboth

Does keeping all k values theoretically make them weaker features. Hayır ("zayıf" ile ne kastettiğinizden% 100 emin değilim). using something like PCANot ihtimale karşı mankenleri bir dizi olduğu PCA birini temsil eden , aynı kategorik bir değişkeni aptal PCA'nın pratik bir noktaya sahip olmadığını unutmayın, çünkü aptallar kümesinin içindeki korelasyonlar sadece kategori frekansları arasındaki ilişkileri yansıtır (yani tüm frekanslar eşitse tüm korelasyonlar eşittir) 1 / (k-1)).
ttnphns

Demek istediğim, modelinizi özellik önemini değerlendirmek için kullandığınızda (örneğin rastgele bir ormanla), tüm k değerlerini dahil ederseniz bu değişkenin önemini hafife alacak mı? Her is_maleiki seçeneğin aksine sadece bir değişken kullanıyorsanız, cinsiyetin önemi konusunda "daha doğru" bir tahmin elde ediyor musunuz? Belki bu bağlamda bir anlam ifade etmez ve sadece aynı bilgiyi kodlayan iki farklı değişkeniniz olduğunda sorun olabilir (örneğin inç cinsinden yükseklik ve cm cinsinden yükseklik).
dasboth

Yanıtlar:


25

lmglm .

Ancak bu modelleri tahmin ederseniz .

Diğer modellerde aynı ilkeleri kullanın. Elde edilen tahminler dışarıda bıraktığınız sütunlara bağlıysa, bunu yapmayın. Aksi takdirde sorun yok.

Şimdiye kadar, bu cevap sadece doğrusal (ve bazı hafif doğrusal olmayan) modellerden bahsediyor. Peki ağaçlar ve rastgele ormanlar gibi doğrusal olmayan modeller ne olacak? Kategorik kodlama ile ilgili fikirler, örneğin bir-hot gibi, esas olarak doğrusal modellerden ve uzantılardan kaynaklanır. Bu bağlamdan türetilen fikirlerin, ağaçlar ve ormanlar üzerinde değişiklik yapılmadan uygulanması gerektiğini düşünmek için çok az neden var! bazı fikirler için bkz . Python'daki seyrek verilerle Rastgele Orman Regresyonu .

Ancak, faktör değişkenlerini kullanarak, R sizin için bununla ilgilenecektir.

Yorumdaki ekstra soruyu cevaplamaya çalışmak: Düzenlemeyi kullanırken, matrisin tersine çevrilmesi gerekmeyen çoğu zaman yinelemeli yöntemler (kement veya elastik ağda olduğu gibi) kullanılır, böylece tasarım matrisinin tam rütbe olmaması bir sorun değildir. Sırt düzenlenmesi ile, matris inversiyonu kullanılabilir, ancak bu durumda, ters çevrmeden önce matrise eklenen düzenlenme terimi onu tersine çevirir hale getirir. Bu teknik bir neden, daha derin bir neden, bir sütunun kaldırılmasının optimizasyon problemini değiştirmesi, parametrelerin anlamını değiştirmesi ve aslında farklı optimal çözümlere yol açmasıdır . Somut bir örnek olarak, 1,2 ve 3 olmak üzere üç seviyeli kategorik bir değişkeniniz olduğunu varsayalım.β,β2,β3. Sütun 1'i bırakmak,β1=0Diğer iki parametre ise anlam değişir içinβ2-β1,β3-β1. Böylece bu iki fark küçülecek. Başka bir sütun bırakırsanız, orijinal parametrelerdeki diğer kontrastlar küçültülür. Böylece bu, optimize edilen kriter işlevini değiştirir ve eşdeğer çözümler beklemek için bir neden yoktur! Bu yeterince açık değilse, simüle edilmiş bir örnek ekleyebilirim (ancak bugün değil).


Referans değişken seçiminin düzenli regresyonun sonucunu etkileyeceğine katılıyorum, ancak tüm değişkenleri olduğu gibi bırakmanın bir tane bırakmaktan daha iyi olup olmadığından emin değilim. Bunun için bir sebebin var mı?
Kota Mori

Sadece iki alternatif ... Tüm seviyeleri korumak değişmezliği koruyor ve keyfilik yok. Çok fazla gibi seviyelerin sayısını azaltmak istediğiniz başka nedenleriniz varsa, bize bunu söylemelisiniz
kjetil b halvorsen
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.