Çapraz doğrulama ve parametre ayarlama


18

Herkes bana bir çapraz geçerlilik analizinin sonuç olarak tam olarak ne verdiğini söyleyebilir mi? Sadece ortalama doğruluk mu yoksa ayarlanmış parametrelerle herhangi bir model veriyor mu?

Çünkü bir yerde, çapraz ayarlamanın parametre ayarı için kullanıldığını duydum.

Yanıtlar:


26

Çapraz doğrulama, verilerin çeşitli rastgele bölümlerinin eğitim ve test örneklerine ortalaması alınarak örnek dışı doğruluğun bir ölçüsünü verir. Genellikle bir parametrenin birkaç (veya birçok) olası değeri için çapraz doğrulama yaparak ve en düşük çapraz doğrulama ortalama hatasını veren parametre değerini seçerek parametre ayarı için kullanılır.

Dolayısıyla sürecin kendisi size bir model veya parametre tahminleri vermez, ancak alternatifler arasında seçim yapmanıza yardımcı olması için kullanabilirsiniz.


12

Jonathan'ın cevabına eklemek için.

Bununla birlikte, parametre ayarı için çapraz doğrulama kullanırsanız, dışarıdaki örnekler aslında modelinizin bir parçası haline gelir. Bu nedenle, son modelin performansını doğru bir şekilde ölçmek için başka bir bağımsız örneğe ihtiyacınız var.

Model performansını ölçmek için kullanılan çapraz doğrulama, yalnızca ortalama doğruluktan daha fazlasını ölçebilir:
Çapraz doğrulama ile ölçebileceğiniz ikinci bir şey, değişen eğitim verilerine göre model kararlılığıdır: çapraz doğrulama, eğitilmiş birçok "vekil" model oluşturur biraz farklı eğitim setleri. Modeller istikrarlıysa, tüm bu vekil modeller eşdeğerdir, eğitim kararsızsa, vekil modeller çok değişir. Örneğin, aynı örnek için farklı vekil modellerin tahminlerinin değişimi (yinelemeli / tekrarlanan çapraz validasyonda) veya örneğin vekil modellerin parametrelerinin değişimi olarak ölçülebilir.


4

Önceki yanıtlara eklemek için baştan başlayacağız:

Modellerinizi egzersiz verilerine göre değiştirmenin birkaç yolu vardır, bazıları açıktır, bazıları daha azdır. Birincisi ve en önemlisi, eğitim parametrelerinin (ağırlıkların) verilere (lojistik regresyondaki eğri uydurma parametreleri, sinir ağındaki ağ ağırlıkları vb.) Daha sonra verilerdeki gürültüyü modellersiniz - fazla abartıyorsanız, sadece altta yatan üretme işlevini değil, aynı zamanda örnek büyüklüğü ve örneğin popülasyonun mükemmel bir temsili olmadığı gerçeğini de yakalarsınız. Bu aşırı uyum, modelin belirli niteliklerini (genel olarak karmaşıklığı) cezalandırarak bir dereceye kadar hafifletilebilir. Bu, tren örneğindeki performans artık önemli ölçüde iyileşmediğinde, bazı nöronları sinir ağından (bırakma denir) kaldırarak eğitimi durdurarak yapılabilir,https://ieeexplore.ieee.org/document/614177/ ) vb.). Bununla birlikte, bu düzenleme stratejilerinin kendileri parametrelendirilir (ne zaman durursunuz?, Kaç nöron kaldırılacak? Vb.). Ayrıca, makine öğrenimi modellerinin çoğunda, eğitim başlamadan önce ayarlanması gereken bir dizi hiper parametre bulunur. Ve bu hiper parametreler, parametre ayarlama aşamasında ayarlanır.

Bu bizi ikinci ve daha ince tipte aşırı sığdırmaya getiriyor: hiper parametre aşırı sığdırma. Çapraz doğrulama, modelinizi numunenin k-1 katlarında sıfırdan tekrar tekrar eğiterek ve son katında test ederek "en iyi" hiper parametreleri bulmak için kullanılabilir.

