Wyszukiwanie w siatce na podstawie k-krotnego sprawdzania poprawności

16

Mam zestaw danych 120 próbek w 10-krotnym ustawieniu walidacji krzyżowej. Obecnie wybieram dane treningowe pierwszego wstrzymania i wykonuję na nim 5-krotną weryfikację krzyżową, aby wybrać wartości gamma i C za pomocą wyszukiwania siatki. Używam SVM z jądrem RBF. Ponieważ przeprowadzam dziesięć-krotną weryfikację krzyżową, aby zgłosić precyzję, pamiętajcie, czy wykonuję to wyszukiwanie siatki w danych treningowych każdej blokady (istnieje 10 bloków, z których każda ma 10% danych testowych i 90% danych treningowych)? Czy nie byłoby to zbyt czasochłonne?

Jeśli użyję wartości gamma i C z pierwszego wstrzymania i użyję jej do pozostałych 9 wstrzymań z k-krotną weryfikacją krzyżową, to jest to naruszenie, ponieważ użyłbym danych pociągu, aby uzyskać gamma i C i ponownie użyć część danych pociągu jako test w drugim zawieszeniu?

użytkownik13420
źródło
To pytanie wymaga więcej informacji. Jaki model pasujesz? Co to jest gamma i C w tym modelu? Ponadto, czy możesz podać te informacje, edytując pytanie, a nie komentarze.
prawdopodobieństwo prawdopodobieństwa

Odpowiedzi:

14

Tak, byłoby to naruszeniem, ponieważ dane testowe dla fałd 2-10 zewnętrznej walidacji krzyżowej byłyby częścią danych treningowych dla fałdu 1, które zostały użyte do określenia wartości jądra i parametrów regularyzacji. Oznacza to, że niektóre informacje o danych testowych potencjalnie wyciekły do ​​projektu modelu, co potencjalnie daje optymistyczne nastawienie do oceny wydajności, co jest najbardziej optymistyczne dla modeli, które są bardzo wrażliwe na ustawienie hiperparametrów (tj. najbardziej zdecydowanie faworyzuje modele o niepożądanej funkcji).

Ta tendencja będzie najprawdopodobniej najsilniejsza w przypadku małych zestawów danych, takich jak ten, ponieważ wariancja kryterium wyboru modelu jest największa w przypadku małych zestawów danych, co zachęca do nadmiernego dopasowania kryterium wyboru modelu, co oznacza, że ​​więcej informacji o danych testowych może przeciekać przez.

Napisałem na ten temat artykuł rok lub dwa lata temu, ponieważ byłem raczej zaskoczony wielkością odchyleń odchylenia od pełnej zagnieżdżonej weryfikacji krzyżowej, która może łatwo zatrzeć różnicę w wydajności między systemami klasyfikującymi. Artykuł jest „O nadmiernym dopasowaniu przy wyborze modelu i późniejszym odchyleniu przy dokonywaniu oceny wyników” Gavin C. Cawley, Nicola LC Talbot; JMLR 11 (lipiec): 2079-2107, 2010.

Zasadniczo dostrajanie hiper-parametrów należy uznać za integralną część dopasowania modelu, więc za każdym razem, gdy trenujesz SVM na nowej próbce danych, niezależnie strojenie hiper-parametrów dla tej próbki. Jeśli zastosujesz się do tej zasady, prawdopodobnie nie będziesz w stanie popełnić błędu. Warto uzyskać koszt obliczeniowy, aby uzyskać obiektywną ocenę wydajności, ponieważ w przeciwnym razie istnieje ryzyko wyciągnięcia niewłaściwych wniosków z eksperymentu.

Dikran Torbacz
źródło
1
Moje osobiste doświadczenia sprawiły, że bardzo ostrożnie podchodzę do takich źródeł nadmiernego dopasowania.
cbeleites obsługuje Monikę
6

