Jakiej funkcji utraty należy użyć, aby uzyskać binarny klasyfikator o wysokiej precyzji lub o wysokim przywołaniu?

11

Próbuję stworzyć detektor obiektów, które występują bardzo rzadko (na zdjęciach), planując użyć binarnego klasyfikatora CNN stosowanego w przesuwanym / zmienianym oknie. Skonstruowałem zbalansowane zestawy treningów i testów dodatnich i ujemnych 1: 1 (czy w takim przypadku dobrze jest to zrobić btw?), A klasyfikator ma się dobrze na zestawie testowym pod względem dokładności. Teraz chcę kontrolować przywołanie / precyzję mojego klasyfikatora, aby na przykład nie oznaczał on zbyt wiele większości przypadków wystąpienia klasy.

Oczywistym (jak dla mnie) rozwiązaniem jest użycie tej samej straty logistycznej, która jest teraz stosowana, ale błędy wagi typu I i typu II różnią się poprzez pomnożenie straty w jednym z dwóch przypadków na pewnej stałej, którą można dostroić. Czy to jest poprawne?

PS Z drugiej strony jest to równoważne z ważeniem niektórych próbek treningowych bardziej niż innych. Myślę, że dodanie tylko jednej klasy pozwoli osiągnąć to samo.

Dzugaru
źródło
czy kiedykolwiek to rozwiązałeś? Mam podobny cel. Chciałbym zoptymalizować pod kątem precyzji (typ 1) i mniej przejmować się błędami typu 2, dlatego rozważałem, co można zrobić w odniesieniu do funkcji utraty.
Jonathan Shore,

Odpowiedzi:

6

Sztuczne konstruowanie zbilansowanego zestawu treningowego jest dyskusyjne, a właściwie dość kontrowersyjne. Jeśli to zrobisz, powinieneś empirycznie sprawdzić, czy to naprawdę działa lepiej niż pozostawić zestaw treningowy niezrównoważony. Sztuczne wyważenie zestawu testowego prawie nigdy nie jest dobrym pomysłem. Zestaw testowy powinien reprezentować nowe punkty danych, gdy wchodzą bez etykiet. Oczekujesz, że będą niezrównoważone, więc musisz wiedzieć, czy Twój model może obsłużyć niezrównoważony zestaw testów. (Jeśli nie spodziewasz się, że nowe rekordy będą niezrównoważone, dlaczego wszystkie istniejące rekordy są niezrównoważone?)

Jeśli chodzi o wskaźnik wydajności, zawsze otrzymasz to, o co prosisz. Jeśli dokładność nie jest tym, czego potrzebujesz przede wszystkim w zbalansowanym zestawie, ponieważ nie tylko klasy, ale także koszty błędnej klasyfikacji są niezrównoważone, nie używaj go. Jeśli użyłeś dokładności jako metryki i wykonałeś cały wybór modelu i dostrajanie hiperparametrów, zawsze biorąc ten z najlepszą dokładnością, optymalizujesz pod kątem dokładności.

Uważam klasę mniejszości za klasę pozytywną, to konwencjonalny sposób nazywania ich. Zatem precyzja i przywołanie, jak omówiono poniżej, są precyzją i przywołaniem klasy mniejszości.

  • Jeśli jedyną ważną rzeczą jest zidentyfikowanie wszystkich rekordów klasy mniejszości, możesz sobie przypomnieć. W ten sposób akceptujesz więcej fałszywych trafień.
  • Optymalizacja tylko precyzji byłaby bardzo dziwnym pomysłem. Mówiłbyś klasyfikatorowi, że niedocenianie klasy mniejszościowej nie stanowi problemu. Najłatwiejszym sposobem na uzyskanie wysokiej precyzji jest zachowanie ostrożności w deklarowaniu klasy mniejszości.
  • Jeśli potrzebujesz precyzji i przypomnienia, możesz zmierzyć F. Jest to średnia harmoniczna między precyzją a przywołaniem, a zatem karana jest za wyniki w przypadku, gdy obie miary różnią się.
  • Jeśli znasz konkretne koszty błędnej klasyfikacji w obu kierunkach (i zyski z prawidłowej klasyfikacji, jeśli są różne dla poszczególnych klas), możesz umieścić to wszystko w funkcji straty i zoptymalizować.
