Trochę się mylę co do wyboru funkcji i uczenia maszynowego i zastanawiałem się, czy możesz mi pomóc. Mam zestaw danych mikromacierzy, który jest podzielony na dwie grupy i ma tysiące funkcji. Moim celem jest uzyskanie niewielkiej liczby genów (moich cech) (10–20) w sygnaturze, którą teoretycznie będę mógł zastosować do innych zbiorów danych w celu optymalnego sklasyfikowania tych próbek. Ponieważ nie mam tylu próbek (<100), nie używam zestawu testów i szkolenia, ale używam krzyżowej walidacji z pominięciem jednego, aby pomóc w określeniu odporności. Czytałem, że należy dokonać wyboru funkcji dla każdego podziału próbek, tj
- Wybierz jedną próbkę jako zestaw testowy
- Na pozostałych próbkach dokonaj wyboru funkcji
- Zastosuj algorytm uczenia maszynowego do pozostałych próbek, korzystając z wybranych funkcji
- Sprawdź, czy zestaw testowy jest poprawnie sklasyfikowany
- Idź do 1.
Jeśli to zrobisz, możesz uzyskać różne geny za każdym razem, więc jak uzyskać swój „ostateczny” optymalny klasyfikator genów? tzn. co to jest krok 6.
Przez „optymalne” rozumiem kolekcję genów, którą powinny wykorzystać wszelkie dalsze badania. Powiedzmy na przykład, że mam zbiór danych dotyczących raka / normalności i chcę znaleźć 10 genów, które sklasyfikują typ nowotworu według SVM. Chciałbym poznać zestaw genów plus parametry SVM, które można by wykorzystać w dalszych eksperymentach, aby sprawdzić, czy można je wykorzystać jako test diagnostyczny.
Odpowiedzi:
To bardzo dobre pytanie, przed którym stanąłem, pracując z danymi SNP ... I nie znalazłem żadnej oczywistej odpowiedzi w literaturze.
Niezależnie od tego, czy używasz LOO, czy K-fold CV, skończysz z różnymi funkcjami, ponieważ iteracja weryfikacji krzyżowej musi być najbardziej zewnętrzną pętlą, jak powiedziałeś. Możesz pomyśleć o jakimś schemacie głosowania, który oceniałby n-wektory funkcji, które uzyskałeś z LOO-CV (nie pamiętam gazety, ale warto sprawdzić pracę Haralda Bindera lub Antoine Cornuéjols ). W przypadku braku nowej próbki testowej zwykle wykonuje się ponownie zastosowanie algorytmu ML do całej próbki po znalezieniu jej optymalnych parametrów walidowanych krzyżowo. Ale postępując w ten sposób, nie można zapewnić, że nie nastąpi przeregulowanie (ponieważ próbka była już używana do optymalizacji modelu).
Skoro mówisz o SVM, możesz szukać ukaranej SVM .
źródło
Zasadniczo:
Sprawdź swoje prognozy, używając jednego modelu wyszkolonego dla całego zestawu danych (więc istnieje tylko jeden zestaw funkcji). Walidacja krzyżowa służy jedynie do oszacowania wydajności predykcyjnej pojedynczego modelu wyuczonego na całym zestawie danych. Zasadnicze znaczenie w stosowaniu walidacji krzyżowej polega na powtarzaniu w każdej zakładce całej procedury zastosowanej w celu dopasowania do modelu podstawowego, ponieważ w przeciwnym razie może dojść do znacznego optymizmu w zakresie wydajności.
Aby zobaczyć, dlaczego tak się dzieje, rozważ problem klasyfikacji binarnej z 1000 cechami binarnymi, ale tylko ze 100 przypadkami, przy czym wszystkie przypadki i cechy są całkowicie losowe, więc nie ma statystycznego związku między cechami a przypadkami. Jeśli trenujemy model podstawowy na pełnym zbiorze danych, zawsze możemy osiągnąć zerowy błąd w zestawie szkoleniowym, ponieważ jest więcej funkcji niż przypadków. Możemy nawet znaleźć podzbiór funkcji „informacyjnych” (które są przypadkowo skorelowane). Jeśli następnie przeprowadzimy walidację krzyżową przy użyciu tylko tych funkcji, uzyskamy oszacowanie wydajności, które jest lepsze niż losowe zgadywanie. Powodem jest to, że w każdym folderze procedury weryfikacji krzyżowej znajdują się pewne informacje na temat wstrzymanych przypadków wykorzystywanych do testowania, ponieważ cechy zostały wybrane, ponieważ były dobre do przewidywania, wszystkie z nich, w tym przetrzymywane. Oczywiście rzeczywisty poziom błędu wyniesie 0,5.
Jeśli zastosujemy odpowiednią procedurę i dokonamy wyboru funkcji w każdej zakładce, nie będzie już żadnych informacji o wyciągniętych przypadkach w wyborze funkcji użytych w tej zakładce. Jeśli zastosujesz odpowiednią procedurę, w tym przypadku uzyskasz poziom błędu wynoszący około 0,5 (choć będzie on nieco różny dla różnych realizacji zestawu danych).
Dobre artykuły do przeczytania to:
Christophe Ambroise, Geoffrey J. McLachlan, „Bias selekcji w ekstrakcji genów na podstawie danych ekspresji genów mikromacierzy”, PNAS http://www.pnas.org/content/99/10/6562.abstract
co ma duże znaczenie dla PO i
Gavin C. Cawley, Nicola LC Talbot, „O nadmiernym dopasowywaniu w wyborze modelu i późniejszej tendencyjności w selekcji w ocenie wydajności”, JMLR 11 (lipiec): 2079-2107, 2010 http://jmlr.csail.mit.edu/papers /v11/cawley10a.html
co pokazuje, że to samo może łatwo wystąpić przy wyborze modelu (np. dostrajanie hiper-parametrów SVM, które również muszą być powtarzane przy każdej iteracji procedury CV).
W praktyce:
Poleciłbym użycie Bagging i użycie błędu „out-of-bag” do oszacowania wydajności. Otrzymasz model komitetu wykorzystujący wiele funkcji, ale tak naprawdę jest to dobra rzecz. Jeśli użyjesz tylko jednego modelu, prawdopodobnie przekroczysz kryterium wyboru funkcji i skończysz na modelu, który daje gorsze prognozy niż model, który używa większej liczby funkcji.
Książka Alana Millersa na temat wyboru podzbiorów w regresji (monografie Chapmana i Halla na temat statystyki i prawdopodobieństwa zastosowanego, tom 95) daje dobrą radę (strona 221), że jeśli wydajność predykcyjna jest najważniejsza, nie wybieraj żadnych cech , zamiast tego użyj regresji grzbietu. I to jest w książce o wyborze podzbiorów !!! ; o)
źródło
Aby dodać do chl: Podczas korzystania z maszyn wektorów nośnych, wysoce zalecaną metodą karania jest elastyczna siatka. Ta metoda zmniejszy współczynniki do zera i teoretycznie zachowa najbardziej stabilne współczynniki w modelu. Początkowo był używany w ramach regresji, ale można go łatwo rozszerzyć do użycia z maszynami wektorów wsparcia.
Oryginalna publikacja : Zou i Hastie (2005): Regularyzacja i wybór zmiennych za pomocą elastycznej siatki. JRStatist.Soc. B, 67-2, str .301-320
Elastyczna siatka do SVM : Zhu i Zou (2007): Wybór zmiennych dla maszyny wektora wsparcia: Trendy w obliczeniach neuronowych, rozdział 2 (Redaktorzy: Chen i Wang)
ulepszenia w elastycznej siatce Jun-Tao i Ying-Min (2010): Ulepszona elastyczna siatka do klasyfikacji raka i selekcji genów: Acta Automatica Sinica, 36-7, s. 976-981
źródło
W kroku 6 (lub 0) uruchamiasz algorytm wykrywania funkcji na całym zestawie danych.
źródło
W ten sposób wybieram funkcje. Załóżmy, że w oparciu o pewną wiedzę istnieją 2 modele do porównania. Model A wykorzystuje funkcje nr 1 do nie. 10. Model B używa nr 11 do nie. 20. Zastosuję LOO CV do modelu A, aby uzyskać wyniki poza próbą. Zrób to samo z modelem B, a następnie porównaj je.
źródło
Nie jestem pewien co do problemów z klasyfikacją, ale w przypadku wyboru cech dla problemów z regresją, Jun Shao wykazał, że CV typu Leave-One-Out jest asymptotycznie niespójne , tj. Prawdopodobieństwo wyboru odpowiedniego podzbioru cech nie jest zbieżne z 1, ponieważ liczba próbek wzrasta. Z praktycznego punktu widzenia Shao zaleca walidację krzyżową Monte-Carlo lub procedurę pomijania wielu osób.
źródło