Eğitim aşaması ile değerlendirme aşaması arasında neden bir asimetri var?


27

Özellikle doğal dil işlemede, makine öğreniminin iki adımda, bir eğitim adımında ve bir değerlendirme adımında ilerlemesi ve farklı veriler kullanması gerektiği iyi bilinir. Bu neden? Sezgisel olarak, bu işlem verilerin fazladan yüklenmesini önlemeye yardımcı olur, ancak durumun (bilgi-teorik) nedenini göremiyorum.

Buna göre, sırasıyla 2/3 ve 1/3 gibi bir veri setinin eğitim için ne kadarının kullanılması ve değerlendirme için ne kadar kullanılması gerektiği konusunda atılmış bazı rakamlar gördüm. Belirli bir dağılımı seçmek için herhangi bir teorik temel var mı?

Yanıtlar:


15

Çoğunlukla alınan - Ben o biraz daha teori ile bu yedeklemek için güzel olacağını düşündüm bu yüzden en çok upvoted cevap gerçekten :) soruya cevap vermez bu komik : "Pratik Yapay Öğrenme Araçları ve Teknikleri Veri Madenciliği" ve Tom Mitchell "Makine Öğrenmesi" .


Giriş.

Bu yüzden bir sınıflandırıcıya ve sınırlı bir veri setine sahibiz ve belirli bir miktarda veri eğitim setine girmeli ve gerisi test için kullanılmalıdır (gerekirse doğrulama için kullanılan üçüncü bir alt set).

Karşılaştığımız ikilem şudur: İyi bir sınıflayıcı bulmak için, "eğitim altkümesi" mümkün olduğu kadar büyük olmalı, ancak iyi bir hata elde etmek için "test altkümesi" mümkün olduğu kadar büyük olmalıdır - ancak her iki altkümeden de alınmalıdır. Aynı havuz

Eğitim seti test kümesi daha büyük olması gerektiği aşikardır - olduğu, split 1 olmamalıdır: 1 (ana amacı şudur tren değil, testin ) - ancak ayrık olması gereken yerde açık değil.

Bekletme prosedürü.

"Süper kümesi" alt gruplara bölme prosedürüne holdout yöntemi denir . Kolayca şanssız hale gelebileceğinizi ve belirli bir sınıfın örneklerinin, alt gruplardan birinde kaybolabileceğini (veya fazla yayınlandığını) unutmayın.

  • Her bir sınıfın tüm veri alt gruplarında doğru bir şekilde temsil edildiğini garanti eden rastgele örnekleme - prosedür, tabakalı bekletme olarak adlandırılır.
  • Bunun üzerine tekrarlanan eğitim testi onaylama işlemi ile rastgele örnekleme - buna tekrar tekrar tabakalı bekletme denir

Tek (tekrarlanmayan) bir bekletme prosedüründe, test ve eğitim verilerinin rollerini değiştirmeyi düşünebilir ve iki sonucu ortalayabilirsiniz, ancak bu yalnızca eğitim ve test setleri arasında kabul edilemez olan 1: 1'lik bir bölünme ile mümkündür (bkz. Giriş ). Ancak bu bir fikir verir ve geliştirilmiş bir yöntem ( bunun yerine çapraz doğrulama olarak adlandırılır ) - aşağıya bakın!

Çapraz doğrulama.

Çapraz onaylamada, sabitlenmiş sayıda kıvrımlara (verilerin bölümleri) karar verirsiniz . Üç kat kullanırsak, veriler üç eşit bölüme ayrılır ve

  • eğitim için 2/3, test için 1/3 kullanıyoruz
  • ve prosedürü üç kez tekrarlayın, böylece sonuçta, her bir örnek test için tam olarak bir kez kullanılmıştır.

Buna üç kat çapraz doğrulama denir ve eğer stratiasyon da benimsenirse (çoğu zaman doğrudur) katmanlandırılmış üç kat çapraz doğrulama olarak adlandırılır .

Ama bak şu işe, standart yoludur değil 1/3 bölünmüş: 2/3. Quotting "Veri Madenciliği: Pratik Makine Öğrenme Araçları ve Teknikleri" ,

Standart yol [...], 10 katlı çapraz onaylama kullanmaktır. Veriler, sınıfın tam veri setinde olduğu gibi yaklaşık olarak aynı oranlarda temsil edildiği 10 parçaya rasgele bölünmüştür. Her bölüm sırayla gerçekleştirilir ve öğrenme düzeni kalan dokuzuncu onda eğitilir; daha sonra hata oranı bekleme setinde hesaplanır. Bu nedenle öğrenme prosedürü (her biri çok ortak noktası olan) farklı eğitim setlerinde toplam 10 kez uygulanır. Son olarak, toplam hata tahminini vermek için 10 hata tahmininin ortalaması alınır.

