K-katlama çapraz doğrulama işleminden sonra öngörülü bir model nasıl seçilir?


148

K-kat çapraz doğrulama yaptıktan sonra prediktif bir model seçmeyi merak ediyorum.

Bu garip bir şekilde ifade edilebilir, bu yüzden daha ayrıntılı olarak açıklamama izin verin: K-kat çapraz onaylamayı her çalıştırdığımda, eğitim verilerinin K altkümelerini kullanıyorum ve K farklı modellerle bitirdim.

K modellerinden birini nasıl seçeceğimi bilmek istiyorum, böylece onu birisine sunabiliyorum ve “bu üretebileceğimiz en iyi model” diyebiliyorum.

K modellerinden birini seçmek doğru mudur? Veya ortanca test hatasını elde eden modeli seçmek gibi bir tür en iyi uygulama var mı?


2
Aşağıdaki soruda cevapları yararlı bulabilirsiniz: stats.stackexchange.com/questions/2306/…
BGreene

5 kat CV'yi 100 kez tekrarlamanız ve sonuçları yeterli hassasiyet için ortalamaya almanız gerekecektir. Ve @bogdanovist tarafından verilen cevap çok açık. Daha az model sığması ile aynı önyükleme tahmininde aynı hassasiyet kesinliğini elde edebilirsiniz.
Frank Harrell

@Frank Harrell, neden 100 tekrarın gerekli olduğunu söylüyorsunuz (genellikle 10 kat üzerinde 10 tekrar kullanırım), OP herhangi bir spesifikasyonda bulunmadığı için bu bir kuraldır?
BGreene

2
10 kat cv için tekrarı yapmak en iyisidir . 5 kat daha fazla tekrar gerekli olacak. Bunlar kurallar. Tek bir 10 katlı cv dengesiz bir cevap verecektir, yani 10 bölmeyi tekrarlayın ve endişelenecek kadar farklı bir cevap alırsınız. 50
Frank Harrell

Neredeyse kesin bir kopyası: Çok sayıda değerli cevap içeren istatistik.stackexchange.com/questions/11602 . Belki de bu iplikler birleştirilmeli ama hangi yöne doğru emin değilim. Her ikisi de çok iyi cevapları kabul etti. Fakat diğeri daha eski ve daha fazla görüşe / oyuna sahip, bu yüzden bunu bir taneyle birleştirmenin bir anlamı olabilir.
amip

Yanıtlar:


200

Çapraz doğrulama amacını anlamada hala bir şeylerin eksik olduğunu düşünüyorum.

Bazı terminolojiyi açıklığa kavuşturalım, genel olarak 'bir model' dediğimizde, bazı girdi verilerinin tahmin etmeye çalıştığımızla nasıl ilişkili olduğunu açıklamak için özel bir metoda atıfta bulunuruz. Genel olarak, bu yöntemin belirli örneklerine farklı modeller olarak atıfta bulunmayız. Yani 'Doğrusal bir regresyon modelim var' diyebilirsiniz, ancak iki farklı eğitimli katsayı kümesi farklı modeller demezsiniz. En azından model seçimi bağlamında değil.

Bu nedenle, K-fold cross validation yaptığınızda, modelinizin bazı veriler tarafından ne kadar iyi eğitilebileceğini test ediyor ve sonra görmediği verileri tahmin ediyorsunuz. Bunun için çapraz onaylama kullanıyoruz, çünkü elinizdeki tüm verileri kullanarak eğitim yaparsanız, test için hiçbir kalmanız kalmaz. Bunu bir kez yapabilir, eğitmek için verilerin% 80'ini ve test etmek için% 20'sini kullanarak söyleyebilirsiniz, ancak test etmek için seçtiğiniz% 20'nin özellikle kolay (ya da özellikle zor) bir sürü nokta içermesi durumunda tahmin etmek? Modelleri öğrenmek ve tahmin etmek için mümkün olan en iyi tahmini bulamayacağız.

