Çapraz doğrulama ve parametre optimizasyonu


14

10 kat çapraz doğrulamayı kullandığımda parametre optimizasyonu hakkında bir sorum var.

Her katın model eğitimi sırasında parametrelerin düzeltilip düzeltilmeyeceğini sormak istiyorum, yani (1) her katın ortalama doğruluğu için bir dizi optimize edilmiş parametre seçin.

veya

(2) Her kat için optimize edilmiş parametreyi bulmalıyım ve daha sonra her kat, modelini eğitmek için farklı optimize edilmiş parametreler kullanmalı, sonra sırasıyla katlamanın test verilerini test etmeli ve son olarak her katlamanın doğruluğunu ortalama olarak mı?

Çapraz doğrulama için hangisi doğru yöntemdir? Çok teşekkürler.


Bu soru: stats.stackexchange.com/questions/1826/… iki büyük cevap (en yüksek puan) vardır, bence sorunuza yardımcı olabilirler. İkincisi tam olarak istediğiniz şey. OBS .: Bunu bir yorum olarak yazmak istiyorum, ancak yapamam, bu yüzden cevapladım.
Augusto

Yanıtlar:


11

Öncelikle iki parametre grubunu ayırt edelim: model parametreleri (örneğin regresyondaki özellikler için ağırlıklar) ve öğrenme algoritmasına (ve hiperparametrelere) parametreler. Çapraz validasyonun amacı, her bir kattan öğrendiğimiz popülasyon örneklerinde genelleme yapan öğrenme parametrelerini tanımlamaktır.

Daha spesifik olarak: Küresel olarak öğrenme parametreleri üzerinde uzayda arama yaparız, ancak her katta öğrenme parametrelerini düzeltir ve model parametrelerini öğreniriz. Sonuç, tüm kıvrımlarda ortalama olarak en iyi performansı üreten parametreler olmalıdır. Daha sonra bunları, tüm veri kümesinde bir model eğitmek için kullanabiliriz.


Üzgünüm, söylediğim parametre türü hiperparametreler.
Kevin

LibSVM'deki c ve g parametreleri gibi. Yani, her katın modelini yukarıda bahsettiğim (2) yöntemiyle eğitmek için aynı c ve g'yi kullanmalı, sonra en iyisini seçmeliyim? Çok teşekkür ederim.
Kevin

2
Yukarıdaki (1) ve (2) benim için net değildi, bu yüzden onlara açıkça atıfta bulunmadım. Katlar arasında ortalaması alındığında görev metriğinizi en üst düzeye çıkaran c & g alanında arama yapmalısınız. Böylece c & g'yi bir değere ayarlarsınız, eğitim ve test prosedürünü tüm kıvrımlarda çalıştırır, ortalamalar, bu skoru korur, c veya g'yi değiştirir ve tekrarlarsınız. Sonuçta, en iyi c & g'yi bulursunuz ve son modeli tüm verileriniz üzerinde eğitebilirsiniz.
Joel

Çok teşekkür ederim. Cevapları özetlemeye çalışıyorum. Veriler 10 kata bölünmüştür: kat-1: (tren1, test1) ... kat-10: (tren10, test10) Daha sonra kat-1 ila kat-10 arasında antrenman yapmak ve test etmek için a (c1, g1) kullanın, ortalama tüm katların doğruluğu. Aynı işlemi yapmak için başka bir tane (c2, g2) deneyin ... en iyisini bulana kadar tekrarlayın (c, g). Ve en iyi (c, g) 'nin ortalama doğruluğu 10 kat çapraz doğrulamamın sonucu olacak.
Kevin

1
Sesler doğru ...
Joel

16

Şu anda kabul edilen cevabın talihsiz bir şekilde eksik olduğunu düşünüyorum. Cümleyi kabul etmiyorum

Çapraz validasyonun amacı, her bir kattan öğrendiğimiz popülasyon örneklerinde genelleme yapan öğrenme parametrelerini tanımlamaktır.

Bu gerçekten de çapraz doğrulamanın çok önemli bir uygulamasıdır, ancak tek geçerli değildir. Genellikle, iki şey yapmak istersiniz:

  1. Mümkün olan en iyi modeli oluşturun
  2. Ne kadar iyi performans gösterdiğine dair doğru bir izlenim edinin

Şimdi, algoritmanıza bağlı olarak hedef 1'i tamamlamak için bazı hiperparametreleri ayarlamanız gerekebilir ve bu genellikle çapraz doğrulama ile yapılır. Ancak bu henüz hedef 2 ile size yardımcı olmaz. Bunun için çapraz doğrulamayı temel olarak şu şekilde iç içe yerleştirmeniz gerekir:

  • Tüm verileri n katlara ayırın
  • Her biri için egzersiz verilerini tekrar alt katmanlara ayırın
  • İyi hiperparametreleri öğrenmek için alt klasörlerde çapraz doğrulamayı kullanın
  • Bu hiperparametre ile bu katın eğitim verilerine bir model oluşturun
  • Modeli test verilerinde test edin
  • Bir sonraki katlamada tekrarlayın

İyi bir model oluşturmak için sadece iç çapraz doğrulamaya ihtiyacınız vardır. İyi bir model almak için yine de yapmanız gerekecek. Ancak, model performansınıza ilişkin iyi bir tahmin elde etmek için, model oluşturma sürecinin tamamını çapraz doğrulama şeması içinde gerçekleştirmeniz gerekir. Bu aynı zamanda itfa, vb. Gibi adımları da içerir.


1
Erik, lütfen bu işlemin nasıl yapılacağına dair bir referans verebilir misiniz?
chao

Merhaba @Erik, analizlerin genel sırası (1) Çapraz doğrulama ile en uygun ayarlama parametrelerini bulmak, (2) Model parametrelerini almak için tüm eğitim veri kümesinde modeli yeniden kazanın (kazanılan ayarlama parametreleri ile) ve (3 ) Yuvalanmış çapraz doğrulama kullanarak bu yöntemin genel performans tahminini görüyor musunuz? Hakkında kafam karışan şey, nester CV sürecinde farklı hiperparametrelerin seçilebilmesidir, bu nedenle iç içe CV, yukarıda elde ettiğimiz hiperparametre / model parametrelerinin genel performansını araştırmayacaktır?
Michelle

1
Konuşmaya biraz geç kaldım, ancak bu yöntemin de "iç içe" veya "çift çapraz doğrulama" olarak adlandırıldığını belirtmek istiyorum ve burada Tom Fearn tarafından hoş bir açıklama ve koddaki
MD004
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.