Czy rzeczywiście dobrze jest dokonywać wyboru funkcji bez nadzoru przed weryfikacją krzyżową?

9

W The Elements of Statistics Learning znalazłem następujące stwierdzenie:

Istnieje jedna kwalifikacja: wstępne pomiary bez nadzoru można wykonać przed pominięciem próbek. Na przykład, moglibyśmy wybrać 1000 predyktorów o największej wariancji we wszystkich 50 próbkach przed rozpoczęciem walidacji krzyżowej. Ponieważ to filtrowanie nie obejmuje etykiet klas, nie zapewnia nieuczciwej przewagi predyktorom.

Czy to jest rzeczywiście ważne? Mam na myśli to, że filtrując atrybuty wcześniej, nie naśladujemy danych szkoleniowych / nowego środowiska danych - czy to ma znaczenie, że filtrowanie, które wykonujemy, nie jest nadzorowane? Czy nie lepiej jest wykonać wszystkie etapy wstępnego przetwarzania w ramach procesu weryfikacji krzyżowej? Jeśli tak nie jest, oznacza to, że wszystkie wcześniejsze nadzorowanie bez nadzoru można wykonać wcześniej, w tym normalizację funkcji / PCA itp. Ale robiąc to na całym zestawie treningowym, w rzeczywistości wyciekamy niektóre dane do zestawu treningowego. Zgadzam się, że przy stosunkowo stabilnym zbiorze danych różnice te najprawdopodobniej są bardzo małe - ale to nie znaczy, że nie istnieją, prawda? Jaki jest właściwy sposób myślenia o tym?

Matek
źródło

Odpowiedzi:

2

Jako etap dokonany przed weryfikacją krzyżową, bezobsługowy wybór funkcji jest nieco podobny do normalizacji funkcji:

  1. Z punktu widzenia specyficznego zagięcia w walidacji krzyżowej dane pociągu zerknęły na dane testowe (choć tylko w zmiennych niezależnych).

  2. To zerkanie jest stosunkowo łagodne.

W tym pytaniu omówiono normalizację funkcji przed walidacją krzyżową . Cytując tam odpowiedź Dikrana Marsupiala

Walidację krzyżową najlepiej postrzegać raczej jako metodę szacowania wydajności procedury statystycznej niż modelu statystycznego. Dlatego w celu uzyskania obiektywnego oszacowania wydajności należy powtórzyć każdy element tej procedury osobno w każdym folderze walidacji krzyżowej, co obejmowałoby normalizację.

Jeśli więc możesz oszczędzić zasoby, najlepszą rzeczą byłoby, aby każdy fold sprawdzania krzyżowego wykonał dowolne przetwarzanie zależne od danych od zera.

Jednak, jak mówią odpowiedzi na to pytanie, w praktyce odwrócenie kolejności prawdopodobnie nie zmieni wiele. Z pewnością nie ma istotnej nieuczciwej przewagiy-zależne eksponaty wyboru funkcji. IMHO, to interpretacja cytatu z elementów uczenia statystycznego .

