Normalizacja przed walidacją krzyżową

17

Czy dane normalizujące (mające zerową średnią i odchylenie standardowe jedności) przed powtórzeniem k-krotnej walidacji krzyżowej mają jakieś negatywne konsekwencje, takie jak nadmierne dopasowanie?

Uwaga: dotyczy to sytuacji, gdy # skrzynki> łączna liczba funkcji

Przekształcam niektóre moje dane za pomocą transformacji dziennika, a następnie normalizuję wszystkie dane jak wyżej. Następnie dokonuję wyboru funkcji. Następnie stosuję wybrane cechy i znormalizowane dane do powtarzanej 10-krotnej walidacji krzyżowej, aby spróbować oszacować uogólnioną wydajność klasyfikatora i obawiam się, że wykorzystanie wszystkich danych do normalizacji może nie być odpowiednie. Czy powinienem znormalizować dane testowe dla każdego krotnie przy użyciu danych normalizujących uzyskanych z danych treningowych dla tego krotnie?

Wszelkie opinie otrzymane z wdzięcznością! Przepraszamy, jeśli to pytanie wydaje się oczywiste.

Edycja: Podczas testowania tego (zgodnie z poniższymi sugestiami) stwierdziłem, że normalizacja przed CV nie wpłynęła znacząco na wydajność w porównaniu z normalizacją w CV.

BGreene
źródło

Odpowiedzi:

14

Aby odpowiedzieć na twoje główne pytanie, optymalne i bardziej odpowiednie byłoby skalowanie w CV. Ale prawdopodobnie nie będzie to miało większego znaczenia i może nie być w ogóle ważne w praktyce, jeśli twój klasyfikator przeskaluje dane, co większość robi (przynajmniej w R).

Jednak wybranie funkcji przed walidacją krzyżową jest DUŻYM NIE i doprowadzi do nadmiernego dopasowania, ponieważ wybierzesz je na podstawie tego, jak działają na całym zestawie danych. Transformacja dziennika jest w porządku do wykonania na zewnątrz, ponieważ transformacja nie zależy od rzeczywistych danych (więcej od rodzaju danych) i nie jest czymś, czego nie zrobiłbyś, gdybyś miał tylko 90% danych zamiast 100% i nie jest modyfikowany zgodnie z danymi.

Aby odpowiedzieć również na twój komentarz, oczywiście to, czy spowoduje to nadmierne dopasowanie, będzie zależeć od twojego sposobu wyboru funkcji. Jeśli wybierzesz je przypadkowo (dlaczego miałbyś to zrobić?) Lub ze względów teoretycznych a priori (inna literatura) nie będzie to miało znaczenia. Ale jeśli zależy to od zestawu danych, będzie. Elementy nauk statystycznych mają dobre wytłumaczenie. Możesz bezpłatnie i legalnie pobrać .pdf tutaj http://www-stat.stanford.edu/~tibs/ElemStatLearn/

Chodzi o ciebie w sekcji 7.10.2 na stronie 245 piątego wydruku. Jest zatytułowany „Niewłaściwe i właściwe sposoby przeprowadzania walidacji krzyżowej”.

Erik
źródło
Dzięki - na pewno, jeśli tylko zgłoszone wyniki dotyczą oceny wydajności uzyskanej przy użyciu wybranego modelu (funkcji) w każdej zakładce, to nie może to prowadzić do przeregulowania? W końcu zgłaszasz tylko uogólnioną wydajność danego podzbioru funkcji.
BGreene
Rozszerzyłem swoją odpowiedź, aby skomentować twój komentarz. Myślę, że wyjaśnienie w linku jest lepsze niż to, co mogę teraz ugotować.
Erik
Dziękuję Ci. Sugeruje to, że nigdy nie należy używać standardowego wyboru funkcji opartego na filtrze i że zamiast tego należy wybierać funkcje oparte na opakowaniu lub równoważne. Czy nadal dotyczy to sytuacji, w której # Przypadki> # Funkcje? (Mam 259 przypadków, w sumie 56 funkcji). Zakładam, że potencjał błędu jest tutaj mniejszy?
BGreene
5

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ę. Powiedziałbym więc normalizuj w każdej zakładce.

Jedyny raz nie byłoby to konieczne, gdyby procedura statystyczna była całkowicie niewrażliwa na skalowanie i średnią wartość danych.

Dikran Torbacz
źródło
Myślę, że to dobra odpowiedź, chociaż nie jest rygorystyczna, ma sens. Myślę, że oznacza to, że jeśli normalizujesz w każdym folderze, to gwarantuje się, że normalizacja nie wpłynie na wydajność. Sposób, w jaki został napisany, wydawał się, że nie ma innego sposobu uniknięcia stronniczości, chociaż Dikran w ostatniej linii wskazał, że istnieją inne sposoby. Jeśli wykonasz normalizację w CV, nigdy nie zwiększa to stronniczości, w przeciwieństwie do robienia tego na zewnątrz, co może. Obciążenie może i tak nie wpływać zbytnio, jak wskazano w drugiej odpowiedzi.
Tom Anderson
1

Myślę, że jeśli normalizacja obejmuje tylko dwa parametry i masz próbkę dobrej wielkości, nie będzie to problemem. Byłbym bardziej zaniepokojony transformacją i procesem selekcji zmiennych. 10-krotna walidacja krzyżowa wydaje się dziś modna. Czy nikt nie używa bootstrap 632 lub 632+ do szacowania wskaźnika błędów klasyfikatora, jak to sugerował najpierw Efron (1983) w JASA, a następnie w artykule Efron i Tibshirani z 632+?

Michael R. Chernick
źródło
0

Osobiście podoba mi się metoda .632. Co w zasadzie polega na wymiotowaniu z wymianą. Jeśli to zrobisz i usuniesz duplikaty, otrzymasz 632 wpisów z zestawu danych wejściowych 1000. Trochę ładnie.

MannyK
źródło
Estymator 632 różni się od tego, co mówisz. W rzeczywistości jest to liniowa kombinacja dwóch estymatorów poziomu błędu, dających wagę 0,632 dla bootstrapumi0 estymator i 0,368 do pozornego poziomu błędu (zwanego również oszacowaniem ponownego podstawienia).
Michael R. Chernick