Po przeprowadzeniu wyszukiwania siatki dla każdego modelu zastępczego możesz i powinieneś sprawdzić kilka rzeczy:

  • zmiana zoptymalizowanych parametrów (tutaj i C ). Czy optymalne parametry są stabilne? Jeśli nie, najprawdopodobniej masz kłopoty.γC
  • Porównaj zgłoszone wyniki walidacji krzyżowej wewnętrznej i zewnętrznej.
    Jeśli wewnętrzna (tj. Strojeniowa) krzyżowa walidacja wygląda znacznie lepiej niż zewnętrzna (walidacja ostatecznego modelu), to również masz kłopoty: jesteś przeregulowany. Istnieje znaczne ryzyko, że dostrojone parametry wcale nie są optymalne. Jeśli jednak zewnętrzna weryfikacja krzyżowa zostanie wykonana prawidłowo (wszystkie zestawy testów są naprawdę niezależne od odpowiednich modeli zastępczych), to przynajmniej nadal masz obiektywną (!) Ocenę wydajności modelu. Ale nie możesz być pewien, że jest to optymalne.
  • Jak wyraźny jest optymalny? Czy wydajność szybko spada w przypadku nieoptymalnych parametrów? Jak dobra jest optymalna wydajność?

Istnieje wiele do powiedzenia na temat nadmiernego dopasowania przez wybór modelu. Należy jednak pamiętać, że zarówno wariancja, jak i optymistyczne nastawienie mogą naprawdę zaszkodzić

  • wariancja oznacza, że ​​możesz przypadkowo skończyć dość daleko od naprawdę optymalnych hiper-parametrów.
  • ale również uprzedzenie może zaszkodzić: jeśli jesteś zbytnio dopasowany, możesz spotkać się z sytuacjami, w których wiele modeli wygląda idealnie do wewnętrznej weryfikacji krzyżowej (ale tak naprawdę nie są). W takim przypadku strojenie może zbłądzić, ponieważ nie rozpoznaje różnic między modelami.
  • Jeśli odchylenie zależy od hiper-parametrów, masz duże problemy.

Jeśli jesteś zainteresowany przykładem i umiesz czytać po niemiecku, mógłbym umieścić moją pracę dyplomową online.

Z mojego doświadczenia wynika, że ​​dostrajanie hiperparametrów jest niezwykle skutecznym pomysłem na nadmierne dopasowanie ...

Teraz, jeśli zdasz sobie sprawę z tego, że jesteś nadmiernie sprawny, masz głównie dwie opcje:

  • zgłoś, że optymalizacja miała problem z przeregulowaniem, ale wykonałeś właściwą zewnętrzną walidację, która zaowocowała ... (wyniki zewnętrznej weryfikacji krzyżowej).
  • ograniczyć złożoność modelu. Jednym ze sposobów jest poprawienie hiperparametrów:

Alternatywą do dostrojenia hiperparametrów do każdego zestawu treningowego jest możliwość wcześniejszego określenia (hiper) parametrów (tj. Ich wcześniejsza poprawa). Robię to tak często, jak to możliwe dla moich modeli, ponieważ zwykle mam nawet mniej przypadków niż ty, patrz poniżej.
Jednak to ustalenie musi być naprawdę i uczciwie wykonane wcześniej: np. Poprosiłem kolegę o jego zoptymalizowane parametry na podobnym zbiorze danych (niezależny eksperyment) lub wykonałem eksperyment wstępny, w tym przeszukanie parametrów na siatce. Ten pierwszy eksperyment jest następnie używany do ustalenia niektórych parametrów eksperymentalnych, a także parametrów modelu dla rzeczywistego eksperymentu i analizy danych. Zobacz dalsze wyjaśnienia poniżej.

Oczywiście możliwe jest przeprowadzenie odpowiednich testów na automatycznie zoptymalizowanych modelach (sprawdzanie poprawności podwójnej lub zagnieżdżonej), ale wielkość próbki może nie pozwolić na dwukrotne podzielenie danych .
W takiej sytuacji IMHO znacznie lepiej jest zgłosić uczciwą ocenę modelu, który został zbudowany przy użyciu doświadczenia zawodowego w zakresie wyboru parametrów modelowania, niż zgłosić nadmiernie optymistyczne oszacowanie na jakimś rodzaju automatycznie zoptymalizowanego modelu.
Innym punktem widzenia na tę sytuację jest to, że musisz się wymienić

  • gorsza wydajność ze względu na odłożenie kolejnej grupy przypadków na optymalizację parametrów (mniejszy rozmiar próbki treningowej => gorszy model, ale parametry „optymalne”)
  • gorsza wydajność ze względu na nieoptymalne ustalanie parametrów przez eksperta (ale przy większych danych treningowych).

Kilka podobnych myśli na podobne pytanie: /stats//a/27761/4598


Na temat ustalania parametrów i komentarzy Dikran Marsupial

