5

Vowpal Wabbit'de sıradan en küçük kareler regresyonunu yöneten var mı? Ben aynı çözüm tam çözüm olarak, yani ||y - X a||_2 + ||Ra||_2 en aza indirmek için seçerken (burada R düzenlidir) analitik cevap a = (X^T X + R^T R)^(-1) X^T y almak istiyorum onaylamak için çalışıyorum. Bu tür bir regresyonun yapılması, numpy python'da yaklaşık 5 satır alır.Vowpal Wabbit'de Sıradan En Küçük Kareler Regresyonu

VW belgelerinin bunu yapabildiğini (muhtemelen "kare" kayıp işlevi) önerdiğini ancak şimdiye kadar python sonuçlarını eşleştirmeye bile yaklaşamadığımı gösterir. Çünkü, ben sadece varsayılan kayıp fonksiyonu çağırıyorum karesine:

girdi.txt

1.4 | 0:3.4 1:-1.2 2:4.0 .... etc 

gibi hattına sahip

$ vw-varinfo input.txt 

Ben buna VW bazı diğer parametreleri gerekiyor mu? (Oldukça minimal) belgeleri gren edemiyorum.

+0

Sorunun ne olduğunu anlayın. Ne aldığınıza karşı ne beklediğinizi açıklayan daha fazla bilgi verebilir misiniz? – Spaceghost

+1

Unutmayın ki vw, modelin ağırlıklarını (OLS'nin katsayıları) her örnek için yalnızca hafifçe güncelleyen ve asla geri dönmeyecek veya düzensiz bir şekilde güncelleyen bir çevrimiçi algoritmadır. Bir toplu iş algoritmasına benzer bir performans elde etmek istiyorsanız, özellikle örnek sayısı özellik sayısından daha büyük değilse, yakınsamaya kadar girişte birden fazla geçiş yapmanız gerekecektir (örn. -c --passs 100). '). – arielf

+0

"--loss_function klasik" vanilya en küçük kareleri verecektir. "--loss_function squared" çoğu zaman daha iyi performans gösterir, çünkü 'Çevrimiçi Önemi Ağırlıklı Aware Updates' (bkz. http://arxiv.org/abs/1011.1576) –

cevap

3

Sana bu sözdizimi (vowpal tavşansın sürümü 7.3.1) kullanması gerekir düşünüyorum:

vw -d input.txt -f linear_model -c --passes 50 --holdout_off --loss_function squared --invert_hash model_readable.txt 

, senin girdi.txt dosyasını okumak (diskte bir modeli kayıt ve bir önbellek yazma VW talimat verir Bu sözdizimi Çok geçişli yakınsama için gerekli) ve kare kayıp fonksiyonunu kullanarak bir regresyon takın. Ayrıca, model katsayılarını okunabilir bir şekilde model_readable.txt adlı bir dosyaya yazacaktır.

--holdout_off seçeneği, örnek olmayan otomatik kayıp hesaplamayı bastırmak için son ek bir seçenektir (daha önceki bir sürümü kullanıyorsanız, onu kaldırmanız gerekir).

Temel olarak stokastik gradyan alçalmasına dayalı bir regresyon analizi, tam regüle benzer bir katsayılar vektörünü, sadece herhangi bir regülasyon yapılmadığında ve geçiş sayısı yüksek olduğunda (50 veya daha fazlasını öneririm) sağlayacaktır. Girdi dosyası satırlarını rastgele karıştırmak, algoritmanın daha iyi bir şekilde birleşmesine yardımcı olur.

İlgili konular