Walidacja krzyżowa – czy model będzie działał na nowych danych?

Możemy zbudować model regresji, który znakomicie opisuje badaną próbę. Uzyskać wysokie R², AUC = 0,95 albo bardzo mały błąd predykcji.

Nie oznacza to jeszcze, że model będzie równie dobry u kolejnych pacjentów.

Model może być nadmiernie dopasowany do danych, na których został zbudowany.

Zjawisko to określa się jako overfitting.

Jednym z podstawowych sposobów oceny zdolności modelu do generalizacji jest walidacja krzyżowa – cross-validation.

Dane treningowe i testowe

Najprostsza strategia polega na podzieleniu danych na:

training set – zbiór treningowy,

test set – zbiór testowy.

Model budujemy wyłącznie na danych treningowych.

Następnie sprawdzamy jego działanie na obserwacjach, których wcześniej nie „widział”.

Dlaczego nie oceniać modelu na tych samych danych?

Jeżeli na tych samych danych:

  1. wybieramy predyktory,
  2. dopasowujemy współczynniki,
  3. wybieramy punkt odcięcia,
  4. mierzymy AUC,

otrzymana jakość modelu może być nadmiernie optymistyczna.

Model częściowo wykorzystuje przypadkowe właściwości konkretnej próby.

Overfitting

Nadmierne dopasowanie występuje wtedy, gdy model uczy się nie tylko rzeczywistego sygnału, ale również losowego szumu.

Ryzyko rośnie m.in. gdy:

  • próba jest mała,
  • predyktorów jest dużo,
  • model jest bardzo złożony,
  • wykonujemy rozbudowaną selekcję zmiennych,
  • wielokrotnie optymalizujemy model na tych samych danych.

Problem pojedynczego podziału

Załóżmy, że mamy 200 osób i dzielimy dane:

70% trening,

30% test.

Wynik może silnie zależeć od tego, które osoby przypadkowo znalazły się w każdej części.

Dlatego użyteczna jest walidacja krzyżowa.

K-fold cross-validation

W k-fold cross-validation dzielimy próbę na k części.

Przy:

k = 5

otrzymujemy pięć podzbiorów.

Procedura:

  1. cztery części służą do treningu,
  2. piąta do walidacji,
  3. proces powtarzamy pięć razy,
  4. każda część raz pełni rolę walidacyjną.

Na końcu łączymy wyniki.

10-fold cross-validation

Popularnym rozwiązaniem jest również:

10-fold CV.

Dane dzielimy na 10 części, a model jest wielokrotnie dopasowywany na 9/10 próby i oceniany na pozostałej 1/10.

Nie istnieje jednak zasada, że k = 10 jest zawsze najlepsze.

Leave-One-Out Cross-Validation

Skrajnym przypadkiem jest:

LOOCV – Leave-One-Out Cross-Validation.

Jeżeli mamy n obserwacji, model budujemy n razy, za każdym razem pozostawiając jedną obserwację jako walidacyjną.

Metoda maksymalnie wykorzystuje dane do treningu, ale może być kosztowna obliczeniowo i mieć niekorzystne właściwości wariancji w porównaniu z innymi schematami CV.

Co mierzyć podczas walidacji?

Zależy od rodzaju modelu.

Dla wyniku ciągłego można analizować:

  • MAE,
  • MSE,
  • RMSE,
  • R² poza próbą.

Dla klasyfikacji:

  • AUC,
  • czułość,
  • swoistość,
  • log loss,
  • Brier score,
  • kalibrację.

AUC to nie wszystko

Model może mieć dobre AUC, ale źle szacować prawdopodobieństwo.

Przykład:

pacjent ma rzeczywiste ryzyko około 20%, a model systematycznie podaje 60%.

Model może nadal poprawnie porządkować pacjentów od niższego do wyższego ryzyka, a więc zachowywać przyzwoitą dyskryminację.

Dlatego w modelach prognostycznych warto analizować również kalibrację.

Walidacja wewnętrzna i zewnętrzna

Walidacja wewnętrzna wykorzystuje dane z tej samej próby lub źródła, np.:

  • cross-validation,
  • bootstrap.

Walidacja zewnętrzna sprawdza model na niezależnej populacji, najlepiej z innego miejsca, okresu lub ośrodka.

Walidacja zewnętrzna jest bardzo ważnym testem rzeczywistej możliwości generalizacji modelu.

Przykład medyczny

Model ryzyka opracowano na 1500 pacjentach jednego szpitala.

Uzyskano:

AUC = 0,88.

Po zastosowaniu 10-fold CV:

średnie AUC = 0,82.

Spadek jakości sugeruje, że początkowa ocena na danych treningowych była częściowo optymistyczna.

Jeżeli w innym szpitalu uzyskamy:

AUC = 0,79

otrzymujemy dodatkową informację o przenoszalności modelu.

Walidacja a dobór punktu odcięcia ROC