Neden 10 Çünkü "farklı öğrenme teknikleri ile çok sayıda veri setleri üzerinde ..Extensive testleri, 10 hatasının en iyi tahmin almak için kıvrımların doğru sayısı hakkında ve bazı teorik kanıtlar da olduğunu göstermiştir ki destekliyor bu kadar .." Ben cenneti Hangi kapsamlı testleri ve teorik kanıtları kastettiklerini anlamadılar ancak bu daha fazlasını kazmak için iyi bir başlangıç ​​gibi görünüyor - dilerseniz.

Basitçe diyorlar ki

Bu argümanlar hiçbir şekilde kesin olmamakla birlikte, tartışmalar makine öğrenmesi ve veri madenciliği çevrelerinde değerlendirme için en iyi programın ne olduğu konusunda öfkeli olmaya devam etse de, pratikte 10'lu çapraz onaylama standart yöntem haline gelmiştir. [...] Dahası, 10: 5 kat ya da 20 kat çapraz doğrulama sayısının neredeyse tamamı kadar iyi olacağı konusunda sihir yoktur.

Önyükleme ve - sonunda! - Orijinal sorunun cevabı.

Fakat biz hala cevap olarak gelmedik, neden 2/3: 1/3 sıklıkla öneriliyor? Benim düşüncem bootstrap yönteminden miras alınması .

Değişim ile örneklemeye dayanır. Önceden, "büyük kümeden" bir örneği tam alt gruplardan birine yerleştirdik. Önyükleme farklıdır ve bir örnek hem eğitim hem de test setinde kolayca görünebilir.

Biz bir veri kümesi almak belirli bir senaryoya atalım D1 ait n örnekleri ve bunu örneklemek n değiştirilmesi ile sürelerini, başka veri kümesi almak için D2 ait n örneklerini.

Şimdi dar izle.

D2'deki bazı öğeler (neredeyse kesinlikle) tekrarlanacağından, orijinal veri kümesinde seçilmemiş bazı örnekler olmalıdır: bunları test örnekleri olarak kullanacağız.

D2 için belirli bir örneğin alınamaması ihtimali nedir ? Her çekimde alınma olasılığı 1 / n'dir, yani tam tersi (1 - 1 / n) 'dir .

Bu olasılıkları birlikte çarptığımızda, (1 - 1 / n) ^ n ki bu da e ^ -1, yani 0.3'tür. Bu, test setimizin yaklaşık 1/3 olacağı ve eğitim setinin yaklaşık 2/3 olacağı anlamına gelir.

Ben sanırım 2/3 bölünmüş: Bu oran önyükleme tahmin yöntemiyle alınır bu kullanımda 1/3 önerilir nedeni budur.

Sarmalamak.

Veri madenciliği kitabından (ispatlayamadığım ancak doğru olduğunu iddia edemediğim) bir teklifle bitirmek istiyorum, burada genellikle 10 kat çapraz doğrulama tercih ediyorlar:

Önyükleme prosedürü, çok küçük veri kümeleri için hatayı tahmin etmenin en iyi yolu olabilir. Bununla birlikte, bir kez dışarıda bırakılan çapraz onaylama gibi, iki sınıflı tamamen rasgele bir veri kümesi olan özel, sanatsal bir durum düşünülerek gösterilebilecek dezavantajları vardır. Gerçek hata oranı, herhangi bir tahmin kuralı için% 50'dir. Ancak, eğitim setini ezberleyen bir şema,% 100'lük mükemmel bir yeniden yerleştirme puanı verir, böylece etraining örnekleri = 0 ve 0.632 önyükleme değeri bu değeri 0.368 ila Yanıltıcı bir şekilde iyimser olan sadece% 31.6 (0.632 ¥ 50% + 0.368 ¥% 0) genel hata oranı verir.


13

Sonlu bir m kayıt kümesi düşünün. Tüm kayıtları bir eğitim seti olarak kullanırsanız, tüm puanları aşağıdaki polinom ile mükemmel bir şekilde uydurabilirsiniz:

y = a0 + a1 * X + a2 * X ^ 2 + ... + an * X ^ m

Şimdi, antrenman setinde kullanılmayan yeni bir kaydınız varsa ve bir giriş vektörünün X değerleri, antrenman setinde kullanılan herhangi bir X vektöründen farklıysa, y tahmininin doğruluğu hakkında ne söyleyebilirsiniz?

Size 1 veya 2 boyutlu giriş vektörünüzün X olduğu (aşırı polinomun görselleştirilmesi için) ve X değerlerinin sadece bir çift olduğu bazı çiftlerin (X, y) tahmin hatasının ne kadar büyük olduğunu kontrol etmenizi öneririm. Eğitim setindeki değerlerden biraz farklı.

Bu açıklamanın yeterince teorik olup olmadığını bilmiyorum, ama umarım yardımcı olur. Regresyon modelindeki problemi diğerlerinden daha sezgisel olarak anlaşılabilir buldukça açıklamaya çalıştım (SVM, Yapay Sinir Ağları ...).

