Zastosowanie zagnieżdżonej weryfikacji krzyżowej

14

Strona Scikit Learn na temat wyboru modelu wspomina o zagnieżdżonej weryfikacji krzyżowej:

>>> clf = GridSearchCV(estimator=svc, param_grid=dict(gamma=gammas),
  ...                    n_jobs=-1)  
>>> cross_validation.cross_val_score(clf, X_digits, y_digits)

Dwie pętle wzajemnej weryfikacji są wykonywane równolegle: jedna przez estymator GridSearchCV, aby ustawić gamma, a druga przez cross_val_score, aby zmierzyć wydajność predykcji estymatora. Wynikowe wyniki są obiektywnymi szacunkami wyniku prognozy na nowych danych.

Z tego, co rozumiem, clf.fitużyję natywnej weryfikacji krzyżowej, aby określić najlepszą gamma. W takim przypadku, dlaczego powinniśmy używać zagnieżdżonego cv, jak podano powyżej? Uwaga wspomina, że ​​zagnieżdżone cv daje „obiektywne oszacowania” wyniku prognozy. Czy tak też nie jest clf.fit?

Ponadto nie byłem w stanie uzyskać najlepszych oszacowań clf z cross_validation.cross_val_score(clf, X_digits, y_digits)procedury. Czy możesz doradzić, jak to zrobić?

xbsd
źródło

Odpowiedzi:

18

Zagnieżdżona walidacja krzyżowa służy do unikania optymistycznie tendencyjnych oszacowań wydajności, które wynikają z zastosowania tej samej walidacji krzyżowej do ustawienia wartości hiperparametrów modelu (np. Parametru regularyzacji, i parametrów jądra maszyny SVM) oraz ocena wydajności. Napisałem artykuł na ten temat po tym, jak byłem raczej zaniepokojony skalą wynikającą z pozornie łagodnego skrótu często używanego w ocenie maszyn jądra. Zbadałem ten temat, aby dowiedzieć się, dlaczego moje wyniki były gorsze niż inne grupy badawcze stosujące podobne metody w tych samych zestawach danych. Powodem okazało się to, że korzystałem z zagnieżdżonej weryfikacji krzyżowej, a zatem nie skorzystałem z optymistycznego nastawienia.do

GC Cawley i NLC Talbot, Nadmierne dopasowanie w wyborze modelu, a następnie uprzedzenie wyboru w ocenie wydajności, Journal of Machine Learning Research, 2010. Research, vol. 11, str. 2079-2107, lipca 2010. ( http://jmlr.org/papers/volume11/cawley10a/cawley10a.pdf )

Przyczyny stronniczości z przykładowymi przykładami i oceną eksperymentalną można znaleźć w artykule, ale zasadniczo chodzi o to, że jeśli kryterium oceny wydajności jest używane w jakikolwiek sposób do dokonywania wyborów dotyczących modelu, wówczas wybory te są oparte na (i) rzeczywista poprawa wydajności uogólnienia oraz (ii) szczególne cechy statystyczne konkretnej próbki danych, na podstawie których oceniane jest kryterium oceny wyników. Innymi słowy, błąd ten powstaje, ponieważ możliwe jest (zbyt łatwo) przeregulowanie błędu weryfikacji krzyżowej podczas dostrajania hiperparametrów.

Dikran Torbacz
źródło
5

Z odstawianego zestaw testowy clf.fitprodukuje jeden bezstronny szacunek podczas zagnieżdżone walidacji krzyżowej z cross_val_scoreprodukuje kilka bezstronne szacunki. Zaletą zagnieżdżonej weryfikacji krzyżowej jest lepsza ocena rzeczywistej wydajności przy użyciu danych, których algorytm jeszcze nie widział. Lepsza ocena, ponieważ otrzymujesz np. Trzy wyniki testu z zagnieżdżonym cv zamiast jednego.

Odpowiedź na twoje drugie pytanie dotyczące najlepszych szacunków jest taka, że ​​obecnie (v0.14) nie jest możliwe uzyskanie parametrów dopasowanych modeli za pomocą zagnieżdżonego cv cross_val_score. Zobacz moją odpowiedź tutaj z przykładem.

tobip
źródło