Punkt odcięcia nie powinien być optymalizowany i oceniany na dokładnie tych samych danych bez świadomości wynikającego z tego optymizmu.

Jeżeli wybieramy próg maksymalizujący np. indeks Youdena, jego działanie warto sprawdzić na nowych danych lub w odpowiednim schemacie walidacji.

Data leakage

Jednym z najpoważniejszych błędów jest przeciek informacji.

Załóżmy, że przed cross-validation:

  • standaryzujemy dane na całej próbie,
  • wybieramy najlepsze zmienne na całej próbie,
  • wykonujemy imputację wykorzystując wszystkie obserwacje.

Dane walidacyjne zaczynają wtedy pośrednio wpływać na proces treningowy.

Ocena modelu staje się zbyt optymistyczna.

Cały pipeline musi być walidowany

Prawidłowo wewnątrz każdej iteracji CV powinny odbywać się wszystkie etapy uczące się z danych, np.:

  • imputacja,
  • skalowanie,
  • selekcja cech,
  • strojenie parametrów,
  • dopasowanie modelu.

Dopiero później model ocenia się na części walidacyjnej.

Nested cross-validation

Jeżeli intensywnie dobieramy hiperparametry modelu, zwykła cross-validation użyta jednocześnie do strojenia i końcowej oceny może być zbyt optymistyczna.

Rozwiązaniem może być:

nested cross-validation.

Mamy wtedy:

  • pętlę wewnętrzną do strojenia,
  • pętlę zewnętrzną do niezależniejszej oceny jakości.

Bootstrap

Alternatywnym narzędziem walidacji wewnętrznej jest bootstrap.

Jest szczególnie użyteczny m.in. do oceny optymizmu modelu i stabilności oszacowań.

W klasycznych modelach prognostycznych bootstrap może być bardzo efektywną metodą wewnętrznej walidacji.

Walidacja nie naprawia złego modelu

Cross-validation nie zmieni błędnego projektu badania w dobry.

Nie rozwiąże problemów:

  • błędnego pomiaru,
  • złego kodowania wyniku,
  • confoundingu w analizie przyczynowej,
  • niewłaściwego doboru populacji,
  • bardzo małej liczby zdarzeń.

Jest narzędziem oceny generalizacji modelu, a nie uniwersalną metodą naprawczą.

Walidacja w pracy naukowej

Jeżeli celem pracy jest stworzenie modelu predykcyjnego, samo przedstawienie:

R² = 0,72

lub:

AUC = 0,91

na próbie, na której model został opracowany, jest niewystarczające do mocnych twierdzeń o jakości predykcji poza próbą.

Warto przeprowadzić co najmniej odpowiednią walidację wewnętrzną.

Jak raportować?

Przykład:

„Model poddano wewnętrznej walidacji z zastosowaniem 10-krotnej walidacji krzyżowej. Średnie AUC w zbiorach walidacyjnych wyniosło 0,81 w porównaniu z AUC = 0,86 w pełnej próbie.”

Warto podać także zmienność wyników między foldami lub odpowiednie przedziały niepewności.

Najczęstsze błędy

Należą do nich:

  • ocena modelu wyłącznie na danych treningowych,
  • data leakage,
  • wykonanie selekcji zmiennych przed CV,
  • traktowanie AUC jako jedynej miary jakości,
  • brak oceny kalibracji,
  • nazywanie wewnętrznego podziału danych „walidacją zewnętrzną”,
  • wielokrotne strojenie modelu na zbiorze testowym.

FAQ

Co to jest cross-validation?
Metoda wielokrotnej oceny modelu na obserwacjach niewykorzystanych w danej iteracji do jego dopasowania.

Co oznacza 10-fold CV?
Próbę dzieli się na 10 części, a każda z nich kolejno służy do walidacji.

Czy cross-validation eliminuje overfitting?
Nie eliminuje go automatycznie, ale pozwala lepiej ocenić jego konsekwencje i wspiera dobór modelu.

Czy AUC z danych treningowych wystarczy?
Nie, jeśli chcemy oceniać zdolność predykcyjną modelu na nowych danych.

Co jest lepsze – walidacja wewnętrzna czy zewnętrzna?
Pełnią różne funkcje. Walidacja wewnętrzna jest ważna na etapie opracowywania modelu, a niezależna walidacja zewnętrzna daje mocniejszą informację o jego przenoszalności.

Budujesz model prognostyczny?

Pomagamy w regresji, analizie ROC, walidacji krzyżowej, ocenie kalibracji i przygotowaniu modeli predykcyjnych do publikacji naukowych.

Analiza statystyczna do prac magisterskich
tel. 692 809 254

Frazy kluczowe: walidacja krzyżowa, cross validation, k-fold cross-validation, model predykcyjny, regresja, overfitting, analiza statystyczna, analiza regresji, ROC, AUC, model statystyczny, statystyka medyczna

Dodaj komentarz

Twój adres email nie zostanie opublikowany. Wymagane pola są oznaczone *

Time limit is exhausted. Please reload CAPTCHA.