Tüm verileri kullanmak istiyoruz. Yukarıdaki 80/20'lık bir bölünme örneğine devam etmek için, verinin% 80'inde modeli 5 kez eğitip% 20'sinde test ederek 5 kat çapraz doğrulama yaparız. Her veri noktasının bir kez ayarlanan% 20 testinde sona ermesini sağlıyoruz. Bu nedenle, modelimizin bazı verilerden öğrenme ve yeni verileri öngörme görevini ne kadar iyi yerine getirdiğinin anlaşılmasına katkıda bulunmak için her veri noktasını kullandık.

Ancak, çapraz onaylamanın amacı nihai modelimizi bulmak değildir. Eğitimli modelimizin bu 5 örneğini gerçek bir tahmin yapmak için kullanmıyoruz. Bunun için mümkün olan en iyi model ile gelip bütün verileri kullanmak istiyoruz. Çapraz doğrulama işleminin amacı, model oluşturma değil, model kontrolüdür.

Şimdi, iki modelimiz olduğunu söyleyin, doğrusal regresyon modeli ve sinir ağını söyleyin. Hangi modelin daha iyi olduğunu nasıl söyleyebiliriz? K-kat çapraz onaylama yapabilir ve hangisinin test ayar noktalarını tahmin etmekte daha iyi olduğunu görebiliriz. Ancak, daha iyi performans gösteren modeli seçmek için çapraz doğrulama kullandığımızda, bu modeli (doğrusal regresyon veya sinir ağı olsun) tüm veriler üzerinde eğitiriz. Nihai kestirim modelimiz için çapraz doğrulama sırasında eğittiğimiz gerçek model örneklerini kullanmıyoruz.

Önyükleme toplaması adı verilen (genellikle 'torbalama' olarak kısaltılmış) bir teknik olduğunu, bir grup model oluşturmak için çapraz onaylamaya benzer şekilde üretilen model örneklerini bir şekilde kullandığını, ancak bu kapsamın ötesinde gelişmiş bir teknik olduğunu unutmayın. Buradaki sorunuzun.


8
Bu noktaya tamamen katılıyorum ve tüm verileri kullanmayı düşünüyorum. Bununla birlikte, son modelimizi tüm veri setini kullanarak eğitmiş olsaydık, bu durum gelecekteki tahminleri fazla abartmaya ve böylece sabote etmeye neden olmaz mıydı?
Berk U.

19
Hayır! Aşırı donanımın model karmaşıklığı ile ilgisi var, modeli eğitmek için kullanılan veri miktarıyla ilgisi yok. Model karmaşıklığının, parametrelerin aldığı değerleri değil, modelin kullandığı yöntemle de ilgisi vardır. Örneğin, bir regresyon modelinde x ^ 2 ortak vericilerin yanı sıra x ortak-vericileri de dahil edip etmemesi.
Bogdanovist

17
@Bogdanovist: Bence aşırı uydurma, çok karmaşık bir model için çok az eğitim vakasıyla ilgili olmalı. Bu yüzden (ayrıca) birçok eğitim vakasıyla da ilgisi var. Ancak daha fazla eğitim vakasına sahip olmak, fazla uydurma riskini azaltacaktır (sürekli model karmaşıklığı için).
Mart'ta

3
@Bogdanovist For that we want to use all the data we have to come up with the best model possible.- K-katlama çapraz doğrulama ile bir grid araması yaparken, bu, grid araması tarafından bulunan en iyi paramları kullanacağınız ve tüm eğitim verilerinde bir modele uyacağınız ve test setini kullanarak genelleme performansını değerlendireceğiniz anlamına mı geliyor?
arun,

4
@arun, k-fold cross validation kullandıysanız ve en iyi parametrelere ve hiper parametrelere sahip en iyi modeli seçtiyseniz, daha sonra son modeli eğitim seti üzerine yerleştirdikten sonra, Deneme seti. Bunun nedeni, önceden belirlenmiş parametrelere sahip modelin görünmeyen veriler üzerinde nasıl davrandığını kontrol etmiş olmanızdır.
Sandeep S. Sandhu

29

Bogdanovist'in cevabına ek olarak birkaç noktaya atmama izin verin