Używam terminu hiper-parametry, ponieważ Dikran Marsupial używa go w swojej pracy (link w odpowiedzi)

Pracuję z danymi spektroskopowymi. Jest to rodzaj pomiaru, w którym analiza i modelowanie danych często obejmuje sporo wstępnego przetwarzania. Można to postrzegać jako hiper-parametry (np. Jaka kolejność wielomianu powinna być zastosowana dla linii bazowej? Jakie kanały pomiarowe należy uwzględnić?). Istnieją inne decyzje, które są bliższe twoim parametrom svm, np. Ile głównych komponentów należy użyć, jeśli PCA zostanie wykonane w celu zmniejszenia wymiarów przed wytrenowaniem „prawdziwego” modelu? Czasami też używam klasyfikacji SVM, więc muszę zdecydować o parametrach SVM.

Teraz IMHO najlepszym sposobem na naprawienie hiperparametrów jest posiadanie powodów, które pochodzą z aplikacji. Np. Zazwyczaj decyduję o tym, jakiego rodzaju linii bazowej użyć z przyczyn fizycznych / chemicznych / biologicznych (tj. Wiedzy o próbce i wynikającego z tego zachowania spektroskopowego). Nie znam jednak takiej argumentacji, która pomaga w parametrach SVM ...

Przypadek wcześniejszych eksperymentów, o których wspomniałem powyżej, wygląda następująco:

  • pobieramy dane z kilku komórek (chcemy rozróżnić różne linie komórkowe).
  • Widma są analizowane, uruchamiana jest iterowana podwójna walidacja krzyżowa SVM (spędził noc lub dwie na serwerze obliczeniowym).

    • γC
    • Zauważyłem też pewne przeregulowanie: walidacja zewnętrznego krzyża nie jest tak dobra, jak wyniki strojenia. Tak jest zgodnie z oczekiwaniami.
    • Mimo to istnieją różnice w wydajności w zakresie strojenia hiper-parametrów, a wydajność w siatce strojenia wygląda na dość gładką. Dobry.
  • Mój wniosek jest następujący: chociaż nie jestem pewien, czy końcowe hiperparametry są optymalne, zewnętrzna weryfikacja krzyżowa daje mi właściwe oszacowanie wydajności modeli zastępczych.

  • Podczas części eksperymentalnej zdecydowaliśmy o pewnych zmianach w konfiguracji eksperymentalnej (rzeczy, które nie wpływają na sygnał do szumu danych, ale idą o krok dalej w automatyzacji urządzenia)

  • Ulepszamy ustawienia eksperymentalne i zdobywamy nowe widma. Ponieważ komórki są, muszą być hodowane na świeżo. Tj. Nowy zestaw danych to nawet niezależne partie kultur.

Teraz podejmuję decyzję: czy powinienem „pominąć” wewnętrzną weryfikację krzyżową i po prostu zastosować hiperparametry, które określiłem na podstawie starych danych?

  • Jak wspomniano powyżej, ryzykuję, że te z góry określone hiper-parametry nie będą optymalne.
  • Ale nie mogę też mieć pewności, czy uda mi się uzyskać naprawdę optymalne hiper-parametry, wykonując wewnętrzną (dostrajającą) weryfikację krzyżową.
  • Strojenie starych danych było jednak stabilne.
  • Robiąc optymalizację, będę ćwiczyć na mniejszej liczbie próbek: Ponieważ i tak mam zbyt mało próbek (TM), muszę spodziewać się gorszych modeli, jeśli odłożę więcej próbek na drugą rundę walidacji krzyżowej.

W takim przypadku zdecydowałem się na stałe parametry (na podstawie doświadczenia na podobnych danych i wiedząc, że w przyszłości będziemy musieli odrobić „pracę domową”, w tym między innymi ponownie sprawdzić te decyzje przy użyciu dużych danych).

Zauważ, że ważne jest to, że pomijam wewnętrzną ( strojeniowa krzyżowa walidacja), a nie zewnętrzną. Przy ustalonych hiperparametrach uzyskuję obiektywne oszacowanie wydajności modelu prawdopodobnie nieoptymalnego. To prawda, że ​​ta ocena podlega dużej wariancji, ale ta wariancja jest w zasadzie taka sama, niezależnie od tego, czy wykonuję wewnętrzne strojenie, czy nie.
Pomijając zewnętrzną vaidation uzyskałbym optymistycznie tendencyjne oszacowanie dostrojonego modelu - który w zależności od aplikacji i danych może być bezwartościowy (jeśli bardzo nadmiernie optymistyczny), a optymistyczne nastawienie może być po prostu niedopuszczalne.

