2016-03-29 16 views
4

Kement ve elastik ağa alternatif olarak bu yöntemi düzenli bir regresyon olarak deniyorum. 40k veri noktam ve 40 özellik var. Kement 5 özelliği seçer ve ortogonal eşleştirme takibi yalnızca 1'i seçer.Ortogonal eşleme takibi gerilemesi - yanlış mı kullanıyorum?

Buna ne sebep olabilir? Omp'u yanlış yoldan mı kullanıyorum? Belki de bir gerileme olarak kullanılmamalıdır. Başka bir şey yapamazsan, lütfen bana bildirin.

+1

Scikit-öğrenmeyle ilgili bir şey bilmediğim için yardımcı olamam, ama bize biraz daha fazla ayrıntı vermeniz gerekiyor. Çalıştığınız kod nedir? Sorunuzu yeniden üreten küçük bir veri seti sağlayabilir misiniz? – andrechalom

+2

Sorunuz http://stats.stackexchange.com/ için daha iyi bir tahmin. - İyi şanslar! – Framester

+1

Lütfen eksiksiz, çalıştırılabilir kod ve veri kümesini gönderin. Soru başka türlü cevap vermek imkansız. –

cevap

2

Orthogonal Matching Pursuit, scikit-learn uygulamasında uygulandığı gibi giriş verilerine biraz bozuk veya en azından çok hassas görünüyor.

Örnek:

import sklearn.linear_model 
import sklearn.datasets 
import numpy 

X, y, w = sklearn.datasets.make_regression(n_samples=40000, n_features=40, n_informative=10, coef=True, random_state=0) 

clf1 = sklearn.linear_model.LassoLarsCV(fit_intercept=True, normalize=False, max_n_alphas=1e6) 
clf1.fit(X, y) 

clf2 = sklearn.linear_model.OrthogonalMatchingPursuitCV(fit_intercept=True, normalize=False) 
clf2.fit(X, y) 

# this is 1e-10, LassoLars is basically exact on this data 
print numpy.linalg.norm(y - clf1.predict(X)) 

# this is 7e+8, OMP is broken 
print numpy.linalg.norm(y - clf2.predict(X)) 

Eğlence deneyler:

sklearn.datasets içinde konserve veri kümelerinin bir grup vardır
  • . OMP hepsinde başarısız mı? Görünüşe göre, diyabet veri kümesinde işe yarıyor ...

  • make_regression için OMP'nin çalıştığı verileri üretecek herhangi bir parametre kombinasyonu var mı? Hala onu arıyor ... 100 x 100 ve 100 x 10 aynı şekilde başarısız.

+0

Belki de bu, [scikit-learn github] 'da bir Sorun olarak yayınlanmalıdır (https://github.com/scikit-learn/scikit-learn) –

+0

@ JoãoAlmeida: Evet, muhtemelen. Bunun bir hata olduğundan emin olmak istiyorum ve OMP'nin nasıl çalışması gerektiği değil. İlk önce biraz daha basit sentetik verileri denerdim. –

+1

@BaronYugovich: Bununla ilgili başka sorularınız var mı? Eğer sorunuza cevap verdiysem, lütfen ödülü kabul etmeyi ve ödüllendirmeyi unutmayın. –