Dediğiniz gibi, farklı modelleri eğitiyorsunuz . Eğitim verilerinin 1 / (k-1) 'inin diğer vakalara karşı değiş tokuş edildiğinden farklıdırlar. Bu modellere bazen vekil modeller denir, çünkü bu modeller için ölçülen (ortalama) performans, tüm durumlarda eğitilen modelin performansının bir vekili olarak alınır.k

Şimdi, bu süreçte bazı varsayımlar var.

  • Varsayım 1: taşıyıcı modeller "tüm veriler" modeline eşdeğerdir.
    Bu varsayımın kopması oldukça yaygındır ve belirti, kat çapraz onaylamanın (veya diğer yeniden örnekleme temelli onaylama şemalarının) bilinen karamsar yanlılığıdır . Vekil modellerin performansı, öğrenme eğrisi hala pozitif bir eğime sahipse (yani daha az eğitim örneği daha kötü modellere yol açarsa), "bütün veri" modelinin performansından ortalama olarak daha kötüdür.k

  • Varsayım 2, varsayım 1'in daha zayıf bir versiyonudur: vekil modeller ortalama olarak tüm veri modelinden daha kötü olsalar bile, birbirleriyle eşdeğer olduklarını varsayıyoruz. Bu, taşıyıcı modeller için test sonuçlarının bir ortalama performans olarak özetlenmesini sağlar . Model kararsızlığı, bu varsayımın bozulmasına yol açmaktadır: eğitim durumlarında eğitilmiş modellerin gerçek performansı çok değişkendir. Bunu, katmanı çapraz onaylamanın yinelemelerini / tekrarlarını yaparak ( alt kümelerine yeni rastgele atamalar ) ve aynı durum için farklı taşıyıcı modellerin öngörüleri arasındaki varyansa (rastgele farklar) bakarak ölçebilirsiniz .k
    kkNk1kkk

  • Sonlu vaka sayısı, sonlu sayıda test vakası nedeniyle performans ölçümünün rastgele bir hataya (varyansa) maruz kalacağı anlamına gelir. Bu varyans kaynağı, model dengesizliği varyansından farklıdır (ve buna ek olarak).

Gözlemlenen performanstaki farklılıklar, bu iki varyans kaynağından kaynaklanmaktadır.

Düşündüğünüz "seçim" bir veri kümesi seçimidir: taşıyıcı modellerden birini seçmek, eğitim örneklerinin bir alt kümesini seçmek ve bu eğitim örneklerinin alt kümesinin daha üstün bir modele yol açtığını iddia etmek anlamına gelir. Bu gerçekten durum böyle olsa da, genellikle "üstünlük" sahtedir. Her durumda, taşıyıcı modellerin "en iyisini" seçmek veri odaklı bir optimizasyon olduğundan, bu toplanan modeli yeni bilinmeyen verilerle doğrulamanız (performansı ölçmeniz) gerekir. Bu çapraz doğrulama içerisinde belirlenen test, vekil modeli seçmek için kullanıldığı için bağımsız değildir.

Makalemize bakmak isteyebilirsiniz, bu olayların genellikle regresyondan daha kötü olduğu sınıflandırma ile ilgilidir. Bununla birlikte, bu varyans kaynaklarının ve yanlılığın nasıl toplandığını gösterir.
Beleites, C. ve Neugebauer, U. ve Bocklitz, T. ve Krafft, C. ve Popp, J .: Sınıflandırma modelleri için örneklem büyüklüğü planlaması. Anal Chim Acta, 2013, 760, 25-33.
DOI: 10.1016 / j.aca.2012.11.007 arXiv’de
kabul edilen makale: 1211.1323


Siz ve Bogdanovist deyince picking "the best" of the surrogate models is a data-driven optimization, you'd need to validate (measure performance) this picked model with new unknown data. The test set within this cross validation is not independent as it was used to select the surrogate model.ve söylediğinde anlaşmazlık But once we have used cross-validation to select the better performing model, we train that model (whether it be the linear regression or the neural network) on all the data.
içindesiniz.

