Zastanawiam się, jak wybrać model predykcyjny po przeprowadzeniu krzyżowej weryfikacji K-fold.
Może to być niezręcznie sformułowane, więc pozwól mi wyjaśnić bardziej szczegółowo: za każdym razem, gdy uruchamiam K-krotnie weryfikację krzyżową, używam K podzbiorów danych treningowych i kończę na K różnych modelach.
Chciałbym wiedzieć, jak wybrać jeden z modeli K, aby móc komuś go przedstawić i powiedzieć „to najlepszy model, jaki możemy wyprodukować”.
Czy można wybrać jeden z modeli K? A może chodzi o najlepsze praktyki, takie jak wybór modelu, który osiąga średni błąd testu?
cross-validation
model-selection
Berk U.
źródło
źródło
Odpowiedzi:
Myślę, że brakuje ci czegoś w swoim rozumieniu celu wzajemnej weryfikacji.
Wyjaśnijmy trochę terminologię, ogólnie mówiąc, mówiąc „model”, odnosimy się do konkretnej metody opisywania, w jaki sposób niektóre dane wejściowe odnoszą się do tego, co próbujemy przewidzieć. Zasadniczo nie odnosimy się do poszczególnych przypadków tej metody jako do różnych modeli. Można więc powiedzieć „mam model regresji liniowej”, ale nie nazwałbyś dwóch różnych zestawów wyuczonych współczynników różnymi modelami. Przynajmniej nie w kontekście wyboru modelu.
Tak więc, kiedy przeprowadzasz walidację krzyżową metodą K-krotnie, testujesz, jak dobrze twój model może zostać przeszkolony przez niektóre dane, a następnie przewidzieć dane, których nie widział. W tym celu korzystamy z weryfikacji krzyżowej, ponieważ jeśli trenujesz przy użyciu wszystkich posiadanych danych, nie masz żadnych do testowania. Możesz to zrobić raz, powiedzmy, używając 80% danych do trenowania i 20% do testowania, ale co jeśli 20%, które akurat wybierałeś do testowania, zawiera mnóstwo punktów, które są szczególnie łatwe (lub szczególnie trudne) przewidzieć? Nie opracujemy najlepszego możliwego oszacowania zdolności modeli do uczenia się i przewidywania.
Chcemy wykorzystać wszystkie dane. Aby więc kontynuować powyższy przykład podziału 80/20, przeprowadzilibyśmy 5-krotną weryfikację krzyżową, trenując model 5 razy na 80% danych i testując na 20%. Zapewniamy, że każdy punkt danych trafi do zestawu testowego 20% dokładnie raz. Dlatego wykorzystaliśmy każdy punkt danych, który musimy przyczynić się do zrozumienia, jak dobrze nasz model wykonuje zadanie uczenia się na podstawie niektórych danych i przewidywania nowych danych.
Ale celem krzyżowej weryfikacji nie jest wymyślenie naszego ostatecznego modelu. Nie używamy tych 5 przykładów naszego wyszkolonego modelu do robienia prawdziwych prognoz. W tym celu chcemy wykorzystać wszystkie dane, aby opracować najlepszy możliwy model. Celem weryfikacji krzyżowej jest sprawdzenie modelu, a nie budowanie modelu.
Powiedzmy, że mamy dwa modele, powiedzmy model regresji liniowej i sieć neuronową. Jak możemy powiedzieć, który model jest lepszy? Możemy wykonać K-krotną walidację krzyżową i zobaczyć, która z nich lepiej sprawdza się w przewidywaniu punktów testowych. Ale kiedy użyjemy walidacji krzyżowej, aby wybrać model o lepszej wydajności, trenujemy ten model (czy to regresja liniowa, czy sieć neuronowa) na wszystkich danych. Nie używamy rzeczywistych instancji modelu, które szkoliliśmy podczas weryfikacji krzyżowej, w naszym ostatecznym modelu predykcyjnym.
Należy zauważyć, że istnieje technika zwana agregacją bootstrap (zwykle skracaną do „workowania”), która w pewien sposób wykorzystuje instancje modelu wytworzone w sposób podobny do weryfikacji krzyżowej w celu zbudowania modelu zespołu, ale jest to technika zaawansowana poza zakresem twojego pytania tutaj.
źródło
For that we want to use all the data we have to come up with the best model possible.
- Czy podczas wyszukiwania siatki za pomocą K-krotnej weryfikacji krzyżowej oznacza to, że użyłbyś najlepszych parametrów znalezionych podczas wyszukiwania siatki i dopasowałeś model do wszystkich danych treningowych, a następnie oceniłeś wydajność uogólnienia za pomocą zestawu testowego?Pozwolę sobie dodać kilka punktów oprócz odpowiedzi Bogdanovist
Istnieją pewne założenia w tym procesie.
Skończona liczba przypadków oznacza, że pomiar wydajności będzie podlegał losowemu błędowi (wariancji) ze względu na skończoną liczbę przypadków testowych. To źródło wariancji różni się (a zatem dodaje do) wariancji niestabilności modelu.
Różnice w obserwowanej wydajności wynikają z tych dwóch źródeł wariancji.
„Wybór”, o którym myślisz, to wybór zestawu danych: wybranie jednego z zastępczych modeli oznacza wybranie podzbioru próbek treningowych i twierdzenie, że ten podzbiór próbek treningowych prowadzi do modelu nadrzędnego. Chociaż może tak być w rzeczywistości, zazwyczaj „wyższość” jest fałszywa. W każdym razie, ponieważ wybranie „najlepszego” modelu zastępczego jest optymalizacją opartą na danych, należy zweryfikować (zmierzyć wydajność) tego wybranego modelu przy użyciu nowych nieznanych danych. Zestaw testowy w ramach tej krzyżowej weryfikacji nie jest niezależny, ponieważ został użyty do wyboru modelu zastępczego.
Warto przyjrzeć się naszej pracy, chodzi o klasyfikację, w której sytuacja zwykle jest gorsza niż w przypadku regresji. Pokazuje jednak, jak sumują się te źródła wariancji i stronniczości.
Beleites, C. and Neugebauer, U. i Bocklitz, T. and Krafft, C. and Popp, J .: Planowanie wielkości próby dla modeli klasyfikacyjnych. Anal Chim Acta, 2013, 760, 25-33.
DOI: 10.1016 / j.aca.2012.11.007
zaakceptowano manuskrypt na arXiv: 1211.1323
źródło
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.
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.
Uważam, że ten znakomity artykuł Jak wytrenować model uczenia maszynowego jest bardzo pomocny w usuwaniu wszystkich nieporozumień związanych z wykorzystaniem CV w uczeniu maszynowym.
Zasadniczo używamy CV (np. Podział 80/20, k-fold itp.), Aby oszacować, jak dobrze cała Twoja procedura (w tym inżynieria danych, wybór modelu (tj. Algorytmu) i hiperparametrów itp.) Będzie działać w przyszłości, niewidzialnej dane. Po wybraniu zwycięskiej „procedury” dopasowane modele z CV spełniły swoje zadanie i można je teraz odrzucić. Następnie stosujesz tę samą zwycięską „procedurę” i trenujesz swój ostateczny model z wykorzystaniem całego zestawu danych.
źródło
To bardzo interesujące pytanie. Aby to wyjaśnić, powinniśmy zrozumieć różnicę modelu i oceny modelu. Używamy pełnego zestawu szkoleniowego do budowy modelu i spodziewamy się, że ten model zostanie ostatecznie wykorzystany.
Ocena krzyżowania K-krotnie zbudowałaby modele K, ale wszystkie zostałyby porzucone. Modele K są właśnie używane do oceny. i właśnie wygenerował miary, które pokazują, jak dobrze ten model pasuje do twoich danych.
Na przykład wybierasz Algo LinearRegression i wykonujesz dwie operacje na tym samym zestawie treningowym: jeden z 10-krotną walidacją krzyżową, a drugi z 20-krotnym. model regresji (lub klasyfikatora) powinien być taki sam, ale współczynnik korelacji i błąd względny kwadratu głównego są różne.
Poniżej są dwa przebiegi dla 10-krotnego i 20-krotnego sprawdzania poprawności krzyżowej za pomocą weka
Pierwsze uruchomienie z 10-krotnością
2. bieg z 20-krotnością
źródło
Nie jestem pewien, czy powyższa dyskusja jest całkowicie poprawna. W ramach weryfikacji krzyżowej możemy podzielić dane na szkolenie i testy dla każdego przebiegu. Używając samych danych treningowych, należy dopasować model i wybrać parametry strojenia dla każdej rozważanej klasy modeli. Na przykład w sieciach neuronowych parametrami dostrajającymi są liczba neuronów i wybór funkcji aktywacji. Aby to zrobić, jedna weryfikacja krzyżowa samych danych treningowych .
Po znalezieniu najlepszego modelu w każdej klasie model najlepszego dopasowania jest oceniany przy użyciu danych testowych. „Zewnętrzną” pętlę weryfikacji krzyżowej można wykorzystać do lepszego oszacowania wydajności danych testowych, a także oszacowania zmienności. Dyskusja może następnie porównać wydajność testu dla różnych klas, powiedzmy Sieci neuronowe vs. SVM. Wybrano jedną klasę modelu ze stałym rozmiarem modelu, a teraz całe dane są wykorzystywane do nauki najlepszego modelu.
Teraz, jeśli w ramach algorytmu uczenia maszynowego chcesz stale wybierać najlepszą klasę modelu (powiedzmy co tydzień), to nawet ten wybór musi zostać oceniony w danych szkoleniowych! Pomiar danych testowych nie może być wykorzystany do oceny wyboru klasy modelu, jeśli jest to opcja dynamiczna.
źródło
Dlaczego stosujemy walidację krzyżową k-fold?
Walidacja krzyżowa to metoda oceny umiejętności metody na niewidocznych danych. Jak przy użyciu podziału testu na pociąg.
Weryfikacja krzyżowa systematycznie tworzy i ocenia wiele modeli w wielu podzbiorach zestawu danych. To z kolei zapewnia populację miar wydajności .
Jest to również pomocne w bardziej szczegółowym porównaniu jednej procedury z drugą, gdy próbujesz wybrać algorytm i procedury przygotowania danych do użycia.
Ponadto informacje te są nieocenione, ponieważ można użyć średniej i spreadu, aby podać przedział ufności dla oczekiwanej wydajności procedury uczenia maszynowego w praktyce.
odniesienie
źródło