Mam zestaw danych z 26 funkcjami i 31000 wierszami. Jest to zbiór danych 38 podmiotów. To jest dla systemu biometrycznego. Więc chcę być w stanie zidentyfikować podmioty.
Aby mieć zestaw testowy, wiem, że muszę usunąć niektóre wartości.
Więc co lepiej robić i dlaczego?
(a) trzymaj 30 osób jako zestaw szkoleniowy i usuń 8 przedmiotów jako zestaw testowy
(b) zachowaj 38 badanych, ale usuń niektóre wiersze każdego z nich. Na koniec skończę zestawem treningowym: 24800 rzędów 38 przedmiotów ORAZ zestawem testowym: 6200 rzędów 38 przedmiotów
Odpowiedzi:
Myślę, że odpowiedź Matthew Gunna jest poprawna, ale wydaje mi się, że „rekordowe” CV może obejmować dwie różne koncepcje:
Rekordy są losowo dzielone na fałdy, niezależnie od tematu i czasu.
Rekordy dzielone są na fałdy czasowe, przy czym nie są używane do treningu, który zawiera dane z początku fałdu testowego.
W pierwszym przypadku zagrożony jest szereg danych w szeregach czasowych, ponieważ zestaw treningowy może zawierać dane zarówno przed, jak i po zestawie testowym. Zasadą pociągu / testu jest to, że dane treningowe reprezentują dane znane obecnie, a dane testowe reprezentują dane, których jeszcze nie widziano (być może dosłownie z przyszłości).
Być może autokorelacja szeregów czasowych zagraża opcji nr 2. Być może element czasowy modelu nie jest tak naprawdę ważny, więc obserwacje „przeszłe” i „przyszłe” prawdopodobnie będą takie same. W takich przypadkach ani nr 1, ani nr 2 nie są dobrym rozwiązaniem.
Jeśli występuje tylko sezonowość, a nie trendy, wydaje się, że można włączyć „przyszłość” w szkoleniach dla niektórych przedmiotów, aby przewidzieć nowe podmioty (na które będzie miała wpływ ta sama sezonowość). Jeśli istnieją trendy, szkolenie na temat przyszłości powinno nauczyć się czegoś o przyszłości, której tak naprawdę nie poznałbyś podczas używania modelu w produkcji.
W przykładzie PO wydaje się, że temat jest dobry. Ale jeśli trendy i obawy dotyczące szeregów czasowych były częścią modelu, spróbowałbym użyć podziału na temat i czasu, więc trenowałeś na jednym zestawie tematów przed określonym momentem, a następnie testowałem na innych tematach po w tym konkretnym momencie.
źródło
Krytyczne jest rozróżnienie, czy chcesz:
O wiele bardziej powszechnym przypadkiem jest numer sprawy (1). Np. Jak dobrze przewidujesz ataki serca u kogoś, kto przyjdzie na izbę przyjęć? A jeśli jesteś w przypadku (1), prawie na pewno powinieneś zrobić (a) podmiotową weryfikację krzyżową zamiast (b) ewidencyjną weryfikację krzyżową. Dokonanie rekordowej walidacji w przypadku (1) najprawdopodobniej doprowadzi do nieuzasadnionych wysokich, fałszywych oszacowań wyników na nowych tematach.
Nie rozumiem dokładnie, co próbujesz zrobić (i być może jest to samokształcenie, więc pytanie nie jest całkowicie realistyczne). Nie wiem, w jakim jesteś przypadku. Jeśli jesteś w znacznie mniej powszechnym przypadku (2), sprawdzanie poprawności zapisu może być w porządku.
Ogólnym tematem w statystykach jest dokładne przemyślenie tego, co jest niezależne, a co skorelowane. Ogólnie rzecz biorąc, niezależna obserwacja jest zwykle innym tematem. Jeśli chcesz przewidzieć wyniki na nowych tematach, musisz przetestować przedmioty, na których nie trenowałeś!
Dlaczego pod względem przedmiotowym sprawdzanie poprawności krzyżowej zamiast rejestrowania?
W typowych ustawieniach powtarzane obserwacje tej samej osoby są skorelowane ze sobą nawet po uwarunkowaniu cech. Dlatego dzięki rekordowej weryfikacji krzyżowej Twój zestaw testowy nie jest niezależny od zestawu treningowego! W skrajnym przypadku idealnej korelacji miałbyś dokładnie takie same obserwacje w zestawie treningowym i zestawie testowym! Będziesz trenował na zestawie testowym! Wyniki mierzone w ramach walidacji krzyżowej nie byłyby w stanie przewidzieć wyników w odniesieniu do nowych podmiotów.
Na przykład ten najnowszy artykuł nazywa rekordową weryfikację krzyżową `` Voodoo Machine Learning ''.
Ale co zrobić z tak małą liczbą tematów ...
Aby zmaksymalizować dane do szkolenia, możesz pominąć jeden temat do wzajemnej weryfikacji. Każdej iteracji, testuj inny temat trzymania się i trenuj na wszystkich pozostałych.
źródło
To naprawdę zależy od tego, jak wyobrażasz sobie ustawienie, które chcesz emulować przy podziale pociągu / testu. Mówiąc konkretnie, powiedzmy, że każdy wiersz opisuje jakość snu pacjenta w ciągu jednej nocy.
Możliwe, że w przyszłości każdy uczestnik najpierw przyjdzie do laboratorium snu i zapewni jakość snu na kilka nocy. Następnie musisz przewidzieć jakość snu w przyszłości dla tych osób . W takim przypadku skorzystasz z opcji b). W
sklearn
, możesz użyćsklearn.model_selection.StratifiedShuffleSplit
Możliwe, że w przyszłości kilka osób przyjdzie najpierw do laboratorium snu i zapewni ci jakość snu na kilka nocy. Następnie będziesz musiał przewidzieć jakość snu w przyszłości dla innych osób . W takim przypadku skorzystasz z opcji a). W
sklearn
, możesz użyćsklearn.cross_validation.LeavePLabelOut
źródło
Aby wejść, zakładam, że aplikacja ma przewidywać nieznane tematy. Oznacza to (niezależnie od tego, czy masz szeregi czasowe, czy z natury nieuporządkowane powtarzane pomiary), że podział musi zostać wykonany, aby badane były nieznane obiekty => podział a)
Biorąc pod uwagę, że masz tylko 38 przedmiotów, powinieneś przemyśleć proces weryfikacji poprawności. Z mojego doświadczenia w pracy z podobnie małymi rozmiarami próbek (choć więcej funkcji), oto kilka zaleceń w skrócie:
Przejdź do tematycznego out-of-bootstrap lub iterowanej weryfikacji krzyżowej. Pozwalają ocenić stabilność modeli, co ma kluczowe znaczenie w przypadku problemów z małą liczbą próbek. Wyniki mogą być nawet wykorzystane w przypadku modelu zagregowanego w przypadku niestabilności.
Czy nie należy pozostawiać-One-przedmiot-out. Nie pozwala ani zmierzyć stabilności modelu, ani go zmniejszyć. Ponadto zdarzają się sytuacje, w których podlega on dużym pesymistycznym uprzedzeniom z powodu małej wielkości próby (w przeciwieństwie do oczekiwanej minimalnej pesymistycznej stronniczości).
Jeśli używasz typowych wartości klasyfikacyjnych, takich jak dokładność, czułość, specyficzność itp., A zadaniem jest poprawna klasyfikacja przedmiotów: strzeż się, że kluczowym problemem jest pomiar wydajności, ponieważ niepewność wyników testu zależy od liczby bezwzględnej przypadków testowych. Przykładowo, obserwowanie 17 prawidłowych prognoz z 17 prawdziwie pozytywnych pacjentów odpowiada 95% przedziałowi ufności dla czułości w zakresie od około 80% do 100%.
Innymi słowy, nie będziesz w stanie przeprowadzić opartej na danych optymalizacji modelu opartego na danych.
Oznacza to również, że nie trzeba konfigurować podziału na trzy zestawy (sprawdzanie poprawności zagnieżdżonej), ponieważ marnowałbyś zasoby na statystycznie nieistotne porównania tutaj - twoja optymalizacja jest prawie nieudana (chociaż możesz tego nie zauważyć, jeśli nie sprawdzaj stabilności).
Te same obliczenia dla dwumianowego przedziału ufności dla proponowanych 5 (3) podmiotów testujących / optymalizujących / walidujących dają 95% ci dla wszystkich prawidłowych przedziałów do 50% (30%), więc w oparciu o doskonałe wyniki testu twój przedział ufności nadal obejmowałby 50 / 50 zgadywania!
Niektóre artykuły, które pisaliśmy na te tematy:
Beleites, C .; Baumgartner, R .; Bowman, C .; Somorjai, R .; Steiner, G .; Salzer, R. i Sowa, MG Redukcja wariancji w szacowaniu błędu klasyfikacji przy użyciu rzadkich zestawów danych, Chemom Intell Lab Syst, 79, 91–100 (2005).
Beleites, C. i Salzer, R .: Ocena i poprawa stabilności modeli chemometrycznych w sytuacjach o małej wielkości próbki, Anal Bioanal Chem, 390, 1261-1271 (2008). DOI: 10.1007 / s00216-007-1818-6
Beleites, C. and Neugebauer, U. and Bocklitz, T. and Krafft, C. and Popp, J .: Planowanie wielkości próby dla modeli klasyfikacyjnych. Anal Chim Acta, 2013, 760, 25-33. DOI: 10.1016 / j.aca.2012.11.007
zaakceptowano manuskrypt na arXiv: 1211.1323
źródło