Ami Tavory
źródło
Cóż, to w zasadzie pokrywa się z moimi myślami, a ostatnie zdanie tutaj jest właściwie krótką odpowiedzią na moje pytanie. Dzięki, uczynię to akceptowaną odpowiedzią.
Matek
1
Efekt może być niewielki, ale może nie być tak mały. Jak mówisz, jest to jak wstępne skalowanie niezależnych zmiennych przed CV, które wykorzystają „przyszłość” (dane testowe), aby pomóc skalować „teraźniejszość” (dane treningowe), co nie zdarzy się w prawdziwym świecie. Jeśli masz losowe pasowania (bez szeregów czasowych, stratyfikacji itp.), To mniejszy efekt, ale po co przełamać barierę Train / Test i tak dalej?
Wayne
@Wayne Z pewnością zgadzam się z tobą, że gdy tylko jest to możliwe, najlepiej nie łamać bariery pociąg / test. Osobiście nigdy nie spotkałem się z rzeczywistymi przypadkami, w których to robiło różnicę (bez nadzoru FS i / lub normalizacji), ale spotkałem przypadki, w których absolutnie niemożliwe było dokonanie wyboru funkcji „właściwą drogą” (tj. W ramach każdego zagięcie). Widzę jednak z twojej dobrej odpowiedzi (którą głosuję), że napotkałeś przeciwny przypadek, więc najwyraźniej oba scenariusze istnieją.
Ami Tavory
Nie jestem pewien, czy spotkałem się z wynikami CV, w których normalizacja również zrobiła różnicę, co przypisuję zwykle 10-krotnemu CV, co oznacza, że ​​test fold jest tylko 10%, co zmniejsza jego efekt. Widziałem różnicę w przypadku podziału 67/33 lub nawet 75/25 bez CV.
Wayne
9

Zaczynam się różnić w tym pytaniu zarówno opinią @ AmiTavory, jak i elementami uczenia statystycznego.

Pochodzę z zastosowanego pola o bardzo małych próbkach, mam doświadczenie, że również bez nadzoru etapy obróbki wstępnej mogą powodować poważne uprzedzenia.

W mojej dziedzinie byłoby to najczęściej PCA w celu zmniejszenia wymiarów przed przeszkoleniem klasyfikatora. Chociaż nie mogę tutaj wyświetlić danych, widziałem PCA + (LDA z potwierdzeniem krzyżowym) w porównaniu z PCD + (LDA) niedoszacowanie poziomu błędu o około rząd wielkości . (Jest to zwykle wskaźnik, że PCA nie jest stabilny).

Jeśli chodzi o argumentację „nieuczciwej przewagi” elementów, jeśli zbadana zostanie wariancja zestawów przypadków testowych +, uzyskujemy funkcje, które działają dobrze zarówno w przypadku szkolenia, jak i testów Tworzymy tutaj samospełniającą się przepowiednię, która jest przyczyną nadmiernie optymistycznego nastawienia. Ta tendencja jest niska, jeśli masz dość wygodne rozmiary próbek.

Polecam więc podejście nieco bardziej konserwatywne niż elementy:

  • w walidacji należy uwzględnić obliczenia poprzedzające przetwarzanie uwzględniające więcej niż jeden przypadek: tj. są one obliczane tylko na odpowiednim zestawie szkoleniowym (a następnie stosowane do danych testowych)
  • etapy wstępnego przetwarzania, które uwzględniają każdy przypadek osobno (jestem spektroskopistą: przykładami byłyby korekta linii bazowej i normalizacja intensywności, która jest normalizacją rzędową), można wyciągnąć z walidacji krzyżowej, o ile są one przed pierwszym krokiem, który oblicza dla wielu przypadków.

To powiedziawszy, również walalizacja krzyżowa jest tylko skrótem do przeprowadzenia właściwego badania walidacyjnego. Dlatego możesz kłócić się z praktycznością:

  • Możesz sprawdzić, czy dane przetwarzanie wstępne daje stabilne wyniki (możesz to zrobić np. Przez weryfikację krzyżową). Jeśli uznasz, że jest on w pełni stabilny już przy mniejszych rozmiarach próbek, IMHO może argumentować, że nie zostanie wprowadzony zbyt duży błąd poprzez wyciągnięcie go z weryfikacji krzyżowej.

  • Jednak, aby zacytować poprzedniego przełożonego: czas obliczania nie jest naukowym argumentem.
    Często wybieram „podgląd” kilku folderów i kilka iteracji w celu weryfikacji krzyżowej, aby upewnić się, że cały kod (w tym podsumowanie / wykresy wyników), a następnie zostawić go na noc lub w weekend na serwerze na jakiś czas bardziej szczegółowa walidacja krzyżowa.

cbeleites niezadowoleni z SX
źródło