Bir model oluştururken, verileri en azından eğitim setine ve test setine bölmelisiniz (bazıları verileri eğitim, değerlendirme ve çapraz doğrulama setine ayırır). Genellikle verinin% 70'i eğitim seti için,% 30'u değerlendirme için kullanılır ve ardından modeli oluştururken eğitim hatasını ve test hatasını kontrol etmeniz gerekir. Her iki hata da büyükse, modelinizin çok basit olduğu anlamına gelir (model yüksek önyargılıdır). Öte yandan, eğer eğitim hatanız çok küçükse fakat eğitim ve test hatası arasında büyük bir fark varsa, modelinizin çok karmaşık olduğu anlamına gelir (modelin yüksek varyansı vardır).

Doğru uzlaşmayı seçmenin en iyi yolu, çeşitli karmaşıklıktaki modeller için eğitim ve test hatalarını çizmek ve test hatasının en az olduğu noktayı seçmektir (aşağıdaki resme bakın). görüntü tanımını buraya girin


5
Bu, bunun için gerçekten harika bir cevap - neden bu kadar değil. Ama belki bu sadece yanlış bir sorudur - asıl önem verdiğimiz şey, ampirik olarak işe yarayan teori değil.
Tamzin Blake

@Thom: Yani asıl soru, ikinci paragraf ve ilkin sonu değil (“nedenini göremedi”) çünkü ampirik olarak çalışan şey, fazla uydurma olduğun içindir: modeliniz, küçük tuhaflıkları ele almak için mükemmel bir iş çıkarır. Genel durumda bulunmayan eğitim verileri.
winwaed

1
@winwaed Sorular “Neden var…?”, “Neden?” ve “Herhangi biri var mı? Bu fenomene aşinayım ve sezgisel buluyorum ve ampirik örneklere aşinayım, ama bunun neden böyle olduğunu bilmiyorum ve bilgi teorisinin benim için bir cevabı olması gerektiğini düşünüyorum. Yukarıdaki yorum, belki de "neden" sorularının, istifade edebileceğiniz düzenlilikleri ampirik olarak doğruladıktan sonra özellikle ilgili olmadığını yansıtıyordu.
Tamzin Blake

7

Bu genelleme sorunudur - yani, hipotezimizin eğitim setinin bir parçası olmayan gelecekteki örnekleri ne kadar doğru şekilde sınıflandıracağıdır. Lütfen bu fantastik örneğe bakın, modelinizin yalnızca sahip olduğunuz verilere uygun olup olmadığına bakıldığında ne oldu: Titius-Bode yasası


İyi bir örnek - bilimsel hipotezlerde olduğu gibi aynı. Hala modellerin istatistiksel ML modelleri veya evrenin modelleri olup olmadığından bahsediyoruz.
winwaed

1

Şimdiye kadar @andreiser, OP'nin eğitim / test verileri bölünmesiyle ilgili sorusunun ikinci kısmına mükemmel bir cevap verdi ve @niko, fazla uydurmamaktan nasıl kaçınacağını açıkladı, ancak hiç kimse soruyu hak etmedi: Neden eğitim ve değerlendirme için farklı veriler kullanıldı? fazla giymemekten kaçınmamıza yardımcı olur.


Verilerimiz aşağıdakilere ayrılmıştır:

  1. Eğitim örnekleri
  2. Doğrulama örnekleri
  3. Test (değerlendirme) örnekleri

Şimdi bir modelimiz var, diyelim . Eğitim örneklerini kullanarak yerleştiririz ve doğrulama örneklerini kullanarak doğruluğunu kontrol ederiz. Çapraz doğrulama bile yapabiliriz. Peki neden test örnekleri kullanarak dünya üzerinde tekrar kontrol edelim?M

Sorun şu ki pratikte, farklı parametrelerle birçok farklı modeli deniyoruz . Aşırı uyarlamanın gerçekleştiği yer burasıdır. Doğrulama durumlarında en iyi performansı gösteren modeli seçerek seçeriz. Ancak hedefimiz, genel olarak iyi bir performans gösteren bir modele sahip olmaktır. Bu nedenle test örneklerine sahibiz - doğrulama örneklerinden farklı olarak, test örnekleri modelin seçimine dahil değildir.M1,...,Mn

Doğrulama ve Test örneklerinin farklı rollerinin ne olduğunu anlamak önemlidir.

  1. Eğitim örnekleri - modellere uyması için kullanılır.
  2. Doğrulama örnekleri - bir model seçmek için kullanılır
  3. Test (değerlendirme) örnekleri - bir modelin yeni veriler üzerindeki doğruluğunu ölçmek için kullanılır

Daha fazla ayrıntı için İstatistiksel Öğrenme Öğeleri: Veri Madenciliği, Çıkarım ve Öngörü sayfasına bakınız.

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.