cbeleites obsługuje Monikę
źródło
przepraszam, że muszę zanegować tę odpowiedź, ale stosowanie wcześniej określonych wartości dla hiper-parametrów nie jest dobrą praktyką, ponieważ optymalne uogólnienie zależy od odpowiednich ustawień dla tych parametrów, które będą się różnić w zależności od zestawu danych (a w przypadku problemów niewiele danych z próbki próbkować). Wyszukiwanie siatki przed eksperymentem jest jeszcze gorsze, ponieważ skutkuje dokładnie tą samą formą uprzedzeń, o której mówiłem w moim artykule. W przypadku maszyn SVM problem podwójnego podziału danych nie ma zastosowania, ponieważ można użyć wirtualnej weryfikacji krzyżowej z pominięciem jednego jako kryterium wyboru modelu w wewnętrznym CV, prawie za darmo.
Dikran Marsupial
Sprawdzanie zmienności zoptymalizowanych parametrów jest jednak doskonałą sugestią. Jeśli masz wystarczającą ilość danych, aby parametry i hiperparametry można było wiarygodnie oszacować na podstawie danych, to rodzaje uprzedzeń, o których wspominam w mojej pracy, prawdopodobnie nie będą zbyt dużym problemem. Jeśli jednak istnieje duża zmienność w zoptymalizowanych wartościach hiperparametrów, ze względu na mały zestaw danych, jest to rodzaj sytuacji, w której zagnieżdżona weryfikacja krzyżowa i inne takie rygorystyczne podejścia są naprawdę konieczne, aby uniknąć poważnych błędów w szacowaniu wydajności.
Dikran Torbacz
@DikranMarsupial: Wyjaśniłem nieco swoje pochodzenie, spójrz. Dokładniej czytam twój artykuł. Myślę, że nasze punkty nie są tak daleko od siebie. Jeśli chcesz, spotkajmy się na czacie - mam kilka pytań na temat twojej gazety ...
cbeleites wspiera Monikę
@DikranMarsupial: (niestety, w przypadku większości moich danych, nie mogę użyć analitycznego pominięcia, ponieważ zagnieżdżałem / hierarachiczne struktury danych). Poza tym spotkałem się z brzydkimi niespodziankami z pominięciem jednego, więc wykonałem iterację sprawdzania poprawności k-fold lub out-of-bootstrap. To jednak nie na temat tego pytania.
cbeleites obsługuje Monikę
@DikranMarsupial: Jeśli zoptymalizowane parametry nie są stabilne, i tak mam kłopoty. Oczywiście nie mogę stwierdzić, że mogę użyć tych parametrów do nowych danych. Ale też nie nazwałbym ich (które z wielu zestawów parametrów?) Optymalnymi dla ostatecznego modelu ... Widziałem, że optymalizacja szaleje całkowicie, ale zawsze towarzyszyło to bardzo nadmiernie optymistyczne wyniki walidacji wewnętrznej (tuningowej) . I to mogę zmierzyć, porównując zewnętrzną walidację krzyżową z wewnętrzną oceną walidacji krzyżowej optymalnego modelu. Zaktualizowałem odpowiednio odpowiedź.
cbeleites obsługuje Monikę
5

γCkterr(γ,C)γCγ,C{2nl,2nl+1,,2nu}γ

Myślę, że kluczem jest poszukiwanie gładkości powierzchni wokół lokalnych minimów (lub każdej projekcji 1-dim), a nie tylko przyjęcie globalnego minimum.

γ(pσ)1pγCC

muratoa
źródło
Powiedzmy, że mam zestaw danych zawierający 120 próbek. Czy powinienem znaleźć gamma i C początkowo używając 120 próbek. Czy zatem 10-krotna krzyżowa walidacja przy użyciu tej samej wartości gamma i C dla zatrzymań k przy użyciu 90% danych do treningu i 10% danych do testowania? Czy to nie znaczy, że użyłem tego samego zestawu treningowego, aby uzyskać gamma i C, a część próbek jest również na zestawie testowym?
user13420,
γC
(γ,C)(γ,C)(γ,C)
2
λβ
2
λβλββ(λ)