95% dokładny model, który jest całkowicie bezużyteczny
Oto naprawdę pouczający przykład niepowodzenia z zastosowanego uczenia maszynowego medycznego. Rozważ zestaw danych 5 110 pacjentów, w którym 4 861 nigdy nie miało udaru i 249 miało — w przybliżeniu proporcja 19,5 do 1 między klasą większością a klasą mniejszościową. Teraz zbuduj najprostszy możliwy 'model': taki, który zawsze przewiduje 'brak udaru', niezależnie od wprowadzonych danych. Zmierzony na podstawie czystej dokładności, ten model osiąga 95,1%. Brzmi imponująco na slajdzie. Jest to również bezwartościowe, ponieważ nie zidentyfikuje ani jednego z 249 pacjentów, którzy rzeczywiście mieli udar. W kontekście przesiewowym jest to grupa pacjentów, dla której całe ćwiczenie ma istnieć, aby ją znaleźć.
To nie jest hipotetyczna pułapka; jest to dokładny punkt odniesienia używany w rzeczywistym projekcie modelowania ryzyka udaru, celowo zawarty w tabeli wyników, aby pokazać problem przed wprowadzeniem bardziej zaawansowanych modeli. Jest to jeden z najbardziej pouczających numerów w całym projekcie, ponieważ pokazuje w jednym rzędzie, dlaczego dokładność jest złym nagłówkiem metryki, gdy celem jest rzadkie zdarzenie.
Nierównowaga klas jest regułą, a nie wyjątkiem, w medycynie
Choroby rzadkie pozytywne wyniki stanowią normę w prognozowaniu klinicznym, a nie nietypowy przypadek. Udary mózgu, specyficzne nowotwory, sepsy, rzadkie choroby genetyczne i reakcje na leki są wszystkie, na szczęście, niezbyt częste u ogółu populacji – co dokładnie sprawia, że są trudne do wykrycia i właśnie dlatego narzędzia przesiewowe są cenne w pierwszej kolejności. Jednakże ta sama rzadkość oznacza, że każdy zbiór danych zbudowany z danych klinicznych lub publicznej dokumentacji zdrowotnej będzie dominował przez przypadki negatywne, a model wytrenowany naiwnie na tych danych będzie skłaniał się ku leniwemu strategii przewidywania większości klasy, ponieważ minimalizuje to średni błąd w całym zbiorze treningowym, nawet jeśli jest to katastrofalne dla mniejszej klasy specyficznie.
Tworzy to bezpośredni konflikt między tym, co nagminne optymalizowanie nagradza, a tym, czego potrzebuje rzeczywiste wdrożenie kliniczne. Model optymalizowany pod kątem ogólnej dokładności na zbiorze danych o stosunku 19,5:1 z nierównowagą może poprawić swój wynik dokładności po prostu stając się bardziej konserwatywnym i przewidując negatywne częściej – co jest dokładnie odwrotnością tego, czego powinno robić narzędzie przesiewowe.
Dokładność, czułość i dlaczego F1 jest decydującym czynnikiem
Wasze metryki są tu ważniejsze niż dokładność: precyzja, czyli proporcja pacjentów oznaczonych jako wysokiego ryzyka, którzy rzeczywiście byli wysokiego ryzyka, oraz czułość, czyli proporcja pacjentów z rzeczywistego wysokiego ryzyka, których model skutecznie wykrył. Te dwie liczby naturalnie handlują ze sobą – model może trywialnie osiągnąć 100% czułości, oznaczając każdego pacjenta jako wysokiego ryzyka, kosztem złej precyzji, lub 100% precyzji, tylko oznaczając najbardziej oczywisty przypadek, kosztem złej czułości. Wynik F1 jest średnią harmoniczną tych dwóch i został wyraźnie wybrany jako główna metryka oceny projektu dotyczącego udaru mózgu właśnie dlatego, że karze modele, które poświęcają jedną metrykę, aby pomnożyć drugą, zmuszając do prawdziwego balansu.
Na zestawie testowym z wypartymi danymi najlepszy dostrojony model XGBoost osiągnął precyzję 78% i czułość 84%, co łącznie daje wynik F1 wynoszący 0,80 – obraz znacznie bardziej informacyjny niż 95% dokładności modelu do-niczego. Analiza macierzy pomyłek pokazuje ten kompromis: spośród 1022 pacjentów z testu, model prawidłowo oznaczyl 14 prawdziwych przypadków udaru mózgu, pomijając 37 i wygenerował 54 fałszywych alarmów wśród pacjentów, którzy nie doświadczyli udaru mózgu. Zdecydowane skłonność do wyższej czułości niż precyzja (84% vs 78%) odzwierciedla przemyślany wybór kliniczny: w kontekście przesiewowym pominięcie prawdziwego ryzyka udaru mózgu (fałszywie negatywny) jest generalnie uważane za bardziej szkodliwe niż jedno dodatkowe niepotrzebne spotkanie kontrolne (fałszywie pozytywny).
Naprawa niezrównoważenia podczas treningu, a nie tylko mierzenie tego później
Wybór metryki F1 jako metryki oceny rozwiązuje jedynie połowę problemu — prawidłowo ocenia model, ale sam w sobie niczego nie robi, aby uczynić model lepszym w klasie mniejszościowej. Pozostała połowa rozwiązania zachodzi podczas treningu. Projekt Stroke użył ważenia klas: dla regresji logistycznej ustawienie „zbalansowanych” ważności klas automatycznie zwiększa wagę błędów na klasie mniejszościowej podczas optymalizacji; dla XGBoost parametr scale_pos_weight ustawiony na 19,5, odpowiadający rzeczywistej proporcji niezrównoważonej w danych treningowych, co mówi algorytmowi, aby przypisał przypadkowy błąd pominięcia przypadku udaru jako około dziewięć i pół razy droższy niż fałszywy alarm podczas treningu.
Zmierzony wpływ tej ponownej ważności był znaczący: ważenie klas poprawiło wynik F1 o około 0,05 do 0,10 w różnych rodzinach modeli przetestowanych, co stanowi znaczący skok dla pojedynczego zmiany hiperparametru. Inne ugruntowane techniki tego samego problemu obejmują metody przeszczepiania, takie jak SMOTE (Technika Syntetycznego Przesiewania Mniejszościowej), która generuje syntetyczne przykłady rzadkiej klasy w celu zbalansowania zbioru treningowego, i podprzesiewanie większościowej klasy — obie wymienione jako obiecujące kierunki przyszłych iteracji tego konkretnego projektu, wraz ze stosowaniem zespołów wielu typów modeli.
Sprawdźlistę, aby wykryć ten problem w praktyce
Ten wzorzec uogólnia się nie tylko poza przewidywaniem udaru i jest wart rozpoznania za każdym razem, gdy napotkasz wynik uczenia maszynowego zgłoszony dla domeny rzadkich chorób medycznych, wykrywania oszustw, bezpieczeństwa lub jakiejkolwiek innej rzadkiej zdarzenia. Najpierw sprawdź bilans klas w pierwotnym zbiorze danych przed zaufatym jakimkolwiek wynikiem dokładności — wynik dokładności powyżej około 90% na zbiorze danych, w którym pozytywna klasa jest znana jako rzadka, jest sygnałem do dalszego badania, a nie powodem zaufania. Drugi, szukaj konkretnie precyzji, czułości i F1 (lub odpowiedniej metryki zbalansowanej) zamiast dokładności samej w sobie; jeśli tylko dokładność jest raportowana dla problemu niezrównoważonego, traktuj wynik z prawdziwym sceptycyzmem. Trzeci, sprawdź, czy proces uczenia się zrobiło coś wyraźnie, aby rozwiązać ten problem — ważenie klas, resampling lub funkcja kosztów wrażliwej na stratę — ponieważ model wytrenowany bez jakichkolwiek takich korekt będzie tendował do słabego działania na mniejszościowej klasie niezależnie od tego, która metryka jest używana do raportowania później. Żaden z tego nie wymaga zaawansowanej statystyki do sprawdzenia; po prostu wymaga zadania jednego pytania przed zaakceptowaniem jakiegokolwiek wyniku dokładności wprost: jak rzadkie jest to, które naprawdę próbujemy wykryć?
Często zadawane pytania
Jaki jest dobrym kryterium przy ocenie, czy wartość dokładności jest wprowadzająca w błąd?
Jeśli klasa pozytywna, o której zależy (np. choroba, sprawa oszustwa, usterka), stanowi mniej niż około 10-15% zbioru danych, wysoka wartość dokładności sama w sobie nie mówi wiele. Zawsze należy szukać precyzji, czułości lub współczynnika F1 obok niej.
Co dokładnie oznacza współczynnik F1?
Współczynnik F1 jest średnią harmoniczną precyzji i czułości, obliczaną jako 2 x (precyzja x czułość) / (precyzja + czułość). Ponieważ jest to średnia harmoniczna, a nie arytmetyczna, mocno karze modele, w których jedna z precyzji lub czułości jest bardzo niska, nawet jeśli druga jest bardzo wysoka.
Co robi hiperparametr scale_pos_weight w XGBoost?
Jest to hiperparametr, który mówi modelowi, jak mocno należy zwiększyć wagę błędów na klasie pozytywnej (mniejszościowej) w porównaniu do klasy negatywnej podczas treningu. Ustawienie go na stosunek nierówności klas, np. 19,5 dla zbioru danych o stosunku 19,5 do 1, jest dobrym punktem wyjścia.
Czy SMOTE jest lepsze niż ważenie klas w rozwiązywaniu problemu nierówności?
Ani jedno nie jest uniwersalnie lepsze; rozwiązują one ten sam problem inaczej. Ważenie klas dostosowuje funkcję straty treningowej bez zmiany danych, a SMOTE (Technika Syntezy Mniejszościowych Przykładowych) generuje syntetyczne przykłady mniejszościowej klasy, aby fizycznie zrównoważyć zbiór treningowy. Obie są często testowane i porównywane podczas rozwoju modelu.
Dlaczego model rozpoznawania udaru mózgu priorytetowo stawiała czułość nad precyzją?
Ponieważ w kontekście przesiewu medycznego fałszywie negatywny wynik (pominięcie prawdziwego pacjenta z wysokim ryzykiem) jest generalnie uważany za bardziej szkodliwy niż fałszywie pozytywny wynik (oznaczanie pacjenta o niskim ryzyku do niepotrzebnej dalszej diagnostyki). Model został dostrojony pod kątem oceny i ważenia klas, osiągając 84% czułości w porównaniu z 78% precyzji na zbiorze testowym.
Wypróbuj na żywo
Wszystko powyżej działa bezpośrednio w Twojej przeglądarce — otwórz the simulation i zmieniaj parametry podczas działania. Nic nie jest instalowane ani przesyłane na serwer, cały model działa w jednej karcie.
▶ Otwórz symulację the simulation