Co to jest walidacja krzyżowa? Porównanie modeli uczenia maszynowego

Opublikowany: 2021-07-21

Walidacja krzyżowa to nieocenione narzędzie dla analityków danych.

Przydaje się do budowania dokładniejszego   nauczanie maszynowe   modele i ocena, jak dobrze działają na niezależnym zbiorze danych testowych.

Walidacja krzyżowa jest łatwa do zrozumienia i wdrożenia, co czyni ją podstawową metodą porównywania zdolności predykcyjnych (lub umiejętności) różnych modeli i wybierania najlepszego. Jest to korzystne, gdy ilość dostępnych danych jest ograniczona i jest świetnym sposobem na sprawdzenie, jak w praktyce działa model predykcyjny.

Walidacja krzyżowa służy do ochrony modelu przed nadmiernym dopasowaniem , zwłaszcza jeśli ilość dostępnych danych jest ograniczona. Jest również znany jako szacowanie rotacji lub testowanie poza próbą i jest używany głównie w ustawieniach, w których celem modelu jest przewidywanie.

Czy wiedziałeś? Model jest uważany za „przesadnie dopasowany”, jeśli modeluje dane treningowe tak dobrze, że negatywnie wpływa na jego wydajność na nowych danych.

Ta procedura ponownego próbkowania służy również do porównywania różnych modeli uczenia maszynowego i określania, jak dobrze działają w celu rozwiązania konkretnego problemu. Innymi słowy, walidacja krzyżowa jest metodą stosowaną do oceny umiejętności modeli uczenia maszynowego.

Mówiąc najprościej, w procesie walidacji krzyżowej oryginalna próbka danych jest losowo dzielona na kilka podzbiorów. Model uczenia maszynowego trenuje we wszystkich podzbiorach, z wyjątkiem jednego. Po przeszkoleniu model jest testowany, przeprowadzając prognozy dotyczące pozostałego podzbioru.

W wielu przypadkach przeprowadza się wiele rund walidacji krzyżowej przy użyciu różnych podzbiorów, a ich wyniki są uśredniane w celu określenia, który model jest dobrym predyktorem.

Dlaczego walidacja krzyżowa jest ważna?

Walidacja krzyżowa ma kluczowe znaczenie, gdy ilość dostępnych danych jest ograniczona.

Załóżmy, że musisz przewidzieć prawdopodobieństwo przebicia opony rowerowej. W tym celu zebrałeś dane na temat istniejących opon: wiek opony, liczba przejechanych kilometrów, waga rowerzysty i to, czy była wcześniej przebita.

Aby utworzyć model predykcyjny, użyjesz tych (historycznych) danych. Z tymi danymi trzeba zrobić dwie rzeczy – wytrenować algorytm i przetestować model.

Czy wiedziałeś? W uczeniu maszynowym algorytm i model to nie to samo. Model jest tym, czego uczy się algorytm uczenia maszynowego.

Ponieważ masz tylko ograniczoną ilość dostępnych danych, byłoby naiwnością używać wszystkich danych do uczenia algorytmu. Jeśli to zrobisz, nie będziesz miał żadnych danych do przetestowania lub oceny modelu.

Ponowne użycie zestawu szkoleniowego jako zestawu testowego nie jest świetnym pomysłem, ponieważ musimy ocenić dokładność modelu na danych, na których nie został on przeszkolony. To dlatego, że głównym celem szkolenia jest przygotowanie modelu do pracy na rzeczywistych danych. I jest mało prawdopodobne, aby Twój zestaw danych treningowych zawierał wszystkie możliwe punkty danych, które model kiedykolwiek napotka.

Lepszym pomysłem byłoby użycie pierwszych 75 procent (trzy bloki) danych jako zestawu danych uczących i ostatnich 25 procent (jeden blok) jako zestawu danych testowych . Umożliwi to porównanie, jak dobrze różne algorytmy kategoryzowały dane testowe.

Ale oczywiście, skąd możesz wiedzieć, że użycie pierwszych 75 procent danych jako zestawu uczącego, a pozostałych 25 procent jako zestawu testowego, jest najlepszym sposobem?

Zamiast tego możesz użyć pierwszych 25 procent danych do testowania; lub możesz użyć trzeciego bloku danych jako zestawu danych testowych, a pozostałego jako zestawu danych treningowych.

