Je sais que les modèles statistiques traditionnels comme la régression des risques proportionnels de Cox et certains modèles de Kaplan-Meier peuvent être utilisés pour prédire jours jusqu'à la prochaine occurrence d'une panne par exemple d'événements , etc. -à- dire l' analyse de survie
Des questions
- Comment la version de régression de modèles d'apprentissage automatique tels que GBM, les réseaux de neurones, etc. peut-elle être utilisée pour prédire les jours avant l'occurrence d'un événement?
- Je crois que l'utilisation de jours avant l'occurrence comme variable cible et la simplification de l'exécution d'un modèle de régression ne fonctionneront pas? Pourquoi cela ne fonctionnera-t-il pas et comment le réparer?
- Peut-on convertir le problème d'analyse de survie en une classification et ensuite obtenir des probabilités de survie? Si alors comment créer la variable cible binaire?
- Quels sont les avantages et les inconvénients de l'approche d'apprentissage automatique par rapport à la régression des risques proportionnels de Cox et aux modèles Kaplan-Meier, etc.?
Imaginez des exemples de données d'entrée au format ci-dessous
Remarque:
- Le capteur envoie un ping aux données à des intervalles de 10 minutes, mais parfois des données peuvent être manquantes en raison d'un problème de réseau, etc., comme représenté par la ligne avec NA.
- var1, var2, var3 sont les prédicteurs, variables explicatives.
- failure_flag indique si la machine a échoué ou non.
- Nous avons des données des 6 derniers mois à chaque intervalle de 10 minutes pour chacun des ID de machine
ÉDITER:
La prévision de sortie attendue doit être dans le format ci-dessous
Remarque: Je veux prédire la probabilité de défaillance de chacune des machines pour les 30 prochains jours au niveau quotidien.
machine-learning
classification
survival
cox-model
kaplan-meier
GeorgeOfTheRF
la source
la source
failure_flag
.Réponses:
Pour le cas des réseaux de neurones, il s'agit d'une approche prometteuse: WTTE-RNN - Prédiction de taux de désabonnement moins hacky .
L'essence de cette méthode consiste à utiliser un réseau neuronal récurrent pour prédire les paramètres d'une distribution de Weibull à chaque pas de temps et optimiser le réseau à l'aide d'une fonction de perte qui prend en compte la censure.
L'auteur a également publié son implémentation sur Github .
la source
Jetez un œil à ces références:
https://www.stats.ox.ac.uk/pub/bdr/NNSM.pdf
http://pcwww.liv.ac.uk/~afgt/eleuteri_lyon07.pdf
Notez également que les modèles traditionnels basés sur les risques comme les risques proportionnels de Cox (CPH) ne sont pas conçus pour prédire le temps avant l'événement, mais plutôt pour déduire l'impact des variables (corrélation) contre i) les observations des événements et, par conséquent ii) une courbe de survie . Pourquoi? Regardez le MLE du CPH.
Par conséquent, si vous voulez prédire plus directement quelque chose comme «jours avant l'occurrence», CPH peut ne pas être conseillé; d'autres modèles peuvent mieux servir votre tâche comme indiqué dans les deux références ci-dessus.
la source
Comme l'a dit @dsaxton, vous pouvez créer un modèle temporel discret. Vous l'avez configuré pour prédire p (échec à ce jour étant donné survécu jusqu'à la veille). Vos entrées sont le jour en cours (dans la représentation que vous voulez), par exemple un encodage à chaud, un entier, .. Spline ... ainsi que toutes les autres variables indépendantes que vous pourriez souhaiter
Vous créez donc des lignes de données, pour chaque échantillon qui a survécu jusqu'au temps t-1, est-il mort au temps t (0/1).
Alors maintenant, la probabilité de survivre jusqu'au temps T est le produit de p (ne meurs pas au temps t donné n'est pas mort à t-1) pour t = 1 à T. C'est-à-dire que vous faites des prédictions T à partir de votre modèle, puis multiplier ensemble.
Je dirais que la raison pour laquelle ce n'est pas une telle idée de prédire directement le temps de l'échec est à cause de la structure cachée du problème. Par exemple, que saisissez-vous pour les machines qui n'ont pas échoué. La structure sous-jacente est effectivement les événements indépendants: échouer au temps t donné n'a pas échoué jusqu'à t-1. Donc, par exemple, si vous supposez qu'il est constant, votre courbe de survie devient exponentielle (voir modèles de danger)
Notez dans votre cas que vous pouvez modéliser à 10 minutes d'intervalle ou agréger le problème de classification jusqu'au niveau du jour.
la source