Özellikle CV'den veri çıkarmanın mümkün olmadığı, ancak modelinize fazla uyma riskinin de yüksek olduğu küçük veri setleri için! Bu konuyu netleştirmek için referanslara ihtiyaç var.
jpcgandre

5
@jpcgandre: Herhangi bir anlaşmazlık görmüyorum. Bogdanovist, seçim modelinin çapraz doğrulama yoluyla seçilen hiperparametrelerden gerçekten nasıl hesaplanacağını açıklıyor ve böyle bir seçimden sonra, modelin başka bir (dış) bağımsız doğrulama seviyesine ihtiyacı olduğunu da ekledim. Başka bir deyişle, örneğin yuvalanmış bir doğrulama tasarımı: hiperparametre seçimi için iç doğrulama döngüsü, seçilen modelleri test etmek için dış döngü (eğer yeterli vakanız varsa, bağımsız bir test seti için de gidebilirsiniz).
14'te cbeleites

5
İç / dış doğrulama kurulumu, çift veya iç içe çapraz doğrulama olarak bilinen çapraz doğrulama içindir, aynı zamanda çapraz model doğrulama olarak da adlandırıldığını gördüm ( dx.doi.org/10.1016/j.chemolab.2006.04.021 ). Bağımsız test setiyle üç sete bölünmeye karşılık gelir: tren / (optimizasyon) validasyon / test (= final validasyon). İkinci seviye bir CV için verileri dışarıda bırakamayacak kadar az vakanız varsa, hiperparametre setlerinden birini seçerek optimize etmek yerine hiperparametrelerinizi başka yollarla düzeltmeniz gerektiğini savunuyorum.
cbeleites

@cbeleites Bir sorum var. Daha sonra, son model parametrelerini almak için, her bir dış kıvrımdaki hiperparametrelerin ortalamasını alır ve bu ortalama hiperparametreyi kullanarak tüm veri kümesini tekrar değerlendirir misiniz? Ya da normal bir CV'de hiperparametre araması yapıp tekrarlanan iç içe geçmiş CV kullanarak bu yöntemin kararlılığını teyit etmek de işe yarar mı?
Michelle,

11

Bu mükemmel makaleyi buldum . Makine öğreniminde CV kullanımı ile ilgili sahip olduğum tüm kafa karışıklıklarının giderilmesinde son makine öğrenme modelinin yetiştirilmesi.

Temel olarak tüm işleminizin (veri mühendisliği, model seçimi (algoritma dahil) ve hiper parametreler, vb. Dahil) gelecekte görülmeyen bir zamanda nasıl bir performans göstereceğini tahmin etmek için CV'yi (örn. 80/20 split, k-fold, vb.) Kullanıyoruz. veri. Ve kazanan "prosedürü" seçtikten sonra, CV'nin takılı modelleri amaçlarına hizmet etti ve artık atılabilir. Daha sonra aynı kazanan prosedürü kullanın ve tüm veri setini kullanarak son modelinizi geliştirin.


1

Bu çok ilginç bir soru. Açıklığa kavuşturmak için model ve model değerlendirmedeki farkı anlamamız gerekir. Bir model oluşturmak için tam eğitim seti kullanıyoruz ve bu modelin sonunda kullanılmasını bekliyoruz.

K katlama çapraz değerlendirme K modellerini oluşturacaktı fakat hepsi bırakılacaktı. K modelleri sadece değerlendirme için kullanılır. ve bu modelin verilerinize ne kadar iyi uyduğunu anlatan ölçütler üretti.

Örneğin, LinearRegression algo'yu seçtiniz ve aynı eğitim setinde iki işlem gerçekleştiriyorsunuz: biri 10 kat çapraz doğrulama ve diğeri 20 kat. regresyon (veya sınıflandırıcı) modeli aynı olmalıdır, ancak Korelasyon katsayısı ve Kök bağıl kare hatası farklıdır.

Aşağıda, weka ile 10 kat ve 20 kat çapraz doğrulama için iki işlem bulunmaktadır

10 kat ile ilk koşu