Wskazówka: użyj oprogramowania do uczenia maszynowego, aby zautomatyzować zadania i dokonać dokładnych prognoz.

W rezultacie typ sprawdzania krzyżowego zwany sprawdzaniem krzyżowym k-krotnym wykorzystuje wszystkie (cztery) części zestawu danych jako dane testowe, po jednej na raz, a następnie podsumowuje wyniki.

Na przykład walidacja krzyżowa użyje pierwszych trzech bloków danych do uczenia algorytmu i użyje ostatniego bloku do przetestowania modelu. Następnie rejestruje, jak dobrze model działał z danymi testowymi.

Po zarejestrowaniu wydajności lub dokładności użyje pierwszego, drugiego i czwartego bloku danych do trenowania, a trzeciego do testowania. Proces trwa, dopóki wszystkie bloki nie zostaną użyte raz jako dane testowe. Średnia wszystkich wyników jest obliczana w celu oceny wydajności modelu.

W powyższym przykładzie dane zostały podzielone na cztery bloki. Stąd ta walidacja krzyżowa nazywana jest czterokrotną walidacją krzyżową . Gdyby podzielić ją na dziesięć bloków, byłaby to dziesięciokrotna walidacja krzyżowa .

Krótko mówiąc, walidacja krzyżowa jest przydatna przy wyborze modelu i ułatwia sprawdzenie, jak dobrze model uogólnia się na nowe dane.

Innymi słowy, pomocne jest określenie błędu przewidywania modelu. Służy również do porównywania wydajności lub dokładności różnych metod uczenia maszynowego, takich jak maszyna wektora nośnego (SVM), najbliższy sąsiad K (KNN), regresja liniowa lub regresja logistyczna.

Oto kilka powodów, dla których naukowcy zajmujący się danymi uwielbiają sprawdzanie krzyżowe:

  • Pozwala im wykorzystać wszystkie dane bez poświęcania żadnego podzbioru (nie dotyczy metody wstrzymania)
  • Ujawnia spójność danych i algorytmu
  • Pomaga uniknąć nadmiernego i niedopasowanego dopasowania

Krzyżowa walidacja jest również używana do dostrajania   hiperparametry   modelu uczenia maszynowego za pomocą techniki zwanej walidacją krzyżową w losowym przeszukiwaniu siatki .

Rodzaje walidacji krzyżowej

Metody walidacji krzyżowej można ogólnie podzielić na dwie kategorie: metody wyczerpujące i niewyczerpujące .

Jak sama nazwa wskazuje, wyczerpujące metody walidacji krzyżowej mają na celu przetestowanie wszystkich możliwych sposobów podziału oryginalnej próbki danych na zestaw treningowy i testowy. Z drugiej strony, niewyczerpujące metody nie obliczają wszystkich sposobów podziału oryginalnych danych na zestawy uczące i oceniające.

Poniżej znajduje się pięć popularnych typów weryfikacji krzyżowej.

1. Metoda wstrzymania

Metoda holdout jest jednym z podstawowych podejść do walidacji krzyżowej, w której oryginalny zbiór danych jest podzielony na dwie części – dane treningowe i dane testowe. Jest to metoda niewyczerpująca i zgodnie z oczekiwaniami model jest trenowany w zestawie danych uczących i oceniany w zestawie danych testowych.

W większości przypadków rozmiar uczącego zestawu danych jest dwukrotnie większy niż testowego zestawu danych, co oznacza, że ​​oryginalny zestaw danych jest podzielony w stosunku 80:20 lub 70:30. Ponadto dane są losowo tasowane przed podzieleniem ich na zbiory uczące i walidacyjne.

Istnieją jednak pewne wady tej metody walidacji krzyżowej. Ponieważ model jest trenowany na innej kombinacji punktów danych, może wykazywać różne wyniki za każdym razem, gdy jest trenowany. Ponadto nigdy nie możemy być całkowicie pewni, że wybrany treningowy zestaw danych reprezentuje cały zestaw danych.

Jeśli oryginalna próbka danych nie jest zbyt duża, istnieje również szansa, że ​​dane testowe mogą zawierać pewne kluczowe informacje, których model nie rozpozna, ponieważ nie są one uwzględnione w danych uczących.

