Czy stuprocentowa dokładność modelu w przypadku nadmiernego dopasowania danych poza próbą?

11

Właśnie ukończyłem uczenie maszynowe dla kursu R na cognitiveclass.ai i zacząłem eksperymentować z losowymi lasami.

Stworzyłem model, używając biblioteki „randomForest” w R. Model klasyfikuje według dwóch klas: dobrej i złej.

Wiem, że gdy model jest przeładowany, działa dobrze na danych z własnego zestawu treningowego, ale źle na danych poza próbą.

Aby wytrenować i przetestować mój model, przetasowałem i podzieliłem cały zestaw danych na 70% na szkolenie i 30% na testy.

Moje pytanie: otrzymuję 100% dokładności na podstawie prognozy wykonanej na zestawie testowym. Czy to źle? Wydaje się zbyt piękne, aby mogło być prawdziwe.

Celem jest rozpoznawanie przebiegów na czterech na siebie w zależności od przebiegów. Cechy zestawu danych to wyniki kosztów analizy dynamicznego dopasowania czasowego kształtów fal z ich kształtem docelowym.

Milan van Dijck
źródło
witamy na stronie! Czy próbowałeś przewidzieć dane dotyczące hałasu?
Toros91
Za każdym razem, gdy przetasujesz, trenujesz i testujesz, dokładność wynosi 100%?
Alex
@Alex Niezupełnie, ale utrzymuje się na bardzo wysokim poziomie, wynoszącym 98,55%
Milan van Dijck
1
@Alex 11,35% „ok” i 88,65% „źle”
Milan van Dijck
1
To dość niezrównoważone. Spróbuj użyć ponownego próbkowania (powtarzane próbkowanie), aby przechylić równowagę w zestawie treningowym w stronę klasy OK (na przykład 30%) i utrzymać stosunek 11/89 w zestawach testowych / walidacyjnych. Co dostajesz?
Alex

Odpowiedzi:

29

Wysokie wyniki walidacji, takie jak dokładność, ogólnie oznaczają, że nie jesteś nadmiernie dopasowany, jednak powinno to prowadzić do ostrożności i może wskazywać, że coś poszło nie tak. Może to również oznaczać, że problem nie jest zbyt trudny i że Twój model naprawdę działa dobrze. Dwie rzeczy, które mogą pójść nie tak:

  • Nie podzieliłeś danych poprawnie, a dane walidacyjne pojawiły się również w danych treningowych, co oznacza, że ​​oznacza to nadmierne dopasowanie, ponieważ nie mierzysz już uogólnienia
  • Używasz inżynierii funkcji do tworzenia dodatkowych funkcji i być może wprowadziłeś pewien wyciek docelowy, w którym rzędy wykorzystują informacje z bieżącego celu, a nie tylko z innych w zestawie treningowym
Jan van der Vegt
źródło
11
100% dokładności zawsze krzyczy „wyciek docelowy”.
Paul
1

Sprawdź, jakie są najbardziej przewidujące funkcje. Czasami wśród funkcji przypadkowo umieściłeś swój cel (lub coś, co jest równoważne z celem).

Tomek
źródło