Myślę, że pierwszym krokiem jest sprawdzenie, czy zgłoszone szkolenie i wydajność testu są w rzeczywistości prawidłowe.
- Czy podział podczas 5-krotnej walidacji krzyżowej odbywa się w sposób, który daje statystycznie niezależne zestawy pociągów / testów cv? Np. Jeśli dane są powtarzane, czy zawsze kończą się w tym samym zestawie?
- Dokładność 95,83% w 5-krotnym cv 150 próbek jest zgodna z 5 błędnymi ze 130 próbek treningowych dla 5 modeli zastępczych lub 25 błędnymi przypadkami dla 5 * 130 próbek treningowych.
Dokładność testu 98,21% jest trudniejsza do wyjaśnienia: podczas jednego przebiegu CV każdy przypadek należy przetestować jeden raz. Prawdopodobnie zgłoszone liczby powinny być w krokach co 100% / 150. 98,21% odpowiada 2,68 błędnym przypadkom (2 i 3 błędne spośród 150 przypadków testowych dają odpowiednio 98,67 i 98,00% dokładności).
Jeśli możesz wyodrębnić swój model, oblicz zgłoszone dokładności zewnętrznie.
- Jakie są zgłaszane dokładności losowego wprowadzania danych?
- Wykonaj zewnętrzną weryfikację krzyżową: podziel dane i przekaż tylko część szkoleniową do programu. Przewiduj „zewnętrzne” dane testowe i oblicz dokładność. Czy jest to zgodne z wynikami programu?
- Upewnij się, że zgłoszona „dokładność testu” pochodzi z niezależnych danych (podwójna / zagnieżdżona walidacja krzyżowa): jeśli twój program dokonuje optymalizacji opartej na danych (np. Wybierając „najlepsze” funkcje przez porównanie wielu modeli), to bardziej przypomina błąd szkolenia (dobroć) dopasowania) niż jak błąd uogólnienia.
Zgadzam się z @mbq, że błąd szkolenia rzadko jest przydatny w uczeniu maszynowym. Ale może się zdarzyć, że jest to jedna z niewielu sytuacji, w których jest to przydatne: jeśli program wybiera „najlepszy” model, porównując dokładności, ale ma tylko błędy treningowe do wyboru, musisz sprawdzić, czy błąd treningowy rzeczywiście pozwala na sensowne wybór.
@mbq nakreślił najlepszy scenariusz dla modeli nie do odróżnienia. Jednak zdarzają się również gorsze scenariusze: podobnie jak dokładność testu, dokładność treningu również jest zależna od wariancji, ale ma optymistyczne nastawienie w porównaniu z dokładnością uogólnienia, która jest zwykle przedmiotem zainteresowania. Może to prowadzić do sytuacji, w której nie można rozróżnić modeli, chociaż tak naprawdę mają różne parametry. Ale ich dokładności treningowe (lub wewnętrzne cv) są zbyt bliskie, aby je rozróżnić ze względu na ich optymistyczne nastawienie. Np. Iteracyjne metody wyboru cech mogą podlegać takim problemom, które mogą nawet utrzymywać się dla wewnętrznych dokładności weryfikacji krzyżowej (w zależności od tego, w jaki sposób ta weryfikacja krzyżowa jest realizowana).
Jeśli więc taki problem może się pojawić, myślę, że dobrym pomysłem jest sprawdzenie, czy rozsądny wybór może wynikać ze dokładności, jakich program używa do podjęcia decyzji. Oznaczałoby to sprawdzenie, czy wewnętrzna dokładność cv (która rzekomo jest używana do wyboru najlepszego modelu) nie jest lub nie jest zbyt optymistycznie tendencyjna w stosunku do zewnętrznego cv z statystycznie niezależnym podziałem. Ponownie, syntetyczne i / lub losowe dane mogą pomóc dowiedzieć się, co faktycznie robi program.
Drugim krokiem jest sprawdzenie, czy zaobserwowane różnice dla statystycznie niezależnych podziałów są znaczące, jak już wskazał @mbq.
Sugeruję, aby obliczyć, jaką różnicę dokładności należy obserwować przy danej wielkości próbki, aby uzyskać statystycznie znaczącą różnicę. Jeśli zaobserwowana zmienność jest mniejsza, nie można zdecydować, który algorytm jest lepszy dla danego zestawu danych: dalsza optymalizacja nie ma sensu.