Prédiction de temps à époustoufloir avec Pytorch

Commencez • Méthodes • Critères d'évaluation • Ensembles de données • Installation • Références
Pycox est un package Python pour l'analyse de survie et la prédiction du temps à événement avec Pytorch, construit sur le package Torchtuples pour la formation de modèles Pytorch. Une version R de ce package est disponible sur SurvivalModels.
Le package contient des implémentations de divers modèles de survie, quelques mesures d'évaluation utiles et une collection d'ensembles de données d'événements. De plus, certains outils de prétraitement utiles sont disponibles dans le module pycox.preprocessing .
Pour commencer, vous devez d'abord installer Pytorch. Vous pouvez ensuite installer Pycox via PIP:
pip install pycoxOu, via conda:
conda install -c conda-forge pycox Nous vous recommandons de commencer par 01_introduction.ipynb, qui explique l'utilisation générale du package en termes de prétraitement, de création de réseaux neuronaux, de formation modèle et de procédure d'évaluation. Le cahier utilise la méthode LogisticHazard pour l'illustration, mais la plupart des principes se généralisent aux autres méthodes.
Alternativement, il existe de nombreux exemples répertoriés dans le dossier Exemples, ou vous pouvez suivre le tutoriel basé sur le LogisticHazard :
01_introduction.ipynb: utilisation générale du package en termes de prétraitement, de création de réseaux de neurones, de formation modèle et de procédure d'évaluation.
02_introduction.ipynb: schéma de discrétisation basé sur le quantile, tuples imbriqués avec tt.tuplefy , intégration d'entités de variables catégorielles et taux d'apprentissage cyclique.
03_network_architectures.ipynb: étendre le framework avec des réseaux personnalisés et des fonctions de perte personnalisées. L'exemple combine un autoencoder avec un réseau de survie et considère une perte qui combine la perte d'autoencodeur avec la perte du LogisticHazard .
04_mnist_dataloaders_cnn.ipynb: Utilisation de dataloaders et réseaux convolutionnels pour l'ensemble de données MNIST. Nous répétons les simulations de [8] où chaque chiffre définit le paramètre d'échelle d'une distribution exponentielle.
Les méthodes suivantes sont disponibles dans le module pycox.methods .
| Méthode | Description | Exemple |
|---|---|---|
| Cote | Cox-Time est un modèle de risque relatif qui étend la régression de Cox au-delà des risques proportionnels [1]. | carnet de notes |
| Coxcc | COX-CC est une version proportionnelle du modèle COX-Time [1]. | carnet de notes |
| Coxph (profonde) | COXPH est un modèle de risques proportionnels Cox également appelé profonde [2]. | carnet de notes |
| Pchazard | Le modèle de danger constant par morceaux (H-Hazard) [12] suppose que la fonction de danger en temps continu est constante dans des intervalles prédéfinis. Il est similaire aux modèles exponentiels par morceaux [11] et Peann [14], mais avec une activation Softplus au lieu de la fonction exponentielle. | carnet de notes |
| Méthode | Description | Exemple |
|---|---|---|
| Logistichazard (NNET-Survie) | La méthode de la logistique paramétrisez les dangers discrets et optimiser la probabilité de survie [12] [7]. Il est également appelé régression logistique partielle [13] et NNET-Survival [8]. | carnet de notes |
| PMF | La méthode PMF paramétrait la fonction de masse de probabilité (PMF) et optimise la probabilité de survie [12]. C'est le fondement de méthodes telles que Deephit et MTLR. | carnet de notes |
| Deephit, Deephitsingle | Deephit est une méthode PMF avec une perte pour un classement amélioré qui peut gérer les risques concurrents [3]. | single concurrent |
| Mtlr (n-mtlr) | La régression logistique multi-tâches (neuronale) est une méthode PMF proposée par [9] et [10]. | carnet de notes |
| BCESURV | Une méthode représentant un ensemble de classificateurs binaires qui éliminent les individus tels qu'ils sont censurés [15]. La perte est l'entropie croisée binaire des estimations de survie à un ensemble de moments discrets, avec des cibles qui sont des indicateurs de survie à chaque fois. | bs_example |
Les mesures d'évaluation suivantes sont disponibles avec pycox.evalutation.EvalSurv .
| Métrique | Description |
|---|---|
| concordance_td | L'indice de concordance dépendant du temps évalué aux heures de l'événement [4]. |
| brier_score | Le score de Brier IPCW (probabilité inverse de censurer le score de Brier pondéré) [5] [6] [15]. Voir la section 3.1.2 de [15] pour plus de détails. |
| NBLL | Le log-likelihood binomial ipcw (négatif) [5] [1]. C'est-à-dire que cela est moins le log-vraisemblance binomial et ne doit pas être confondu avec la distribution binomiale négative. La pondération est effectuée comme dans la section 3.1.2 de [15] pour plus de détails. |
| intégré_brier_score | Le score Brier IPCW intégré. Intégration numérique du «Brier_score» [5] [6]. |
| intégré_nbll | La vraisemblance binomiale IPCW (négative) intégrée. Intégration numérique du «NBLL» [5] [1]. |
| BRIER_SCORE_ADMIN INTERGATED_BRIER_SCORE_ADMIN | Le score de Brier administratif [15]. Fonctionne bien pour les données avec la censure administrative, ce qui signifie que tous les temps de censure sont observés. Voir cet exemple de cahier. |
| NBLL_ADMIN Integrated_NBLL_ADMIN | Le log-likelighood binomial administratif (négatif) [15]. Fonctionne bien pour les données avec la censure administrative, ce qui signifie que tous les temps de censure sont observés. Voir cet exemple de cahier. |
Une collection d'ensembles de données est disponible via le module pycox.datasets . Par exemple, le code suivant téléchargera l'ensemble de données metabric et le chargera sous la forme d'un Pandas DataFrame
from pycox import datasets
df = datasets . metabric . read_df () Le module datasets stockera les ensembles de données sous le répertoire d'installation par défaut. Vous pouvez spécifier un répertoire différent en définissant la variable d'environnement PYCOX_DATA_DIR .
| Ensemble de données | Taille | Ensemble de données | Source de données |
|---|---|---|---|
| flchain | 6 524 | Le dosage de l'ensemble de données de la chaîne légère libre de sérum (FLCHAIN). Voir [1] pour le prétraitement. | source |
| gbsg | 2 232 | Le groupe d'étude du cancer du sein Rotterdam & allemand. Voir [2] pour plus de détails. | source |
| kkbox | 2 814 735 | Un ensemble de données de survie créé à partir du WSDM - Churn Prediction Challenge 2017 de KKBOX avec la censure administrative. Voir [1] et [15] pour plus de détails. Par rapport à KKBOX_V1, cet ensemble de données a plus de covariables et de temps de censure. Remarque: vous avez besoin d'identification Kaggle pour accéder à l'ensemble de données. | source |
| kkbox_v1 | 2 646 746 | Un ensemble de données de survie créé à partir du WSDM - Churn Prediction Challenge 2017 de KKBOX. Voir [1] pour plus de détails. Ce n'est pas la version préférée de cet ensemble de données. Utilisez plutôt KKBOX. Remarque: vous avez besoin d'identification Kaggle pour accéder à l'ensemble de données. | source |
| métabrique | 1 904 | La taxonomie moléculaire du Consortium international du cancer du sein (métabrique). Voir [2] pour plus de détails. | source |
| NWTCO | 4 028 | Données de la tumeur nationale de Wilm (NWTCO). | source |
| soutien | 8 873 | Étude pour comprendre les résultats des préférences des pronostics et les risques de traitement (soutien). Voir [2] pour plus de détails. | source |
| Ensemble de données | Taille | Ensemble de données | Source de données |
|---|---|---|---|
| rr_nl_nph | 25 000 | Ensemble de données de l'étude de simulation dans [1]. Il s'agit d'une étude de simulation à temps continu avec des temps d'événement tirés d'un modèle de risques non proportionnels non linéaire à risque relatif (RRNLNPH). | Simstudynonlinearnonph |
| sac3 | 100 000 | Ensemble de données de l'étude de simulation dans [12]. Il s'agit d'un ensemble de données de temps discret avec 1000 temps d'événements possibles. | Simstudysaccensorconst |
| sac_admin5 | 50 000 | Ensemble de données de l'étude de simulation dans [15]. Il s'agit d'un ensemble de données de temps discret avec 1000 temps d'événements possibles. Très similaire à «SAC3», mais avec moins de covariables de survie et de censure administrative déterminée par 5 covariables. | Simstudysacadmin |
Remarque: Ce package en est encore à ses débuts de développement, alors n'hésitez pas à signaler tout problème que vous pourriez rencontrer.
Le package ne fonctionne que pour Python 3.6+.
Avant d'installer Pycox , veuillez installer Pytorch (version> = 1.1). Vous pouvez ensuite installer le package avec
pip install pycox Pour la version Bleeding Edge, vous pouvez plutôt installer directement à partir de GitHub (envisagez d'ajouter --force-reinstall ):
pip install git+git://github.com/havakv/pycox.gitL'installation de la source dépend de Pytorch, alors assurez-vous qu'il est installé. Ensuite, cloner et installer avec
git clone https://github.com/havakv/pycox.git
cd pycox
pip install .[1] Håvard Kvamme, Ørnulf Borgan et Ida Scheel. Prédiction de temps à épreuve avec les réseaux de neurones et la régression de Cox. Journal of Machine Learning Research , 20 (129): 1–30, 2019. [Paper]
[2] Jared L. Katzman, Uri Shaham, Alexander Cloninger, Jonathan Bates, Tingting Jiang et Yuval Kluger. Profesurv: Système de recommandation de traitement personnalisé utilisant un réseau de neurones profonds proportionnels de Cox. BMC Medical Research Methodology , 18 (1), 2018. [Papier]
[3] Changhee Lee, William R Zame, Jinsung Yoon et Mihaela van der Schaar. Deephit: une approche d'apprentissage en profondeur de l'analyse de survie avec des risques concurrents. En trente-deuxième conférence AAAI sur l'intelligence artificielle , 2018. [Paper]
[4] Laura Antolini, Patrizia Boracchi et Elia Biganzoli. Un indice de discrimination dépendant du temps pour les données de survie. Statistiques en médecine , 24 (24): 3927–3944, 2005. [Paper]
[5] Erika Graf, Claudia Schmoor, Willi Sauerbrei et Martin Schumacher. Évaluation et comparaison des schémas de classification pronostique pour les données de survie. Statistiques en médecine , 18 (17-18): 2529–2545, 1999. [Paper]
[6] Thomas A. Gerds et Martin Schumacher. Estimation cohérente du score de Brier attendu dans les modèles de survie généraux avec des temps d'événements censurés. Journal biométrique , 48 (6): 1029–1040, 2006. [Paper]
[7] Charles C. Brown. Sur l'utilisation des variables d'indicateur pour étudier la dépendance du temps des paramètres dans un modèle de temps de réponse. Biométrie , 31 (4): 863–872, 1975. [Paper]
[8] Michael F. Gensheimer et Balasubramanian Narasimhan. Un modèle de survie à temps discret évolutif pour les réseaux de neurones. Peerj , 7: E6257, 2019. [Paper]
[9] Chun-Nam Yu, Russell Greiner, Hsiu-Chin Lin et Vickie Baracos. Apprendre les distributions de survie au cancer spécifique au patient comme une séquence de régresseurs dépendants. Dans les progrès des systèmes de traitement de l'information neuronaux 24 , pages 1845–1853. Curran Associates, Inc., 2011. [Papier]
[10] Stéphane Fotso. Réseaux de neurones profonds pour l'analyse de survie basés sur un cadre multi-tâches. ARXIV Préprint Arxiv: 1801.05512 , 2018. [Paper]
[11] Michael Friedman. Modèles exponentiels par morceaux pour les données de survie avec des covariables. The Annals of Statistics , 10 (1): 101–113, 1982. [Paper]
[12] Håvard Kvamme et Ørnulf Borgan. Prédiction de survie à temps continu et discret avec les réseaux de neurones. ARXIV Préprint Arxiv: 1910.06724 , 2019. [Paper]
[13] Elia Biganzoli, Patrizia Boracchi, Luigi Mariani et Ettore Marubini. Réseaux de neurones à l'avance pour l'analyse des données de survie censurées: une approche de régression logistique partielle. Statistics in Medicine , 17 (10): 1169–1186, 1998. [Paper]
[14] Marco Fornili, Federico Ambrogi, Patrizia Boracchi et Elia Biganzoli. Réseaux de neurones artificiels exponentiels par morceaux (PEANN) pour la modélisation de la fonction de danger avec les bonnes données censurées. Méthodes d'intelligence informatique pour la bioinformatique et la biostatistique , pages 125–136, 2014. [Papier]
[15] Håvard Kvamme et Ørnulf borgan. Le score de Brier sous censure administrative: problèmes et solutions. ARXIV Préprint Arxiv: 1912.08581 , 2019. [Papier]