Soru:
Sınırsız eğitim verisine sahip 2 sınıflandırıcıyı karşılaştırma
kanzen_master
2012-11-12 14:31:18 UTC
view on stackexchange narkive permalink

"Sınırsız" gürültülü eğitim veri kümeleriyle eğitilebilen, yani eğitim için istediğiniz kadar veri kullanabileceğiniz, bu tür veriler çok gürültülü olan 2 metin sınıflandırıcı C1 ve C2'yi karşılaştırmak istiyorum. Aşağıdaki 2 seçeneği düşünüyorum. Hangisi daha iyi olurdu?

1) Veri boyutu boyutu aralığı 0-z ayarlayın, z çok büyük bir sayıdır. C1'in maksimum doğruluğu puanladığı x veri kümesi boyutunu belirleyin (ör. Bir öğrenme eğrisi kullanarak). Sonra C2'yi bu tür bir veri seti boyutu x ile eğitin.

2) C1'in öğrenmeyi durdurduğu y veri seti boyutunu belirleyin (örneğin, öğrenme eğrisinin çok küçük eğimi). Sonra C2'yi böyle bir veri kümesi boyutu y ile eğitin.

Lütfen sınıflandırıcıları karşılaştırma yöntemini sormadığımı, ancak 2 sınıflandırıcının karşılaştırılması gereken eğitim veri kümesi boyutuna nasıl karar vereceğimi sormuyorum.

Düzenleme: Aşağıda bir sınıflandırıcı için öğrenme eğrisi verilmiştir. X ekseni eğitim veri kümesi boyutudur, Y ekseni doğruluktur. İki sınıflandırıcıyı karşılaştırmak amacıyla, en yüksek doğruluğun bulunduğu boyutu (kırmızı) veya doğruluğun (aşağı yukarı) sabit kaldığı boyutu (yeşil) seçmeli miyim?

enter image description here

Düzenleme2 : @cbeleites @Dikran Marsupial Bilgi eksikliğinden dolayı özür dilerim:

  • Sorunumda 3 sınıfım var.
  • Yukarıdaki öğrenme eğrisi, 1.000 örnek / sınıftan (toplam 3.000) 140.000 örnek / sınıfa (toplam 420.000) kadar eğitim veri kümesi boyutu artırılarak oluşturuldu; her artış adımı için 1.000 yeni örnek / sınıf (toplamda 3.000) ekleniyor ve eğitilen model, 350 örnek / sınıftan (toplam 1.050 örnek) oluşan aynı test veri kümesiyle her yineleme için test ediliyor
  • Eğitim veri kümesi örnekleri otomatik olarak etiketlendi, test örnekleri manuel olarak etiketlendi
