Vorhersage von Zeit zu Ereignis mit Pytorch

Erste Schritte • Methoden • Bewertungskriterien • Datensätze • Installation • Referenzen
Pycox ist ein Python-Paket für die Überlebensanalyse und die Zeit-zu-Event-Vorhersage mit Pytorch, das auf dem TorchtUples-Paket für das Training von Pytorch-Modellen basiert. Eine R -Version dieses Pakets ist bei SurvivalModels erhältlich.
Das Paket enthält Implementierungen verschiedener Überlebensmodelle, einige nützliche Bewertungsmetriken und eine Sammlung von Datensätzen für Veranstaltungszeiten. Darüber hinaus sind einige nützliche Vorverarbeitungswerkzeuge im pycox.preprocessing -Modul erhältlich.
Um loszulegen, müssen Sie zuerst Pytorch installieren. Sie können dann Pycox über PIP installieren:
pip install pycoxOder über Conda:
conda install -c conda-forge pycox Wir empfehlen, mit 01_Indection.ipynb zu beginnen, was die allgemeine Verwendung des Pakets in Bezug auf Vorverarbeitung, Erstellung neuronaler Netzwerke, Modelltraining und Bewertungsverfahren erläutert. Das Notizbuch verwendet die LogisticHazard -Methode zur Illustration, aber die meisten Prinzipien verallgemeinern die anderen Methoden.
Alternativ sind viele Beispiele im Ordner Beispiele aufgeführt, oder Sie können das Tutorial basierend auf dem LogisticHazard befolgen:
01_Indection.IPYNB: Allgemeine Verwendung des Pakets in Bezug auf die Vorverarbeitung, Erstellung neuronaler Netzwerke, Modelltraining und Bewertungsverfahren.
02_Itroduction.IPynb: Quantilbasiertes Diskretisierungsschema, verschachtelte Tupel mit tt.tuplefy , Entitätsinstitut von kategorialen Variablen und zyklische Lernraten.
03_network_architektures.ipynb: Erweiterung des Frameworks mit benutzerdefinierten Netzwerken und benutzerdefinierten Verlustfunktionen. Das Beispiel kombiniert einen Autoencodierer mit einem Überlebensnetz und berücksichtigt einen Verlust, der den AutoCodiererverlust mit dem Verlust des LogisticHazard kombiniert.
04_MNIST_DATALOADERS_CNN.IPYNB: Verwenden von Dataloader und Faltungsnetzwerken für den MNIST -Datensatz. Wir wiederholen die Simulationen von [8], wobei jede Ziffer den Skalenparameter einer Exponentialverteilung definiert.
Die folgenden Methoden sind im pycox.methods -Modul verfügbar.
| Verfahren | Beschreibung | Beispiel |
|---|---|---|
| Versammlung | Die Cox-Zeit ist ein relatives Risikomodell, das die Cox-Regression über die proportionalen Gefahren hinaus erweitert [1]. | Notizbuch |
| Coxcc | COX-CC ist eine proportionale Version des Cox-Zeit-Modells [1]. | Notizbuch |
| Coxph (DeepSurv) | Coxph ist ein Cox -proportionales Gefahrenmodell, das auch als DeepSurv bezeichnet wird [2]. | Notizbuch |
| Pchazard | Das stückweise Modell mit konstanter Gefahr (PC-Hazard) [12] geht davon aus, dass die kontinuierliche Gefährdungsfunktion in vordefinierten Intervallen konstant ist. Es ähnelt den stückweise exponentiellen Modellen [11] und Peand [14], jedoch mit einer Softplus -Aktivierung anstelle der exponentiellen Funktion. | Notizbuch |
| Verfahren | Beschreibung | Beispiel |
|---|---|---|
| Logistichazard (Nnet-Survival) | Die logistische Hazard-Methode parametrisieren die diskreten Gefahren und optimiert die Überlebenswahrscheinlichkeit [12] [7]. Es wird auch als partielle logistische Regression [13] und Nnet-Survival [8] bezeichnet. | Notizbuch |
| PMF | Die PMF -Methode parametrisieren die Wahrscheinlichkeitsmassenfunktion (PMF) und optimiert die Überlebenswahrscheinlichkeit [12]. Es ist die Grundlage von Methoden wie Deephit und MTLR. | Notizbuch |
| Deephit, DeepHitsingle | Deephit ist eine PMF -Methode mit einem Verlust für ein verbessertes Ranking, das konkurrierende Risiken bewältigen kann [3]. | Single konkurrieren |
| MTLR (N-MTLR) | Die (neuronale) logistische Regression mit mehreren Aufgaben ist eine von [9] und [10] vorgeschlagene PMF-Methoden. | Notizbuch |
| Bcesurv | Eine Methode, die eine Reihe von Binärklassifizierern darstellt, die Individuen beseitigen, während sie zensiert sind [15]. Der Verlust ist die binäre Kreuzentropie der Überlebensschätzungen zu einer Reihe von diskreten Zeiten, wobei Ziele, die Indikatoren für das Überleben jedes Mal sind. | BS_EXPAM |
Die folgenden Bewertungsmetriken sind mit pycox.evalutation.EvalSurv erhältlich.
| Metrisch | Beschreibung |
|---|---|
| concordance_td | Der zeitabhängige Konkordanzindex wurde zu den Veranstaltungszeiten bewertet [4]. |
| Brier_Score | Der IPCW Brier Score (inverse Wahrscheinlichkeit einer Zensur gewichteten Brier -Score) [5] [6] [15]. Weitere Informationen finden Sie in Abschnitt 3.1.2 von [15]. |
| nbll | Das IPCW (negative) Binomial-Log-Likelihood [5] [1]. Dies ist abzüglich der Binomial-Log-Likelihood und sollte nicht mit der negativen Binomialverteilung verwechselt werden. Die Gewichtung erfolgt wie in Abschnitt 3.1.2 von [15] für Einzelheiten. |
| integrated_brier_score | Der integrierte IPCW Brier Score. Numerische Integration der `brier_score` [5] [6]. |
| integrated_nbll | Das integrierte IPCW (negative) Binomial-Log-Likelihood. Numerische Integration der `nbll` [5] [1]. |
| Brier_Score_admin integrated_brier_score_admin | Die Verwaltungsbewertung von Brier [15]. Funktioniert gut für Daten mit administratives Zensur, was bedeutet, dass alle Zensurzeiten beobachtet werden. Siehe dieses Beispiel Notebook. |
| nbll_admin integrated_nbll_admin | Die administrative (negative) Binomial-Log-Likelihood [15]. Funktioniert gut für Daten mit administratives Zensur, was bedeutet, dass alle Zensurzeiten beobachtet werden. Siehe dieses Beispiel Notebook. |
Eine Sammlung von Datensätzen ist über das pycox.datasets -Modul verfügbar. Der folgende Code lädt beispielsweise den metabric -Datensatz herunter und lädt ihn in Form eines Pandas -Datenframe
from pycox import datasets
df = datasets . metabric . read_df () Das datasets -Modul speichert Datensätze im Installationsverzeichnis standardmäßig. Sie können ein anderes Verzeichnis angeben, indem Sie die Umgebungsvariable PYCOX_DATA_DIR festlegen.
| Datensatz | Größe | Datensatz | Datenquelle |
|---|---|---|---|
| Blchain | 6,524 | Der Assay von serumfreier leichter Kette (FLCHAIN) -DATASET. Siehe [1] zur Vorverarbeitung. | Quelle |
| GBSG | 2,232 | Die Rotterdam & Deutsche Brustkrebs -Studiengruppe. Siehe [2] für Details. | Quelle |
| KKBox | 2.814.735 | Ein Überlebensdatensatz aus der WSDM -KKBOX -CHURN Prediction Challenge 2017 mit administrativem Zensur. Siehe [1] und [15] für Details. Im Vergleich zu KKBOX_V1 verfügt dieser Datensatz über mehr Kovariaten und Zensurzeiten. Hinweis: Sie benötigen Kaggle -Anmeldeinformationen, um auf den Datensatz zuzugreifen. | Quelle |
| KKBOX_V1 | 2.646.746 | Ein Überlebensdatensatz aus der WSDM -KKBOX -CHURN Prediction Challenge 2017. Siehe [1] für Details. Dies ist nicht die bevorzugte Version dieses Datensatzes. Verwenden Sie stattdessen KKBox. Hinweis: Sie benötigen Kaggle -Anmeldeinformationen, um auf den Datensatz zuzugreifen. | Quelle |
| metabric | 1.904 | Die molekulare Taxonomie des internationalen Konsortiums des Brustkrebs (Metabric). Siehe [2] für Details. | Quelle |
| NWTCO | 4,028 | Daten aus dem Tumor des National Wilm (NWTCO). | Quelle |
| Unterstützung | 8,873 | Studie zum Verständnis der Ergebnisse der Prognosen -Präferenzen und der Behandlungsrisiken (Unterstützung). Siehe [2] für Details. | Quelle |
| Datensatz | Größe | Datensatz | Datenquelle |
|---|---|---|---|
| RR_NL_NPH | 25.000 | Datensatz aus der Simulationsstudie in [1]. Dies ist eine Simulationsstudie mit kontinuierlicher Zeit mit Ereigniszeiten aus einem relativen Risiko, das nichtlinear nicht profportional Gefahrenmodell (RRNLNPH) ist. | Simstudynonlinearnonph |
| SAC3 | 100.000 | Datensatz aus der Simulationsstudie in [12]. Dies ist ein diskreter Zeit-Datensatz mit 1000 möglichen Ereigniszeiten. | SIMSTUDYSACCENSORCONST |
| sac_admin5 | 50.000 | Datensatz aus der Simulationsstudie in [15]. Dies ist ein diskreter Zeit-Datensatz mit 1000 möglichen Ereigniszeiten. Sehr ähnlich wie "sac3", aber mit weniger Überlebenskovariaten und administrativen Zensur, die durch 5 Kovariaten bestimmt werden. | Simstudysacadmin |
Hinweis: Dieses Paket befindet sich noch in den frühen Entwicklungsstadien. Bitte zögern Sie also nicht, Probleme zu melden, die Sie möglicherweise haben.
Das Paket funktioniert nur für Python 3.6+.
Vor dem Installieren von Pycox installieren Sie bitte PyTorch (Version> = 1.1). Sie können das Paket dann mit installieren
pip install pycox Für die Blutungsversion können Sie stattdessen direkt über GitHub installieren (Hinzufügen --force-reinstall ):
pip install git+git://github.com/havakv/pycox.gitDie Installation aus der Quelle hängt von PyTorch ab. Stellen Sie daher sicher, dass ein installiertes sie installiert ist. Als nächstes klonen und installieren Sie mit
git clone https://github.com/havakv/pycox.git
cd pycox
pip install .[1] Håvard Kvamme, Ørnulf Borgan und Ida Scheel. Zeit-zu-Event-Vorhersage mit neuronalen Netzwerken und Cox-Regression. Journal of Machine Learning Research , 20 (129): 1–30, 2019. [Papier]
[2] Jared L. Katzman, Uri Shaham, Alexander Cloninger, Jonathan Bates, Tinging Jiang und Yuval Kluger. DeepSurv: Personalisierte Behandlungsempfehlungssystem mit einem Cox Proportional Gefahren Deep Neural Network. BMC Medical Research Methodology , 18 (1), 2018. [Papier]
[3] Changhee Lee, William R Zame, Jinsung Yoon und Mihaela van der Schaar. DeepHit: Ein tiefes Lernansatz zur Überlebensanalyse mit konkurrierenden Risiken. In zweiunddreißig Sekunden AAAI-Konferenz über künstliche Intelligenz , 2018. [Papier]
[4] Laura Antolini, Patrizia Boracchi und Elia Biganzoli. Ein zeitabhängiger Diskriminierungsindex für Überlebensdaten. Statistik in Medizin , 24 (24): 3927–3944, 2005. [Papier]
[5] Erika Graf, Claudia Schmoor, Willi Sauerbri und Martin Schumacher. Bewertung und Vergleich der prognostischen Klassifizierungsschemata für Überlebensdaten. Statistik in Medizin , 18 (17-18): 2529–2545, 1999. [Papier]
[6] Thomas A. Gerds und Martin Schumacher. Konsistente Schätzung des erwarteten Brier-Scores in allgemeinen Überlebensmodellen mit rechtszensierten Ereigniszeiten. Biometrical Journal , 48 (6): 1029–1040, 2006. [Papier]
[7] Charles C. Brown. Bei der Verwendung von Indikatorvariablen zur Untersuchung der Zeitabhängigkeit von Parametern in einem Antwort-Zeitmodell. Biometrie , 31 (4): 863–872, 1975. [Papier]
[8] Michael F. Gensheimer und Balasubramanian Narasimhan. Ein skalierbares diskretes Überlebensmodell für neuronale Netze. Peerj , 7: E6257, 2019. [Papier]
[9] Chun-Nam Yu, Russell Greiner, Hsiu-Chin Lin und Vickie Baracos. Lernpatienten- spezifische Krebsüberlebensverteilungen als Abfolge abhängiger Regressoren. In den Fortschritten in neuronalen Informationsverarbeitungssystemen 24 , Seiten 1845–1853. Curran Associates, Inc., 2011. [Papier]
[10] Stephane fotso. Tiefe neuronale Netzwerke zur Überlebensanalyse basierend auf einem Multi-Task-Framework. Arxiv Preprint Arxiv: 1801.05512 , 2018. [Papier]
[11] Michael Friedman. Stückweise exponentielle Modelle für Überlebensdaten mit Kovariaten. Die Annals of Statistics , 10 (1): 101–113, 1982. [Papier]
[12] Håvard Kvamme und Ørnulf Borgan. Kontinuierliche und diskrete Überlebensvorhersage mit neuronalen Netzwerken. Arxiv Preprint Arxiv: 1910.06724 , 2019. [Papier]
[13] Elia Biganzoli, Patrizia Boracchi, Luigi Mariani und Ettore Marubini. Feed Forward Neural Networks für die Analyse zensierter Überlebensdaten: Ein partieller logistischer Regressionsansatz. Statistik in Medizin , 17 (10): 1169–1186, 1998. [Papier]
[14] Marco Fornili, Federico Ambrogi, Patrizia Boracchi und Elia Biganzoli. Stückweise exponentielle künstliche neuronale Netzwerke (PEANN) zur Modellierung der Gefahrenfunktion mit rechts zensierten Daten. Computational Intelligence -Methoden für Bioinformatik und Biostatistik , Seiten 125–136, 2014. [Papier]
[15] Håvard Kvamme und Ørnulf Borgan. Die Brier -Punktzahl unter administratives Zensur: Probleme und Lösungen. Arxiv Preprint Arxiv: 1912.08581 , 2019. [Papier]