Programuję i wykonuję programowanie testowe. Po wprowadzeniu zmian w kodzie uruchamiam testy. Czasem im się udaje, a czasem im się nie udaje. Przed uruchomieniem testu zapisuję liczbę od 0,01 do 0,99 dla mojej wiarygodności, że test się powiedzie.
Chcę wiedzieć, czy poprawiam przewidywanie, czy mój test się powiedzie, czy nie. Byłoby również miło, gdybym mógł śledzić, czy lepiej przewidzieć, czy test zakończy się powodzeniem w poniedziałki, czy w piątki. Jeśli moja zdolność do przewidywania sukcesu testu jest skorelowana z innymi miernikami, które śledzę, chcę wiedzieć.
To pozostawia mi zadanie wyboru właściwej metryki. W Superforcasting Philip Tetlock proponuje wykorzystanie wyniku Briera do pomiaru stopnia skalibrowania ekspertów. Kolejną miarą zaproponowaną w literaturze jest logarytmiczna reguła punktacji . Są też inni potencjalni kandydaci.
Jak zdecydować, której metryki użyć? Czy istnieje argument przemawiający za preferowaniem jednej reguły punktacji nad innymi?
źródło
Odpowiedzi:
Zakładam, że przeprowadzasz testy jednostkowe swojego kodu.
Jednym z pomysłów, który mogę wymyślić, który być może nie zrobiłby dokładnie tego, czego chcesz, jest zastosowanie modelu liniowego.
Zaletą takiego działania jest to, że można utworzyć wiele innych zmiennych, które można uwzględnić w analizie.
Powiedzmy, że masz wektor który zawiera wynik twoich testów, i inny wektor który zawiera twoje prognozy wyniku.xY x
Teraz możesz po prostu dopasować model liniowy
i znajdź wartość , im wyższa wartość , oznacza to, że Twoje przewidywania stają się lepsze.bb b
To, co sprawia, że to podejście jest przyjemne, polega na tym, że teraz możesz zacząć dodawać kilka innych zmiennych, aby zobaczyć, czy to tworzy lepszy model, a te zmienne mogą pomóc w lepszym przewidywaniu. Zmienne mogą być wskaźnikiem dla dnia tygodnia, np. Dla poniedziałku zawsze będzie to 1, a zero dla wszystkich pozostałych dni. Jeśli uwzględnisz tę zmienną w modelu, otrzymasz:
A jeśli zmienna jest znacząca i dodatnia, może to oznaczać, że jesteś bardziej konserwatywny w swoich prognozach w poniedziałki.aMonday
Możesz także utworzyć nową zmienną, w której będziesz oceniać trudność wykonywanego zadania. Jeśli masz kontrolę wersji, możesz np. Użyć liczby wierszy kodu jako trudności, tzn. Im więcej kodu napiszesz, tym bardziej prawdopodobne jest, że coś się zepsuje.
Inne zmienne mogą być, liczba filiżanek kawy tego dnia, wskaźnik nadchodzących terminów, co oznacza, że jest więcej stresu, aby dokończyć rzeczy itp
Możesz także użyć zmiennej czasowej, aby sprawdzić, czy Twoje prognozy się poprawiają. Ponadto, ile czasu spędziłeś na zadaniu lub ile sesji spędziłeś na nim, czy robiłeś szybką naprawę, a może to być niechlujne itp.
W końcu masz model predykcyjny, w którym możesz spróbować przewidzieć prawdopodobieństwo sukcesu. Jeśli uda ci się to stworzyć, być może nie musisz nawet tworzyć własnych prognoz, możesz po prostu użyć wszystkich zmiennych i całkiem dobrze zgadnąć, czy wszystko zadziała.
Chodzi o to, że chciałeś tylko jednego numeru. W takim przypadku możesz użyć prostego modelu, który przedstawiłem na początku, i po prostu użyć nachylenia, i powtórzyć obliczenia dla każdego okresu, a następnie możesz sprawdzić, czy w tym wyniku jest trend.
Mam nadzieję że to pomoże.
źródło
Chociaż nie jest to żadna odpowiedź i więcej referencji, dobrym pomysłem może być sprawdzenie Steyerberg E - Epidemiology 2012 .
W tym artykule Steyerberg i współpracownicy wyjaśniają różne sposoby sprawdzania wydajności modeli predykcyjnych dla modeli z wynikami binarnymi (sukces lub porażka). Kalibracja jest tylko jednym z tych środków. W zależności od tego, czy chcesz mieć dokładne prawdopodobieństwo , dokładną klasyfikację , czy też przeklasyfikowanie, możesz użyć różnych miar wydajności modelu. Mimo że ten manuskrypt dotyczy modeli do zastosowania w badaniach biomedycznych, wydaje mi się, że mogą one mieć zastosowanie również w innych sytuacjach (twoich).
Bardziej specyficzne dla twojej sytuacji, wskaźniki kalibracji są naprawdę trudne do interpretacji, ponieważ podsumowują (tj. Uśredniają) kalibrację w całym zakresie możliwych prognoz. W związku z tym możesz mieć dobry wynik podsumowania kalibracji, podczas gdy twoje prognozy były nieprawidłowe w istotnym zakresie przewidywanych prawdopodobieństw (np. Możesz mieć niski (= dobry) wynik briera, podczas gdy przewidywania na sukces są niższe lub wyższe od określonego przewidywane prawdopodobieństwo) lub odwrotnie (zły wynik sumaryczny, podczas gdy prognozy są dobrze skalibrowane w obszarze krytycznym). Proponuję zatem zastanowić się nad tym, czy w twoim przypadku istnieje tak krytyczny zakres przewidywanego prawdopodobieństwa sukcesu. Jeśli tak, zastosuj odpowiednie środki (np. Wskaźniki przeklasyfikowania). Jeśli nie (co oznacza, że interesuje Cię ogólna kalibracja), użyj brier,
Podsumowując, każda z miar podsumowujących kalibrację wymaga pierwszego kroku do wykreślenia przewidywanych prawdopodobieństw w stosunku do obserwowanego prawdopodobieństwa (patrz odpowiedź Outliera na przykład, jak to zrobić). Następnie można obliczyć miarę podsumowującą, ale wybór miary podsumowującej powinien przede wszystkim odzwierciedlać cel przewidywania sukcesu niepowodzenia.
źródło
Zrobiłem model predykcyjny na rzadkich danych i skalibrowanie modelu w tych przypadkach jest dużym wyzwaniem. Powiem ci, co zrobiłem, możesz uzyskać od tego pomoc.
Zrobiłem 20 przedziałów przewidywanego prawdopodobieństwa i próbowałem wykreślić średnie przewidywane i rzeczywiste prawdopodobieństwo sukcesu. Dla średniego przewidywanego prawdopodobieństwa wziąłem średnią zakresu bin. Dla średniego rzeczywistego prawdopodobieństwa obliczyłem rzeczywistą liczbę sukcesów i niepowodzeń w przedziałach, z których otrzymałem rzeczywiste (medianowe) prawdopodobieństwo sukcesu w przedziałach. Aby zmniejszyć wpływ wartości odstających, usunąłem górne i dolne 5% danych przed obliczeniem rzeczywistego mediany prawdopodobieństwa w każdym przedziale.
Po ich otrzymaniu mogę z łatwością wykreślić dane.
źródło