Predicción de tiempo de evento con Pytorch

Inicio • Métodos • Criterios de evaluación • conjuntos de datos • Instalación • Referencias
Pycox es un paquete de Python para el análisis de supervivencia y la predicción de tiempo de evento con Pytorch, construido en el paquete TorchTuple para entrenamiento de modelos Pytorch. Una versión R de este paquete está disponible en SurvivalModels.
El paquete contiene implementaciones de varios modelos de supervivencia, algunas métricas de evaluación útiles y una colección de conjuntos de datos de tiempo de evento. Además, algunas herramientas de preprocesamiento útiles están disponibles en el módulo pycox.preprocessing .
Para comenzar, primero debe instalar Pytorch. Luego puede instalar Pycox a través de PIP:
pip install pycoxO, a través de conda:
conda install -c conda-forge pycox Recomendamos comenzar con 01_introduction.ipynb, que explica el uso general del paquete en términos de preprocesamiento, creación de redes neuronales, capacitación modelo y procedimiento de evaluación. El cuaderno utiliza el método LogisticHazard para la ilustración, pero la mayoría de los principios se generalizan a los otros métodos.
Alternativamente, hay muchos ejemplos enumerados en la carpeta de ejemplos, o puede seguir el tutorial basado en LogisticHazard :
01_introduction.ipynb: uso general del paquete en términos de preprocesamiento, creación de redes neuronales, capacitación modelo y procedimiento de evaluación.
02_introduction.ipynb: esquema de discretización basado en cuantiles, tuplas anidadas con tt.tuplefy , incrustación de entidad de variables categóricas y tasas de aprendizaje cíclico.
03_network_architectures.ipynb: extender el marco con redes personalizadas y funciones de pérdida personalizada. El ejemplo combina un autoencoder con una red de supervivencia, y considera una pérdida que combina la pérdida de autoencoder con la pérdida del LogisticHazard .
04_MNIST_DATALOADERS_CNN.IPYNB: Uso de dataLoaders y redes convolucionales para el conjunto de datos MNIST. Repetimos las simulaciones de [8] donde cada dígito define el parámetro de escala de una distribución exponencial.
Los siguientes métodos están disponibles en el módulo pycox.methods .
| Método | Descripción | Ejemplo |
|---|---|---|
| Tiempo de calma | El tiempo de Cox es un modelo de riesgo relativo que extiende la regresión de Cox más allá de los peligros proporcionales [1]. | computadora portátil |
| COXCC | Cox-CC es una versión proporcional del modelo de tiempo de Cox [1]. | computadora portátil |
| Coxph (Deepsurv) | COXPH es un modelo de riesgos proporcionales de Cox también conocido como profundo [2]. | computadora portátil |
| Pchazard | El modelo de peligro constante por partes (PC-Hazard) [12] supone que la función de peligro de tiempo continuo es constante en intervalos predefinidos. Es similar a los modelos exponenciales por partes [11] y Peann [14], pero con una activación blanda en lugar de la función exponencial. | computadora portátil |
| Método | Descripción | Ejemplo |
|---|---|---|
| Logistichazard (NNET-Survival) | El método logístico-de, parametriza los peligros discretos y optimiza la probabilidad de supervivencia [12] [7]. También se llama regresión logística parcial [13] y NNET-Survival [8]. | computadora portátil |
| PMF | El método PMF parametriza la función de masa de probabilidad (PMF) y optimiza la probabilidad de supervivencia [12]. Es la base de métodos como Deephit y MTLR. | computadora portátil |
| Profundo, profundo | DeepHit es un método PMF con una pérdida para una clasificación mejorada que puede manejar riesgos en competencia [3]. | Single Competing |
| MTLR (N-MTLR) | La regresión logística multitarea (neural) son los métodos de PMF propuestos por [9] y [10]. | computadora portátil |
| Bcesurv | Un método que representa un conjunto de clasificadores binarios que eliminan a las personas a medida que se censuran [15]. La pérdida es la entropía cruzada binaria de las estimaciones de supervivencia en un conjunto de momentos discretos, con objetivos que son indicadores de sobrevivir cada vez. | bs_example |
Las siguientes métricas de evaluación están disponibles con pycox.evalutation.EvalSurv .
| Métrico | Descripción |
|---|---|
| Concordance_td | El índice de concordancia dependiente del tiempo evaluado en los tiempos del evento [4]. |
| brier_score | El puntaje IPCW Brier (probabilidad inversa de censurar la puntuación de Brier ponderada) [5] [6] [15]. Consulte la Sección 3.1.2 de [15] para más detalles. |
| nbll | La probabilidad binomial IPCW (negativa) [5] [1]. Es decir, esto es menos la probabilidad binomial log y no debe confundirse con la distribución binomial negativa. La ponderación se realiza como en la Sección 3.1.2 de [15] para más detalles. |
| integrado_brier_score | El puntaje integrado de IPCW Brier. Integración numérica del `Brier_Score` [5] [6]. |
| integrado_nbll | La probabilidad binomial IPCW (negativa) integrada. Integración numérica del `nbll` [5] [1]. |
| brier_score_admin integrado_brier_score_admin | El puntaje administrativo de Brier [15]. Funciona bien para datos con censura administrativa, lo que significa que se observan todos los tiempos de censura. Vea este cuaderno de ejemplo. |
| nbll_admin integrado_nbll_admin | La probabilidad binomial administrativa (negativa) binomial [15]. Funciona bien para datos con censura administrativa, lo que significa que se observan todos los tiempos de censura. Vea este cuaderno de ejemplo. |
Una colección de conjuntos de datos está disponible a través del módulo pycox.datasets . Por ejemplo, el siguiente código descargará el conjunto de datos metabric y lo cargará en forma de un marco de datos PANDAS
from pycox import datasets
df = datasets . metabric . read_df () El módulo datasets almacenará conjuntos de datos en el directorio de instalación de forma predeterminada. Puede especificar un directorio diferente configurando la variable de entorno PYCOX_DATA_DIR .
| Conjunto de datos | Tamaño | Conjunto de datos | Fuente de datos |
|---|---|---|---|
| flchain | 6.524 | El ensayo del conjunto de datos de la cadena ligera libre de suero (flchain). Ver [1] para el preprocesamiento. | fuente |
| gbsg | 2,232 | El Grupo de Estudio de Cáncer de Mama Rotterdam y alemán. Ver [2] para más detalles. | fuente |
| kkbox | 2,814,735 | Un conjunto de datos de supervivencia creado a partir del WSDM - Kkbox's Churn Prediction Challenge 2017 con censura administrativa. Ver [1] y [15] para más detalles. En comparación con KKBOX_V1, este conjunto de datos tiene más covariables y tiempos de censura. Nota: Necesita credenciales de Kaggle para acceder al conjunto de datos. | fuente |
| kkbox_v1 | 2,646,746 | Un conjunto de datos de supervivencia creado a partir del WSDM - Kkbox's Churn Prediction Challenge 2017. Ver [1] para más detalles. Esta no es la versión preferida de este conjunto de datos. Use kkbox en su lugar. Nota: Necesita credenciales de Kaggle para acceder al conjunto de datos. | fuente |
| metabric | 1.904 | La taxonomía molecular del Consorcio Internacional del Cáncer de Mama (Metabric). Ver [2] para más detalles. | fuente |
| NWTCO | 4,028 | Datos del Tumor Nacional de WILM (NWTCO). | fuente |
| apoyo | 8.873 | Estudio para comprender los resultados de las preferencias de los pronósticos y los riesgos del tratamiento (apoyo). Ver [2] para más detalles. | fuente |
| Conjunto de datos | Tamaño | Conjunto de datos | Fuente de datos |
|---|---|---|---|
| rr_nl_nph | 25,000 | Conjunto de datos del estudio de simulación en [1]. Este es un estudio de simulación de tiempo continuo con tiempos de eventos extraídos de un modelo de riesgos no proporcionales de riesgo relativo (rrnlnph). | Simstudynonlinearnonph |
| sac3 | 100,000 | Conjunto de datos del estudio de simulación en [12]. Este es un conjunto de datos de tiempo discreto con 1000 posibles tiempos de eventos. | Simstudysaccensorconst |
| sac_admin5 | 50,000 | Conjunto de datos del estudio de simulación en [15]. Este es un conjunto de datos de tiempo discreto con 1000 posibles tiempos de eventos. Muy similar a `SAC3`, pero con menos covariables de supervivencia y censura administrativa determinada por 5 covariables. | Simstudysacadmin |
Nota: Este paquete todavía está en sus primeras etapas de desarrollo, así que no dude en informar cualquier problema que pueda experimentar.
El paquete solo funciona para Python 3.6+.
Antes de instalar Pycox , instale Pytorch (versión> = 1.1). Luego puede instalar el paquete con
pip install pycox Para la versión Bleeding Edge, en su lugar puede instalar directamente desde GitHub (considere agregar --force-reinstall ):
pip install git+git://github.com/havakv/pycox.gitLa instalación desde la fuente depende de Pytorch, así que asegúrese de que esté instalada. A continuación, clon e instale con
git clone https://github.com/havakv/pycox.git
cd pycox
pip install .[1] Håvard Kvamme, Ørnulf Borgan e Ida Scheel. Predicción de tiempo de evento con redes neuronales y regresión de Cox. Journal of Machine Learning Research , 20 (129): 1–30, 2019. [Documento]
[2] Jared L. Katzman, Uri Shaham, Alexander Cloninger, Jonathan Bates, Tingting Jiang y Yuval Kluger. DeepSurv: sistema de recomendación de tratamiento personalizado utilizando una red neuronal profunda de riesgos proporcionales de Cox. BMC Medical Research Methodology , 18 (1), 2018. [Documento]
[3] Changhee Lee, William R Zame, Jinsung Yoon y Mihaela van der Schaar. Deephit: un enfoque de aprendizaje profundo para el análisis de supervivencia con riesgos competitivos. En la Conferencia AAAI sobre inteligencia artificial de treinta y segundo , 2018. [Documento]
[4] Laura Antolini, Patrizia Boracchi y Elia Biganzoli. Un índice de discriminación dependiente del tiempo para los datos de supervivencia. Estadísticas en medicina , 24 (24): 3927–3944, 2005. [Documento]
[5] Erika Graf, Claudia Schmoor, Willi Sauerbrei y Martin Schumacher. Evaluación y comparación de esquemas de clasificación pronóstica para los datos de supervivencia. Estadísticas en medicina , 18 (17-18): 2529–2545, 1999. [Documento]
[6] Thomas A. Gerds y Martin Schumacher. Estimación consistente de la puntuación Brier esperada en los modelos de supervivencia general con tiempos de evento censurados a la derecha. Biometrical Journal , 48 (6): 1029–1040, 2006. [Documento]
[7] Charles C. Brown. Sobre el uso de variables indicadoras para estudiar la dependencia del tiempo de los parámetros en un modelo de tiempo de respuesta. Biometrics , 31 (4): 863–872, 1975. [Documento]
[8] Michael F. Gensheimer y Balasubramanian Narasimhan. Un modelo de supervivencia de tiempo discreto escalable para redes neuronales. Peerj , 7: E6257, 2019. [Documento]
[9] Chun-Nam Yu, Russell Greiner, Hsiu-Chin Lin y Vickie Baracos. Aprender distribuciones de supervivencia sobre el cáncer específicas del paciente como una secuencia de regresores dependientes. En Avances en Sistemas de Procesamiento de Información Neural 24 , páginas 1845–1853. Curran Associates, Inc., 2011. [Documento]
[10] Fotso de Stephane. Redes neuronales profundas para el análisis de supervivencia basados en un marco de tareas múltiples. Arxiv Preprint ARXIV: 1801.05512 , 2018. [Documento]
[11] Michael Friedman. Modelos exponenciales por partes para datos de supervivencia con covariables. The Annals of Statistics , 10 (1): 101–113, 1982. [Documento]
[12] Håvard Kvamme y Ørnulf Borgan. Predicción de supervivencia continua y discreta con redes neuronales. Arxiv Preprint Arxiv: 1910.06724 , 2019. [Documento]
[13] Elia Biganzoli, Patrizia Boracchi, Luigi Mariani y Ettore Marubini. Alimentar las redes neuronales para el análisis de los datos de supervivencia censurados: un enfoque de regresión logística parcial. Estadísticas en medicina , 17 (10): 1169–1186, 1998. [Documento]
[14] Marco Fornili, Federico Ambrogi, Patrizia Boracchi y Elia Biganzoli. Redes neuronales artificiales exponenciales por partes (PEANN) para modelar la función de peligro con datos censurados correctamente. Métodos de inteligencia computacional para bioinformática y bioestadística , páginas 125–136, 2014. [Documento]
[15] Håvard Kvamme y Ørnulf Borgan. El puntaje Brier bajo censura administrativa: problemas y soluciones. Arxiv Preprint ARXIV: 1912.08581 , 2019. [Documento]