Grafiğe * öğrenme eğrisi * demezdim: bu sadece bir örnek. Her şeyden önce, bize tam olarak nasıl üretildiğini bize söylemelisiniz: "Büyüyen" bir veri kümesi mi, yani birbiri ardına bir örnek ekleniyor ve model yeniden hesaplanıyor ve her ek (grup) örneklemden sonra yeniden değerlendiriliyor ( s)? Bu eğrinin her noktası için bağımsız bir $ n $ örnek kümesi var mı? Sonra, varyansı tahmin etmeniz gerekir: yeni veri kümeleri ne kadar farklılık gösterir? Ayrıca, modeliniz kaç sınıfı ayırt ediyor? Doğruluğu ölçmek için kullandığınız test numunelerinin sayısını da belirtmelisiniz.
Kesinlikle sonuçlara baktıktan sonra bir nokta seçmeyin, çünkü bu esasen özenli bir seçimdir ve iyimser bir şekilde önyargılı bir performans tahminiyle sonuçlanacaktır. Bağımsız veri örnekleriyle algoritmanın birden çok çalışmasından elde ettiğiniz eğrileri görmek ilginç olurdu. Eğer hepsi böyle görünüyorsa (ortalama dahil), yöntemde bir sorun olduğunu gösterir.
Teşekkürler. Ana gönderide yukarıdaki "öğrenme eğrisi" ile ilgili bilgilerle güncelledim. @Dikran Marsupial: Teşekkürler. Farklı bir test setiyle veya her bir eğri için farklı eğitim veri setleriyle farklı öğrenme eğrilerini çizmeyi mi kastediyorsunuz?
evet, farklı test ve eğitim setleriyle. Esasen soru, test ve eğitim setleri oluşturmak için verilerin rastgele örneklenmesi beklentisi alındığında eğrinin beklenen şeklinin ne olduğudur. Eğrinin şeklinin verilerin örneklenmesinden kaynaklandığından ve anlamlı olmadığından şüpheleniyorum.
@kanzen_master: farklı test setleri, sonlu test örneklem büyüklüğünden kaynaklanan varyansı değerlendirmenize izin verir. Farklı eğitim setleri, eğitim örneklem boyutu $ n $ için ortalama doğruluk etrafında (doğru) doğruluk varyansını gösterir.
@kanzen_master:, 1050 test örneğinin 525 doğruluğu ile,% 95 güven aralığı kabaca $ (50 \ pm 3) $% doğruluktur (R'de `binom :: binom.confint` ile hesaplama). Gördüğünüz farklılıklar, test belirsizliğinden kaynaklanıyor olabilir.
@cbeleites Anlıyorum ... Yani, varyansların 2 nedeni var, biri sonlu eğitim ve biri de sonlu test seti için ...
@DikranMarsupial Tamam, o zaman farklı öğrenme eğrilerini çizmek için daha fazla eğitim verisi toplayacağım ve test verilerini böleceğim. Son olarak, öğrenme eğrileri arasında düşük bir fark elde edene kadar bunu yapmaya devam etmeli miyim? Ve varyansın düşük olup olmadığını nasıl bilebilirim? (görsel inceleme? bazı eşiklere kıyasla?). * Bu arada, ilgili araştırma yalnızca rastgele bir eğitim veri boyutu (yani 100.000 / sınıf) kullanıyor ve k-kat çapraz doğrulama / uzatılmış değerlendirme kullanarak karşılaştır ...
Iki yanıtlar:
cbeleites unhappy with SX
2012-11-12 15:04:00 UTC
view on stackexchange narkive permalink

C1'in C2'den daha hızlı / yavaş bir öğrenci olup olmadığını ölçmek istediğinizi doğru anlıyor muyum?

Sınırsız eğitim verileriyle, öğrenme eğrilerini kesin olarak oluştururum (ölçerim). Bu, sorduğunuz her iki soruyu da tartışmanıza olanak tanır.

Dikran'ın halihazırda işaret ettiği gibi, öğrenme eğrisinin bir sapma bileşeni olduğu kadar bir önyargı bileşeni de vardır: daha küçük veriler üzerinde eğitim sistematik olarak daha kötü modeller sağlar, ancak daha küçük $ n_ {train ile eğitilen farklı modeller arasında daha yüksek fark vardır } $ hangi sınıflandırıcının daha iyi olduğunu bir tartışmaya dahil edeceğim.

Yeterince büyük test örneği boyutu ile test ettiğinizden emin olun: sayımların oranları (sınıflandırıcı doğruluğu gibi), sonuçlarınızı altüst edebilecek yüksek varyanslardan muzdariptir. Sınırsız bir veri kaynağınız olduğundan, öğrenme eğrilerini üzerlerinde çok fazla ek test hatası olmadan ölçmenin gerçekten mümkün olduğu çok rahat bir durumdasınız.

Sınıflandırma Modelleri için Örneklem Büyüklüğü Planlaması ile ilgili bazı düşünce ve bulguları özetleyen bir makaleyi kabul ettim. DOI henüz çalışmıyor, ancak yine de işte arXiv'de kabul edilen taslak.

Elbette şu anda hesaba katma zamanı hesaplama zamanı. Bununla ilgili bazı düşünceler

  • Ne kadar bilgisayar zamanı harcayacağınız, karşılaştırmanıza neye ihtiyacınız olduğuna bağlı olacaktır.

  • Eğer sadece pratik olarak çalışan bir kurulum bulmakla ilgiliyse, bir karara varma zamanı konusunda da pragmatik olurum.

  • Bilimsel bir soruysa, eski amirime "Bilgisayar saati bilimsel bir argüman değildir" diye alıntı yapardım. Bu, çıkarabileceğiniz sonuçlardan ödün vererek sunucu zamanından birkaç gün veya birkaç hafta tasarruf etmenin iyi bir fikir olmadığı anlamına gelir *.
    Dahası, daha iyi hesaplamalar yapmak burada daha fazla zamanınızı gerektirmediği için: Hesaplamaları yapmak için gereken zamanınız, ister ince bir eğitim örneği boyutları ızgarasında ister kaba bir hesaplama yapın, aşağı yukarı aynı zamanı alacaktır. varyansı 1000 yinelemeyle veya yalnızca 10 ile ölçersiniz. Bu, sonuçlarda oldukça hızlı bir "ön izleme" elde etmenize olanak tanıyan bir sırayla hesaplamalar yapabileceğiniz, ardından sonuçları çizebileceğiniz ve sonunda içeri çekebileceğiniz anlamına gelir. ince taneli sayılar.

(*) Ayları veya yılları örnek toplama ve haftalar veya aylar boyunca kolayca geçirebileceğiniz deneysel bir alandan geldiğimi ekleyebilirim. kendilerini bir simülasyonun bir sunucuda çalıştığı şekilde yapmayın.


Önyükleme / çapraz doğrulama hakkında güncelleme

Öğrenme eğrisini ölçmek için çapraz doğrulama veya önyükleme dışı testi kullanmak (yinelenen / tekrarlanan) kesinlikle mümkündür. Uygun bir bağımsız test seti yerine yeniden örnekleme şemalarını kullanmak, küçük bir örneklem büyüklüğündeyseniz, yani iyi bir sınıflandırıcının eğitimi ve performansını doğru şekilde ölçmek için yeterli bağımsız örneğiniz yoksa mantıklıdır. Soruya göre, burada durum böyle değil.

Veriye dayalı model optimizasyonu

Bir genel nokta daha: öğrenme eğrisinden bir "çalışma noktası" (yani burada eğitim örnek boyutu) seçmek, veriye dayalı bir karardır. Bu, başka bir bağımsız test seti ile "nihai" modelin (bu örnek boyutuyla eğitilmiş) başka bir bağımsız doğrulamasını yapmanız gerektiği anlamına gelir. Bununla birlikte, öğrenme eğrisini ölçmek için test verileriniz bağımsızsa ve çok büyük (gerçekten büyük) örneklem boyutuna sahipse, o test setine fazla uyma riskiniz çok dakikadır. Yani Nihai test verileri için performansta bir düşüş bulursanız, bu ya öğrenme eğrisini belirlemek için çok küçük test örneği boyutunu ya da veri analizi kurulumunuzdaki bir sorunu gösterir (veriler bağımsız değil, eğitim verileri test verilerine sızıyor).


Güncelleme 2: sınırlı test örneği boyutu
gerçek bir sorundur. Birçok sınıflandırıcıyı karşılaştırmak (değerlendirdiğiniz her $ n_ {train} $ sonuçta bir sınıflandırıcıya yol açar!), İstatistik açısından çoklu bir test problemidir. Bu, aynı test seti tarafından değerlendirmenin, testin varyans belirsizliğini "gözden kaçırdığı" anlamına gelir. Bu, aşırı uyuma yol açar.
(Bu, Dikran'ın yorumladığı kiraz toplama tehlikesini ifade etmenin başka bir yoludur)

Son değerlendirme için gerçekten bağımsız bir test seti ayırmanız gerekir, eğer Son olarak seçilen modelin doğruluğunu belirtebilmek istiyorsunuz.
Milyonlarca örnekten oluşan bir test setine sığmak zor olsa da, sınıf başına 350 örneği aşmak çok daha kolaydır.

Bu nedenle, yukarıda bağlantılandırdığım makale başlangıçta düşündüğümden daha fazla ilginizi çekebilir: aynı zamanda ne kadar test örneği göstermeniz gerektiğini nasıl hesaplayacağınızı da gösterir örn. bir sınıflandırıcının (sabit hiperparametreli) diğerine üstünlüğü. Tüm modelleri aynı test seti ile test edebileceğiniz için, burada eşleştirilmiş testler yaparak gerekli test örneklem büyüklüğünü bir şekilde azaltabileceğiniz için şanslı olabilirsiniz. 2 sınıflandırıcının ikili karşılaştırması için McNemar testi bir anahtar kelime olacaktır.

Evet, ayrıca problemimdeki sınıflandırıcıları karşılaştırmak için öğrenme eğrilerinin kesinlikle bir zorunluluk olduğunu düşünüyorum. Ancak bu yeterli olur mu? Öğrenme eğrilerinin yanı sıra, öğrenme eğrisinde bulunan sonuçları değerlendirmek / onaylamak için belirli bir veri kümesi boyutunda daha kapsamlı bir analizin (yani çapraz doğrulama, önyükleme, vb.) Gerekli olabileceğini düşünüyorum ...
@kanzen_master: Yeniden örneklemeden, büyük bir bağımsız test setiyle elde edemeyeceğiniz ne gibi faydalar bekliyorsunuz?
Eğrileri öğrenme önerisi için +1. Son teknoloji sınıflandırıcıların yeterli veri verildiğinde aynı doğruluğa ulaşması muhtemeldir, ancak bazılarının oraya diğerlerinden daha erken ulaşması muhtemeldir. Öğrenme eğrilerinin varyansını tahmin etmeye çalışmak da iyi bir fikirdir (bu, sınırsız eğitim örnekleri varsa, yeniden örneklemeye gerek olmadığı için yapılması kolaydır)
Son bir soru, varyansın düşük olup olmadığını nasıl bilebilirim? (görsel inceleme? bazı eşiklere kıyasla?). * Bu arada, ilgili araştırma yalnızca keyfi miktarda eğitim verisi toplar (yani 100.000 / sınıf) ve k-kat çapraz doğrulama / uzatılmış değerlendirme kullanarak karşılaştırır ...
Vay canına, güzel kağıt konusu ve bunu arXiv'e koyduğunuz için teşekkürler!
Dikran Marsupial
2012-11-12 14:40:00 UTC
view on stackexchange narkive permalink

Sınırsız eğitim veriniz varsa, en uygun eğitim seti boyutu istatistiksel olanlar yerine hesaplama hususlarına bağlıdır. İstatistiksel bir bakış açısından, evrensel tahminlere dayalı birçok sınıflandırıcı vardır, bu nedenle sonsuz bir veri kümesi üzerinde eğitim alsaydınız Bayes hatasına yaklaşan ve daha iyisini yapamayan bir sınıflandırıcı elde edersiniz.

Sınıflandırıcı ise daha kötü performans gösterir eğitim setinin bir boyutu artar, bu oldukça endişe verici bir işaret olur. Rastgele birden çok eğitim verisi örneğinin ortalamasını alırsanız yine de bunu yaparsa uygulamada bir sorun olduğundan şüphelenirim.

Eğitim veri kümesi boyutunu eğitim süresine göre seçmem gerektiğini mi söylüyorsunuz? İki sınıflandırıcıyı karşılaştırmak için, en yüksek doğruluk / kararlı doğruluğun bulunduğu boyutu almak daha iyi olmaz mı? İkinci bölümle ilgili olarak, eğitim veri setinin boyutunu artırırken performans düşüşünün, bu tür eğitim verileri gürültülü ise mükemmel bir şekilde gerçekleşebileceğini düşünüyorum.
@kanzen_master: Daha fazla eğitim örneği ile performans düşüşünü gözlemleyebileceğinizden emin olabilirsiniz: öğrenme eğrisine göre bir varyans yönü ve sistematik (önyargı) bir yönü vardır. Bu yüzden Dikran çoklu rastgele örneklerden bahsediyor. Lütfen. ayrıca cevabıma bakın.
Gürültülü bir veri kümesi, veri kümesi büyüdükçe doğruluğun azalmasıyla sonuçlanırsa, verilerin i.i.d olduğunu varsayarsak. vb. şu ana kadar sahip olduğunuz veri kümesinin verilerin dağılımını yeterince temsil edemeyecek kadar küçük olduğu ve daha fazla veriye ihtiyacınız olduğu anlamına gelir. Yeterli veri toplarsanız, gürültü ortalanır ve performans artar. Varyans bir sorunsa, bu, varyansı azaltmak için daha fazla veriye ihtiyaç olduğu anlamına gelir.


Bu Soru-Cevap, otomatik olarak İngilizce dilinden çevrilmiştir.Orijinal içerik, dağıtıldığı cc by-sa 3.0 lisansı için teşekkür ettiğimiz stackexchange'ta mevcuttur.
Loading...