=== Run information ===
Test mode:    10-fold cross-validation
...
=== Classifier model (full training set) ===


Linear Regression Model  <---- This model is the same

Date = 844769960.1903 * passenger_numbers -711510446549.7296

Time taken to build model: 0 seconds

=== Cross-validation ===  <---- Hereafter produced different metrics
=== Summary ===

Correlation coefficient                  0.9206
Mean absolute error                35151281151.9807
Root mean squared error            42707499176.2097
Relative absolute error                 37.0147 %
Root relative squared error             38.9596 %
Total Number of Instances              144     

20 kat ile 2. koşu

=== Run information ===
...
Test mode:    20-fold cross-validation

=== Classifier model (full training set) ===


Linear Regression Model   <---- This model is the same

Date = 844769960.1903 * passenger_numbers -711510446549.7296

Time taken to build model: 0 seconds

=== Cross-validation ===  <---- Hereafter produced different metrics
=== Summary ===

Correlation coefficient                  0.9203
Mean absolute error                35093728104.8746
Root mean squared error            42790545071.8199
Relative absolute error                 36.9394 %
Root relative squared error             39.0096 %
Total Number of Instances              144     

0

Yukarıdaki tartışmanın tamamen doğru olduğundan emin değilim. Çapraz doğrulama işleminde, verileri her çalışma için Eğitim ve Testlere bölebiliriz. Yalnızca eğitim verilerini kullanarak, modele uyması ve değerlendirilen her model sınıfındaki ayar parametrelerini seçmesi gerekir. Örneğin, Sinir Ağlarında, ayar parametreleri nöronların sayısı ve aktivasyon işlevi için seçimlerdir. Bunu yapmak için, yalnızca egzersiz verilerinde çapraz onaylamalar yapılır .

Her sınıftaki en iyi model bulunduğunda, en uygun model test verileri kullanılarak değerlendirilir. "Dış" çapraz doğrulama döngüsü, test verisi performansının daha iyi bir tahminini vermek ve ayrıca değişkenlikle ilgili bir tahmin vermek için kullanılabilir. Bir tartışma daha sonra Neural Nets vs. SVM gibi farklı sınıflar için test performansını karşılaştırabilir. Model boyutu sabit olarak bir model sınıfı seçilir ve şimdi tüm veriler en iyi modeli öğrenmek için kullanılır.

Şimdi, eğer makine öğrenme algoritmanızın bir parçası olarak, sürekli olarak en iyi model sınıfını seçmek istiyorsanız (her hafta söyleyin), o zaman bu seçeneğin bile eğitim verilerinde değerlendirilmesi gerekir! Test verisi ölçümü, eğer dinamik bir seçenekse model sınıfı seçimini değerlendirmek için kullanılamaz.


0

Neden k-kat çapraz doğrulama kullanıyoruz?

Çapraz doğrulama, görünmeyen veriler üzerindeki bir yöntemin becerisini tahmin etmek için bir yöntemdir. Tren sınama bölümü kullanmak gibi.

Çapraz doğrulama sistematik olarak, veri kümesinin birden fazla alt grubunda birden fazla model oluşturur ve değerlendirir. Bu da, bir performans ölçütleri popülasyonu sağlar .

  • İşlemin ortalama olarak ne kadar iyi performans gösterdiğine dair bir fikir edinmek için bu önlemlerin ortalamasını hesaplayabiliriz .
  • Prosedürdeki becerinin uygulamada ne kadar değişkenlik göstermesi gerektiği hakkında bir fikir edinmek için bu önlemlerin standart sapmasını hesaplayabiliriz .

Bu, hangi algoritmayı ve veri hazırlama prosedürlerini kullanacağınızı seçmeye çalışırken bir prosedürün diğerine daha ayrıntılı bir karşılaştırmasını sağlamak için de yararlıdır.

Ayrıca, pratikte bir makine öğrenim prosedüründe beklenen performans konusunda bir güven aralığı vermek için ortalamayı ve yayılımını kullanabildiğiniz için bu bilgiler paha biçilmezdir.

referans

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.