David Ernst
źródło
3

Robisz kilka założeń. Najlepiej jest pomyśleć o ostatecznym celu w kategoriach ogólnych, a następnie sformułować strategię, która spełnia ten cel. Na przykład, czy naprawdę potrzebujesz klasyfikacji wymuszonego wyboru i czy stosunek sygnału do szumu jest wystarczająco duży, aby to obsługiwać (dobre przykłady: rozpoznawanie dźwięku i obrazu)? A może stosunek sygnału do szumu jest niski, czy interesują Cię tendencje ? W tym drugim przypadku oszacowanie ryzyka jest dla Ciebie. Wybór jest kluczowy i decyduje o wybranej metodzie dokładności predykcyjnej. Więcej informacji na ten temat można znaleźć na stronie http://www.fharrell.com/2017/01/classification-vs-prediction.html i http://www.fharrell.com/2017/03/damage-caused-by-classification .html .

Większość problemów dotyczy podejmowania decyzji , a optymalne decyzje wynikają z oszacowania ryzyka w połączeniu z funkcją straty / kosztu / użyteczności.

Jednym z najlepszych aspektów metody szacowania ryzyka (prawdopodobieństwa) jest to, że obsługuje szare strefy, w których błędem byłoby dokonać klasyfikacji lub decyzji bez uzyskiwania większej ilości danych. A potem jest fakt, że oszacowanie prawdopodobieństwa nie wymaga (a nawet nie pozwala) „zbalansować” wyników poprzez sztuczne manipulowanie próbką.

Frank Harrell
źródło
1

j=1Jlog{1+exp[f(xj)]}+k=1Klog{1+exp[f(xk)]}
jkf()x
j=1Jlog{1+exp[f(xj)]}+k=1Kwlog{1+exp[f(xk)]}
w>1ww=2
Travis Gerke
źródło
Ale to nie byłby już szacunek maksymalnego prawdopodobieństwa - statystyczny „nie”
Frank Harrell,
1
Zgadzam się, ale nie jestem przekonany, czy to ważne, czy wnioskowanie statystyczne na temat parametrów w regresji logistycznej nie jest pożądanym celem (wzmianka OP o użyciu CNN również nie jest oparta na ML). Rzeczywiście, większość / wszystkie wnioski wnioskowania z tego ważonego podejścia najlepiej byłoby zignorować, ale model i wynikające z niego oceny ryzyka mogłyby nadal być stosowane do zestawu walidacyjnego z pożądanymi wynikami, np. Dobrą dyskryminacją / kalibracją.
Travis Gerke,
1
Nie, zakłócisz kalibrację modelu i uzyskasz więcej głośnych oszacowań parametrów przy powyższym podejściu. MLE istnieje z bardzo dobrych powodów.
Frank Harrell,
Rozważmy trywialny przypadek bycia bardzo zaniepokojonym błędną klasyfikacją w jedną stronę, ale nie w drugą - tj. Zerową stratę dla jednego z kierunków. Najlepszy model tej straty przewidziałby tylko klasę obaw. Chociaż byłby to okropny model, cel został osiągnięty. Ważne jest, aby zrozumieć cel i nie wierzyć w koncepcję teoretyczną (MLE) bez zrozumienia jej celu. Jak zauważył TravisGerke, jeśli nacisk kładziony jest na przewidywanie, a nie na modelowanie, jego podejście jest całkiem przydatne. Jest to z pewnością lepsze niż próbkowanie w dół klasy większościowej.
Statseeker,