Jednak technika walidacji krzyżowej wstrzymania jest idealna, jeśli spieszysz się z trenowaniem i testowaniem modelu i masz duży zestaw danych.

2. K-krotna walidacja krzyżowa

Metoda k-krotnej walidacji krzyżowej jest ulepszoną wersją metody wstrzymania. Zapewnia większą spójność wyniku modelu, ponieważ nie zależy od tego, w jaki sposób wybieramy zestaw danych uczących i testujących.

Jest to niewyczerpująca metoda walidacji krzyżowej i jak sama nazwa wskazuje, zbiór danych jest podzielony na k liczby podziałów, a metoda wstrzymania jest wykonywana k razy.

Na przykład, jeśli wartość k jest równa dwa, będą dwa podzbiory o równych rozmiarach. W pierwszej iteracji model jest szkolony na jednej podpróbce i weryfikowany na drugiej. W drugiej iteracji model jest szkolony na podzbiorze, który został użyty do walidacji w poprzedniej iteracji i przetestowany na drugim podzbiorze. Takie podejście nazywa się dwukrotną walidacją krzyżową .

Podobnie, jeśli wartość k jest równa pięć, podejście nazywa się metodą pięciokrotnej weryfikacji krzyżowej i obejmuje pięć podzbiorów i pięć iteracji. Również wartość k jest dowolna. Ogólnie rzecz biorąc, wartość k jest ustawiona na 10. Jeśli nie masz pewności co do wyboru wartości, to samo jest zalecane.

Procedura sprawdzania poprawności krzyżowej k-krotnej rozpoczyna się od losowego podziału oryginalnego zestawu danych na k-krotną liczbę fałd lub podzbiorów. W każdej iteracji model jest szkolony na podzbiorach k-1 całego zestawu danych. Następnie model jest testowany na k-tym podzbiorze, aby sprawdzić jego wydajność.

Proces ten jest powtarzany, aż wszystkie k-fałdy posłużą jako zbiór ewaluacyjny. Wyniki każdej iteracji są uśredniane i nazywa się to dokładnością weryfikacji krzyżowej . Dokładność walidacji krzyżowej jest wykorzystywana jako metryka wydajności do porównywania wydajności różnych modeli.

Technika k-krotnej walidacji krzyżowej na ogół daje mniej tendencyjne modele, ponieważ każdy punkt danych z oryginalnego zestawu danych pojawi się zarówno w zestawie uczącym, jak i testowym. Ta metoda jest optymalna, jeśli masz ograniczoną ilość danych.

Jednak zgodnie z oczekiwaniami ten proces może być czasochłonny, ponieważ algorytm musi ponownie uruchomić k razy od zera. Oznacza to również, że wymaga k-1 razy więcej obliczeń niż metoda wstrzymania.

3. Stratyfikowana k-krotna walidacja krzyżowa

Ponieważ losowo tasujemy dane i dzielimy je na fałdy w walidacji krzyżowej k-krotnie, istnieje szansa, że ​​otrzymamy niezrównoważone podzbiory. Może to spowodować, że szkolenie będzie stronnicze, co skutkuje niedokładnym modelem.

Rozważmy na przykład przypadek problemu z klasyfikacją binarną, w którym każdy z dwóch typów etykiet klas zawiera 50 procent oryginalnych danych. Oznacza to, że obie klasy występują w oryginalnej próbie w równych proporcjach. Dla uproszczenia nazwijmy dwie klasy A i B.

Tasując dane i dzieląc je na fałdy, istnieje duża szansa, że ​​otrzymamy fałdę, w której większość punktów danych pochodzi z klasy A, a tylko kilka z klasy B. Taki podzbiór jest postrzegany jako niezrównoważony podzbiór i może prowadzić do stworzenia niedokładnego klasyfikatora.

Aby uniknąć takich sytuacji, fałdy są rozwarstwiane za pomocą procesu zwanego stratyfikacji . W stratyfikacji dane są przegrupowywane, aby zapewnić, że każdy podzbiór jest dobrą reprezentacją całego zbioru danych.

W powyższym przykładzie klasyfikacji binarnej oznaczałoby to, że lepiej jest podzielić oryginalną próbkę tak, aby połowa punktów danych w folde pochodziła z klasy A, a reszta z klasy B.

4. Weryfikacja krzyżowa typu Leave-p-out

