Co jeśli wysoka dokładność walidacji, ale niska dokładność testu w badaniach?


15

Mam konkretne pytanie dotyczące walidacji w badaniach nad uczeniem maszynowym.

Jak wiemy, system uczenia maszynowego prosi badaczy o szkolenie modeli na temat danych szkoleniowych, wybranie spośród modeli kandydujących według zestawu walidacyjnego i podanie dokładności zestawu testowego. W bardzo rygorystycznych badaniach zestaw testowy może być użyty tylko raz. Jednak nigdy nie może to być scenariusz badawczy, ponieważ musimy poprawić naszą wydajność, dopóki dokładność testu nie będzie lepsza niż najnowsze wyniki, zanim będziemy mogli opublikować (lub nawet przesłać) artykuł.

Teraz nadchodzi problem. Powiedzmy, że 50% to najnowocześniejszy wynik, a mój model ogólnie może osiągnąć dokładność 50--51, co jest średnio lepsze.

Jednak moja najlepsza dokładność walidacji (52%) daje bardzo niską dokładność testu, np. 49%. Następnie muszę zgłosić 49% jako moją ogólną wydajność, jeśli nie mogę dalej poprawiać modułu sprawdzania poprawności, co moim zdaniem nie ma nadziei. To naprawdę uniemożliwia mi zbadanie problemu, ale nie ma to znaczenia dla moich rówieśników, ponieważ nie widzą 52% acc, co moim zdaniem jest wartością odstającą.

Jak więc zwykle ludzie robią w swoich badaniach?

walidacja ps k-fold nie jest pomocna, ponieważ taka sama sytuacja może się nadal zdarzyć.

Odpowiedzi:


9

Z definicji, gdy dokładność treningu (lub inna metryka, której używasz) jest wyższa niż podczas testowania, masz model overfit . Zasadniczo Twój model nauczył się szczegółowych informacji, które pomagają mu osiągać lepsze wyniki w danych treningowych, które nie mają zastosowania do większej populacji danych, a zatem skutkują gorszymi wynikami.

Nie jestem pewien, dlaczego uważasz, że walidacja K-fold nie byłaby pomocna. Jego celem jest uniknięcie nadmiernego dopasowania modeli. Być może nie masz wystarczającej ilości danych? Takie oświadczenie jest ważne, szczególnie jeśli zamierzasz bronić badań, kiedy takie metody wzajemnej weryfikacji są wysoce zalecane.

Mówisz, że nie możesz użyć zestawu testowego tylko raz (ponownie zakładam mniejszy rozmiar próbki?). Z mojego doświadczenia wynika, że ​​najczęściej stosowaną ścieżką jest k-krotna walidacja krzyżowa twojego modelu. Weźmy przykład z 10-krotnym CV dla próbki o wielkości 100 i załóżmy, że twój problem klasyfikacji jest binarny, aby ułatwić obliczenia. I dlatego podzieliliśmy moich danych w 10 różnych fałd . Następnie dopasowuję mój model do 9/10 fałd, a następnie przewiduję 1/10, które pominąłem. W przypadku pierwszego uruchomienia wynikowa macierz pomieszania jest następująca:

    0  1
0   4  1
1   2  3

Następnie powtarzam tę analizę ponownie, z pominięciem następnej zakładki 1/10 i trenuję na pozostałych 9/10. I zdobądź moją kolejną macierz zamieszania. Po zakończeniu mam 10 macierzy zamieszania. Następnie sumowałem te macierze (więc przewidziałem wszystkie 100 próbek), a następnie raportowałem swoje statystyki (dokładność, PPV, wynik F1, Kappa itp.). Jeśli Twoja dokładność nie jest tam, gdzie chcesz, istnieje wiele innych możliwości.

  1. Twój model wymaga ulepszenia (zmień parametry)
  2. Może być konieczne wypróbowanie innego algorytmu uczenia maszynowego (nie wszystkie algorytmy są sobie równe)
  3. Potrzebujesz więcej danych (trudno znaleźć subtelny związek)
  4. Konieczne może być przetworzenie danych (w zależności od zastosowanego algorytmu)
  5. Pomiędzy zmiennymi zależnymi i niezależnymi może nie być żadnego związku

Faktem jest, że niższy wskaźnik testowania (np. Dokładność) niż twój trening wskazuje na to, że twój model nie pasuje, a nie coś, czego chcesz, próbując stworzyć nowy model predykcyjny.


Dziękuję za odpowiedź. Chodzi mi o badania maszynowego uczenia się w publikacjach, zamiast stosowania technik uczenia maszynowego. Często testy porównawcze zapewniają standardowy podział zestawów szkoleniowych, walidacyjnych i testowych. Co więcej, k-fold ogranicza tylko wariancję. Nadal mogę spotkać się z sytuacją, w której moja (uśredniona) walidacja wg. jest wysoka, ale test wg. jest niski.
Mou

Czasami jest zabawne, że jeśli trochę przeprojektuję mój model, mogę po prostu zignorować wartość odstającą, ponieważ mój model (a tym samym klasa hipotez) zmienia się, ale to nie działa w przypadku dostrajania hiperparametrów, ponieważ wybieramy model z hipotezy klasa. Jednak my, badacze, mamy nieokreśloną klasę hipotez - próbujemy tego, co chcemy. To naprawdę przeszkadza mi podczas badań, ponieważ często różnica dokładności jest zwykle bardzo mała, powiedzmy 0,1%.
Mou

@Mou, myślę, że wciąż jestem trochę niepewny, jakie jest twoje główne pytanie. Wydaje się, że jest wiele pytań. Radzenie sobie z wartościami odstającymi to inny temat. Próbujesz zoptymalizować parametry lub ocenić ostateczny model? Może to być specyficzne dla różnych pól, ale zmiany o 0,1% są dość nieznaczne. Możesz albo skorzystać z opcji wymienionych w mojej odpowiedzi, albo zaakceptować fakt, że możesz uzyskać tylko tyle z bieżącego modelu i danych. Model nadal wydaje się pasować (choć nieco).
cdeterman

Zgadzam się z Tobą. Muszę zaakceptować, że mój model nie jest tak dobry. Ale kilka dni temu, kiedy wysokie cv wg. + niski test wg. nie przeskoczyłem na ekran, mój model był najlepszy na świecie. Teraz tak nie jest, chociaż niczego nie zmieniłem. Co więcej, nie mam nadziei, że przewyższę 52% wg CV, co utknęło w moich badaniach, ale moi rówieśnicy nie muszą się tym martwić.
Mou

Musisz zmienić coś, aby zmienić liczby lub istnieje pewna randomizacja, której nie ustawiłeś pod seedkątem odtwarzalności. Podejrzewam, że twoja procedura CV ma pewną randomizację, która po powtórzeniu może nieco różnić się wynikami (ale to tylko przypuszczenie). Naprawdę proponuję zapoznać się z innymi modelami lub transformacją danych, aby spróbować poprawić swoją wydajność.
cdeterman
Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.