Peki tam olarak nasıl yapılır? Arama stratejisine bağlı olarak (tenshi tarafından verilir), modelin hiper parametrelerini ayarlar ve modelinizi her seferinde farklı test katları kullanarak eğitirsiniz. Modelin tüm test katlamaları üzerindeki ortalama performansını "hatırlar" ve tüm prosedürü başka bir hiper parametre seti için tekrarlarsınız. Ardından, çapraz doğrulama sırasında en iyi performansa karşılık gelen hiper parametre kümesini seçersiniz. Gördüğünüz gibi, bu prosedürün hesaplama maliyeti, dikkate alınması gereken hiper-parametre kümelerinin sayısına bağlıdır. Bu yüzden bu seti seçmek için bazı stratejiler geliştirildi (burada tenshi'nin söylediklerini genelleştireceğim):

  1. Izgara araması: her hiper parametre için sonlu sayıda olası değer numaralandırırsınız . Daha sonra, numaralandırılmış hiper parametrelerin tüm kombinasyonları için prosedür kapsamlı bir şekilde yapılır. Açıkçası, sürekli hiper parametrelere sahipseniz, hepsini deneyemezsiniz.
  2. Rasgele ızgara araması: normal ızgara aramasına benzer, ancak bu sefer tüm kombinasyonları kapsamlı bir şekilde denemezsiniz, bunun yerine olası tüm değerler için sabit bir sayıda örnek alabilirsiniz. Burada sadece bir hiper parametre için olası değerleri numaralandırmanın mümkün olmadığını, aynı zamanda örnekleme için bir dağıtım da sağlayabileceğinizi unutmayın.
  3. BayesianSearch - hiper parametre değerlerinin kombinasyonu, skorun beklenen iyileşmesini en üst düzeye çıkarmak için seçilir. Daha fazla bilgi için: http://papers.nips.cc/paper/4522-pratik- bayesian-optimization-of-machine-learning-algorithms.pdf . Ve sadece bununla ilgilenen bir kütüphane: https://github.com/hyperopt/hyperopt . Sklearn ile tenshi'nin önerdiği kadar kolay bir şekilde birleştirilemediğinden, yalnızca sklearn ile çalışmıyorsanız kullanın.
  4. Hiper parametre uzayında yönlendirmeli arama için diğer yollar. Deneyimlerime göre nadiren kullanılırlar, bu yüzden onları burada kapsamaz.

Bununla birlikte, hiper parametreler de verilerin üzerine sığabileceğinden (ve edeceğinden), bu hikayenin sonu değildir. Çoğu durumda onunla yaşayabilirsiniz, ancak modelinizin genelleme gücünü en üst düzeye çıkarmak istiyorsanız, hiper parametreleri de denemek ve düzenlemek isteyebilirsiniz. İlk olarak, iç içe ızgara arama özelliğini kullanarak örnek dışı verilerdeki performansı biraz daha iyi değerlendirebilirsiniz (ayrıntılar: http://scikit-learn.org/stable/auto_examples/model_selection/plot_nested_cross_validation_iris.html , tartışma: İç içe çapraz doğrulama model seçimi için) veya yalnızca hiper parametre ayarlama için kullanılmayan bir doğrulama kümesi kullanın. Hiper-parametre uzayında düzenlenme gelince, bu aşağı yukarı açık bir sorudur. Bazı fikirler, en iyi hiper parametre değerleri kümesini değil, ortaya daha yakın bir şeyi seçmeyi içerir; akıl yürütme şu şekildedir: en iyi hiper-parametre değerleri büyük olasılıkla verileri geçersiz kılar, çünkü tren verisinden diğerlerinden daha iyi performans gösterir, kötü parametreler sadece kötüdür, ancak ortadakiler muhtemelen en iyilerinden daha iyi genelleme elde edebilir. . Andrew Ng bu konuda bir makale yazdı. Başka bir seçenek, arama alanınızı sınırlamaktır (buraya güçlü bir önyargı getirerek düzenliyorsunuz - arama alanı dışındaki değerler asla açıkça seçilmeyecek).

Yan açıklama: Doğruluğu bir performans ölçütü olarak kullanmak çoğu durumda çok kötü bir fikirdir, f1 ve f_beta puanlarına bakın - bu metrikler çoğu durumda ikili sınıflandırma problemlerinde gerçekten optimize etmeye çalıştığınız şeyi daha iyi yansıtacaktır.

Özetlemek gerekirse: tek başına çapraz doğrulama, modelin örnek dışı veriler üzerindeki performansını değerlendirmek için kullanılır, ancak hiper-parametreler alanındaki arama stratejilerinden biriyle birlikte hiper-parametreleri ayarlamak için de kullanılabilir. İyi hiper parametrelerin bulunması, aşırı takmanın önlenmesine veya en azından azaltılmasına izin verir, ancak hiper parametrelerin de verileri geçersiz kılabileceğini unutmayın.


2

Scikit-öğrenme geçmişindeyseniz, bu cevap size yardımcı olabilir.

Verileri kbölümlere ayırmak için k-kat çapraz doğrulaması kullanılır , tahminci daha sonra k-1bölümler üzerinde eğitilir ve sonra kthbölüm üzerinde test edilir . Bunun gibi, hangi bölümün bölüm olması gerektiğini seçmek kth, kolasılıklar vardır. Böylece tahmin edicinizin ktüm kolasılıklarının sonuçlarını elde edersiniz .

bunlar hesaplamalı olarak pahalı yöntemlerdir, ancak farklı tahmin edicileri deneyecekseniz, CV ile birlikte hiperparametre ayarlaması yapmak için bu üçünü deneyebilirsiniz:

ben. GridSearchCV - tüm tahminciler için hiperparametreler için olası tüm P ve C'nin kapsamlı bir listesi. Sonunda, bu tahmin edici CV'nin ortalamasını kullanarak en iyi hiperparametreleri verir.

ii. RandomizedSearchCV - Hiperparametrelerin tüm P ve C'lerini yapmaz, ancak rastgele bir yaklaşımla, hesaplamada daha fazla tasarruf sağlayan mümkün olan en yakın doğru tahminciyi verir.

iii. BayesSearchCV - scikit-learnRasgele bir arama ve sığdırma sonuçları yapmak için Bayes optimizasyonunun bir parçası değildir .

tl: dr : CV sadece geçmekte olduğunuz verilerden dolayı r tahmin ediciniz için yüksek sapma ve yüksek sapmayı önlemek için kullanılır. Umarım yardımcı oldu.

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.