Krzyżowa walidacja typu Leave-p-out (LpOCV) to wyczerpująca metoda, w której liczba p punktów danych jest pobierana z całkowitej liczby próbek danych reprezentowanych przez n.

Model jest szkolony na np. punktach danych, a następnie testowany na p punktów danych. Ten sam proces powtarza się dla wszystkich możliwych kombinacji p z oryginalnej próbki. Na koniec wyniki każdej iteracji są uśredniane w celu uzyskania dokładności walidacji krzyżowej.

5. Weryfikacja krzyżowa typu „pomiń-jeden-out”

Podejście z walidacją krzyżową z jednym wyjściem (LOOCV) jest uproszczoną wersją LpOCV. W tej technice walidacji krzyżowej wartość p jest ustawiona na jeden. Dlatego ta metoda jest znacznie mniej wyczerpująca. Jednak wykonanie tej metody jest kosztowne i czasochłonne, ponieważ model musi być dopasowany n razy.

Istnieją inne techniki walidacji krzyżowej, w tym powtarzana losowa walidacja podpróbek, zagnieżdżona walidacja krzyżowa i walidacja krzyżowa szeregów czasowych.

Zastosowania walidacji krzyżowej

Podstawowym zastosowaniem walidacji krzyżowej jest ocena wydajności modeli uczenia maszynowego. Pomaga to porównać metody uczenia maszynowego i określić, które są idealne do rozwiązania konkretnego problemu.

Załóżmy na przykład, że rozważasz k-najbliższych sąsiadów (KNN) lub analizę głównych składowych (PCA) w celu przeprowadzenia optycznego rozpoznawania znaków. W takim przypadku możesz użyć weryfikacji krzyżowej, aby porównać te dwa na podstawie liczby znaków błędnie zaklasyfikowanych przez każdą metodę.

Walidacja krzyżowa może być również użyta w wyborze cech, aby wybrać cechy, które mają największy udział w wynikach prognozy.

Ograniczenia walidacji krzyżowej

Podstawowym wyzwaniem walidacji krzyżowej jest potrzeba nadmiernych zasobów obliczeniowych, zwłaszcza w metodach takich jak k-krotne CV. Ponieważ algorytm musi być uruchamiany ponownie od zera k razy, do oceny wymaga k razy więcej obliczeń.

Kolejnym ograniczeniem jest to, które otacza niewidoczne dane. W walidacji krzyżowej zestaw danych testowych to niewidoczny zestaw danych używany do oceny wydajności modelu. Teoretycznie jest to świetny sposób na sprawdzenie, jak działa model w rzeczywistych zastosowaniach.

Jednak w praktyce nigdy nie może istnieć obszerny zestaw niewidocznych danych i nigdy nie można przewidzieć, jakie dane model może napotkać w przyszłości.

Załóżmy, że zbudowano model w celu przewidywania indywidualnego ryzyka zarażenia się określoną chorobą zakaźną. Jeśli model jest wytrenowany na danych z badania naukowego obejmującego tylko określoną grupę populacji (na przykład kobiety w połowie lat 20.), po zastosowaniu go do populacji ogólnej wydajność predykcyjna może się znacznie różnić w porównaniu z dokładnością walidacji krzyżowej .

Co więcej, walidacja krzyżowa przyniesie znaczące wyniki tylko wtedy, gdy w oryginalnym zestawie próbek kontroluje się ludzkie uprzedzenia.

Krzyżowa walidacja na ratunek

Budowanie modeli z walidacją krzyżową to doskonała metoda tworzenia aplikacji uczenia maszynowego z większą dokładnością lub wydajnością. Techniki walidacji krzyżowej, takie jak k-krotna walidacja krzyżowa, umożliwiają oszacowanie wydajności modelu bez poświęcania podziału testowego.

Eliminują również problemy, które powoduje brak równowagi między danymi; w skrócie, mogą umożliwić analitykom danych poleganie w mniejszym stopniu na szczęściu, a bardziej na iteracjach.

Istnieje podzbiór uczenia maszynowego, który próbuje naśladować funkcjonowanie ludzkiego mózgu. Nazywa się to głębokim uczeniem, a sztuczna inteligencja ogólna, jeśli to możliwe, wymagałaby jej zdolności do podejmowania decyzji.