Wiem, że tradycyjne modele statystyczne, takie jak regresja Cox Proportional Hazards i niektóre modele Kaplana-Meiera, można wykorzystać do przewidywania dni do następnego wystąpienia zdarzenia, np. Niepowodzenia itp., Czyli analizy przeżycia
pytania
- W jaki sposób można zastosować wersję regresji modeli uczenia maszynowego, takich jak GBM, sieci neuronowe itp., Aby przewidzieć dni do wystąpienia zdarzenia?
- Uważam, że używanie dni do wystąpienia jako zmiennej docelowej i po prostu uruchomienie modelu regresji nie zadziała? Dlaczego to nie działa i jak to naprawić?
- Czy możemy przekonwertować problem analizy przeżycia na klasyfikację, a następnie uzyskać prawdopodobieństwo przeżycia? Jeśli tak, jak utworzyć binarną zmienną docelową?
- Jakie są zalety i wady podejścia do uczenia maszynowego w porównaniu z regresją proporcjonalną hazardu Coxa i modelami Kaplana-Meiera itp.?
Wyobraź sobie, że przykładowe dane wejściowe mają poniższy format
Uwaga:
- Czujnik wysyła sygnały ping w odstępach co 10 minut, ale czasami dane mogą być niedostępne z powodu problemów z siecią itp., Co reprezentuje wiersz z NA.
- var1, var2, var3 są predyktorami, zmiennymi objaśniającymi.
- flaga_ awarii informuje, czy maszyna uległa awarii, czy nie.
- Mamy dane z ostatnich 6 miesięcy co 10 minut dla każdego identyfikatora maszyny
EDYTOWAĆ:
Oczekiwana prognoza wyników powinna mieć format poniżej
Uwaga: Chcę przewidzieć prawdopodobieństwo awarii dla każdej maszyny na kolejne 30 dni na poziomie dziennym.
machine-learning
classification
survival
cox-model
kaplan-meier
GeorgeOfTheRF
źródło
źródło
failure_flag
.Odpowiedzi:
W przypadku sieci neuronowych jest to obiecujące podejście: WTTE-RNN - Mniej hacky przewidywania rezygnacji .
Istotą tej metody jest wykorzystanie Rekurencyjnej Sieci Neuronowej do przewidywania parametrów rozkładu Weibulla na każdym etapie i zoptymalizowanie sieci za pomocą funkcji strat uwzględniającej cenzurę.
Autor opublikował również swoją implementację na Github .
źródło
Spójrz na te referencje:
https://www.stats.ox.ac.uk/pub/bdr/NNSM.pdf
http://pcwww.liv.ac.uk/~afgt/eleuteri_lyon07.pdf
Należy również zauważyć, że tradycyjne modele oparte na zagrożeniach, takie jak Cox Proportional Hazards (CPH), nie są zaprojektowane do przewidywania czasu do zdarzenia, ale raczej do wnioskowania o wpływie zmiennych (korelacji) na i) obserwacje zdarzeń, a zatem ii) krzywą przeżycia . Dlaczego? Spójrz na MLE CPH.
Dlatego jeśli chcesz bardziej bezpośrednio przewidzieć coś w rodzaju „dni do wystąpienia”, CPH może nie być wskazane; inne modele mogą lepiej służyć twojemu zadaniu, jak wspomniano w dwóch powyższych odnośnikach.
źródło
Jak powiedział @dsaxton, możesz zbudować dyskretny model czasu. Skonfigurowałeś go, aby przewidzieć p (niepowodzenie w tym dniu, pod warunkiem, że przetrwało do poprzedniego dnia). Twoje dane wejściowe dotyczą bieżącego dnia (w dowolnej reprezentacji), np. Jedno kodowanie na gorąco, liczba całkowita, ... Splajn ... Jak również inne zmienne niezależne, które możesz chcieć
Więc tworzysz rzędy danych, dla każdej próbki, która przetrwała do czasu t-1, czy to umarło w czasie t (0/1).
Więc teraz prawdopodobieństwo przeżycia do czasu T jest iloczynem p (nie umieraj w czasie t podanym nie umarło przy t-1) dla t = 1 do T. To znaczy, że przewidujesz T ze swojego modelu, a następnie pomnożyć razem.
Powiedziałbym, że powodem, dla którego nie jest takim pomysłem bezpośrednie przewidywanie czasu do awarii, jest ukryta struktura problemu. Np. Co wpisujesz dla maszyn, które nie zawiodły. Podstawową strukturą są w rzeczywistości niezależne zdarzenia: niepowodzenie w czasie t podane nie zawiodło do t-1. Na przykład jeśli założymy, że jest stała, krzywa przeżycia staje się wykładnicza (patrz modele zagrożeń)
Zwróć uwagę, że możesz modelować w 10-minutowych odstępach lub agregować problem klasyfikacji do poziomu dziennego.
źródło