Öngörü hedefi ise standartlaştırma / normalizasyon eğitimi ve test setine nasıl uygulanır?


47
  1. Tüm verilerimi veya katlamalarımı (CV uygulanmışsa) aynı anda mı değiştirebilirim? Örneğin

    (allData - mean(allData)) / sd(allData)

  2. Tren seti ve test setini ayrı ayrı değiştirebilir miyim? Örneğin

    (trainData - mean(trainData)) / sd(trainData)

    (testData - mean(testData)) / sd(testData)

  3. Yoksa tren takımını değiştirip test setinde hesaplamaları kullanabilir miyim? Örneğin

    (trainData - mean(trainData)) / sd(trainData)

    (testData - mean(trainData)) / sd(trainData)

3 doğru yol olduğuna inanıyorum. 3 doğruysa, 0 olmadığından veya [0; 1] veya [-1; 1] (normalleştirme) test setinin?


Bunu kodlamanın basit bir yolu var mı R? Bu soruya bakınız: stackoverflow.com/questions/49260862/…
Boern

Yanıtlar:


41

Üçüncü yol doğrudur. Tam olarak neden İstatistiki Öğrenmenin Öğeleri bölümünde ayrıntılı olarak ele alınmaktadır , borsa örneğinde " Veri Doğrulamayı Doğru Yapmanın Yanlış ve Doğru Yolu" bölümüne ve ayrıca Veriden Öğrenmenin son bölümüne bakınız .

Temel olarak, 1. ve 2. prosedürler, sizin verdiğiniz bilgilerden, modelinizin eğitimine veya değerlendirmesine yanıt olarak veya gelecekten gelen yanıtlar hakkında bilgi sızdırıyor. Bu, model değerlendirmenizde önemli bir iyimserlik yanlılığına neden olabilir.

Model doğrulamasındaki fikir, modeliniz üretim kararları alırken, gerçek cevaba erişemediğinizde olacağınız durumu taklit etmektir. Sonucu bir şey için deney setinde yanıtını kullanamazsınız olmasıdır haricinde tahmin edilen değerlerle karşılaştırarak.

Yaklaşmanın başka bir yolu, bir anda bekletmeden aldığınız tek bir veri noktasına erişiminiz olduğunu (üretim modelleri için ortak bir durum) hayal etmektir. Bu varsayım altında yapamayacağınız herhangi bir şey , büyük bir şüpheyle tutmalısınız. Açıkçası, yapamayacağınız bir şey, üretim veri akışınızı normalleştirmek için geçmiş ve gelecek tüm yeni veri noktalarında toplanmaktır - bu nedenle model doğrulama için aynısını yapmak geçersizdir.

Test setinizin sıfır olmadığının ortalaması hakkında endişelenmenize gerek yok, bu, performans performans tahminlerinizi bastırmaktan daha iyi bir durum. Tabii ki, eğer test treninizle aynı temel dağılımdan gerçekten alınmışsa (istatistiksel öğrenmede temel bir varsayım), söylenen ortalama yaklaşık sıfır olarak çıkmalıdır.


Bende böyle düşünmüştüm. Bunu açıklığa kavuşturduğun için teşekkürler!
DerTom

Clearly, one thing you cannot do is aggregate over all new data-points past and future to normalize your production stream of data. Neden olmasın?
Anmol Singh Jaggi

1
@AnmolSinghJaggi Onun "ve gelecek". Verileri henüz toplamadıysanız, onu kullanarak normalleştiremezsiniz.
Matthew Drury

4
Eğer örtülü hakkında bilgi kullanımı, test verileri arasında toplayarak, "Geçtiğimiz" gibi verilere eğitim ve "mevcut veya gelecekte" gibi verileri test düşünürseniz @floodking gelecekte X. Veri sızıntı sadece sızıntı ibaret değildir içine senin Tahmin edicileri, gelecekten gelen bilgileri sızdırmakla da ilgilidir. Temel bir kural, yalnızca bir satır veya test verilerinizi kullanarak tahminlerde bulunabilmeniz gerektiği , aksi takdirde geleceği kullanıyor olmanızdır. y
Matthew Drury

1
@MatthewDrury. Açıklamanız için teşekkürler. Sana şimdi katılıyorum. Sadece üçüncü yol doğrudur.
17'de 18
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.