Prediksi waktu-ke-acara dengan pytorch

Memulai • Metode • Kriteria Evaluasi • Dataset • Instalasi • Referensi
Pycox adalah paket Python untuk analisis bertahan hidup dan prediksi waktu-ke-acara dengan Pytorch, dibangun di atas paket TorchTuples untuk melatih model Pytorch. Versi R dari paket ini tersedia di SurvivalModels.
Paket ini berisi implementasi berbagai model kelangsungan hidup, beberapa metrik evaluasi yang berguna, dan kumpulan set data waktu. Selain itu, beberapa alat preprocessing yang berguna tersedia dalam modul pycox.preprocessing .
Untuk memulai, pertama -tama perlu menginstal Pytorch. Anda kemudian dapat menginstal pycox melalui PIP:
pip install pycoxAtau, melalui conda:
conda install -c conda-forge pycox Kami merekomendasikan untuk memulai dengan 01_introduction.ipynb, yang menjelaskan penggunaan umum paket dalam hal preprocessing, penciptaan jaringan saraf, pelatihan model, dan prosedur evaluasi. Buku catatan menggunakan metode LogisticHazard untuk ilustrasi, tetapi sebagian besar prinsip digeneralisasi ke metode lain.
Atau, ada banyak contoh yang tercantum dalam folder contoh, atau Anda dapat mengikuti tutorial berdasarkan LogisticHazard :
01_introduction.ipynb: Penggunaan umum paket dalam hal preprocessing, penciptaan jaringan saraf, pelatihan model, dan prosedur evaluasi.
02_introduction.ipynb: Skema diskritisasi berbasis kuantil, tupel bersarang dengan tt.tuplefy , entitas embedding variabel kategori, dan tingkat pembelajaran siklus.
03_network_architectures.ipynb: Memperluas kerangka kerja dengan jaringan khusus dan fungsi kerugian khusus. Contoh ini menggabungkan autoencoder dengan jaringan survival, dan mempertimbangkan kerugian yang menggabungkan kehilangan autoencoder dengan hilangnya LogisticHazard .
04_mnist_dataloaders_cnn.ipynb: Menggunakan Dataloaders dan jaringan konvolusional untuk set data MNIST. Kami mengulangi simulasi [8] di mana setiap digit menentukan parameter skala distribusi eksponensial.
Metode berikut tersedia dalam modul pycox.methods .
| Metode | Keterangan | Contoh |
|---|---|---|
| CoxTime | Cox-Time adalah model risiko relatif yang memperluas regresi Cox di luar bahaya proporsional [1]. | buku catatan |
| Coxcc | Cox-CC adalah versi proporsional dari model Cox-Time [1]. | buku catatan |
| COXPH (DeepSurv) | COXPH adalah model bahaya proporsional Cox juga disebut sebagai DeepSurv [2]. | buku catatan |
| Pchazard | Model Piecewise Constant Hazard (PC-Hazard) [12] mengasumsikan bahwa fungsi bahaya waktu kontinu konstan dalam interval yang telah ditentukan. Ini mirip dengan model eksponensial piecewise [11] dan Peann [14], tetapi dengan aktivasi softplus alih -alih fungsi eksponensial. | buku catatan |
| Metode | Keterangan | Contoh |
|---|---|---|
| LOGISTICHAZARD (NNET-SURVIVAL) | Metode logistik-bahaya parametrisasi bahaya diskrit dan mengoptimalkan kemungkinan kelangsungan hidup [12] [7]. Ini juga disebut regresi logistik parsial [13] dan nnet-survival [8]. | buku catatan |
| PMF | Metode PMF parametrisasi fungsi probabilitas massa (PMF) dan mengoptimalkan kemungkinan kelangsungan hidup [12]. Ini adalah fondasi metode seperti DEEPHIT dan MTLR. | buku catatan |
| DEEPHIT, DEEPHITSINGLE | DEEPHIT adalah metode PMF dengan kerugian untuk peringkat yang lebih baik yang dapat menangani risiko yang bersaing [3]. | lajang bersaing |
| MTLR (N-MTLR) | Regresi logistik multi-tugas (saraf) adalah metode PMF yang diusulkan oleh [9] dan [10]. | buku catatan |
| BCESURV | Metode yang mewakili satu set pengklasifikasi biner yang menghapus individu saat mereka disensor [15]. Kerugiannya adalah entropi silang biner dari perkiraan kelangsungan hidup pada satu set waktu diskrit, dengan target yang merupakan indikator bertahan hidup setiap kali. | bs_example |
Metrik evaluasi berikut tersedia dengan pycox.evalutation.EvalSurv .
| Metrik | Keterangan |
|---|---|
| Concordance_td | Indeks konkordansi yang bergantung pada waktu dievaluasi pada waktu acara [4]. |
| Brier_score | Skor IPCW Brier (probabilitas terbalik menyensor skor Brier tertimbang) [5] [6] [15]. Lihat Bagian 3.1.2 dari [15] untuk detailnya. |
| nbll | IPCW (negatif) binomial log-likelihood [5] [1]. Yaitu, ini dikurangi binomial log-likelihood dan tidak boleh bingung dengan distribusi binomial negatif. Pembobotan dilakukan seperti pada Bagian 3.1.2 dari [15] untuk detailnya. |
| Integrated_brier_score | Skor IPCW Brier terintegrasi. Integrasi numerik `Brier_Score` [5] [6]. |
| terintegrasi_nbll | IPCW (negatif) binomial log-likelihood terintegrasi. Integrasi numerik `nbll` [5] [1]. |
| Brier_score_admin terintegrasi_brier_score_admin | Skor Brier administratif [15]. Bekerja dengan baik untuk data dengan sensor administratif, yang berarti semua waktu sensor diamati. Lihat contoh notebook ini. |
| nbll_admin terintegrasi_nbll_admin | Log Log Binomial Administratif (Negatif) [15]. Bekerja dengan baik untuk data dengan sensor administratif, yang berarti semua waktu sensor diamati. Lihat contoh notebook ini. |
Kumpulan set data tersedia melalui modul pycox.datasets . Misalnya, kode berikut akan mengunduh dataset metabric dan memuatnya dalam bentuk pandaframe panda
from pycox import datasets
df = datasets . metabric . read_df () Modul datasets akan menyimpan set data di bawah direktori instalasi secara default. Anda dapat menentukan direktori yang berbeda dengan mengatur variabel lingkungan PYCOX_DATA_DIR .
| Dataset | Ukuran | Dataset | Sumber data |
|---|---|---|---|
| flchain | 6.524 | Uji Dataset Rantai Cahaya Bebas Serum (Flchain). Lihat [1] untuk preprocessing. | sumber |
| GBSG | 2.232 | Kelompok Studi Kanker Payudara Rotterdam & Jerman. Lihat [2] untuk detailnya. | sumber |
| kkbox | 2.814.735 | Dataset survival yang dibuat dari WSDM - Tantangan Prediksi Churn KKBox 2017 dengan sensor administratif. Lihat [1] dan [15] untuk detailnya. Dibandingkan dengan kkbox_v1, set data ini memiliki lebih banyak kovariat dan waktu sensor. Catatan: Anda memerlukan kredensial Kaggle untuk mengakses dataset. | sumber |
| kkbox_v1 | 2.646.746 | Dataset survival yang dibuat dari WSDM - Tantangan Prediksi Churn KKBox 2017. Lihat [1] untuk detailnya. Ini bukan versi yang disukai dari set data ini. Gunakan kkbox sebagai gantinya. Catatan: Anda memerlukan kredensial Kaggle untuk mengakses dataset. | sumber |
| metabrik | 1.904 | Taksonomi molekuler Konsorsium Kanker Internasional Payudara (Metabrric). Lihat [2] untuk detailnya. | sumber |
| NWTCO | 4.028 | Data dari National Wilm's Tumor (NWTCO). | sumber |
| mendukung | 8.873 | Studi untuk memahami hasil preferensi prognosis dan risiko pengobatan (dukungan). Lihat [2] untuk detailnya. | sumber |
| Dataset | Ukuran | Dataset | Sumber data |
|---|---|---|---|
| RR_NL_NPH | 25.000 | Dataset dari studi simulasi di [1]. Ini adalah studi simulasi waktu kontinu dengan waktu peristiwa yang diambil dari model bahaya non-proporsional non-linear risiko relatif (RRNLNPH). | SimstudynonLineArnonph |
| sac3 | 100.000 | Dataset dari studi simulasi di [12]. Ini adalah dataset waktu diskrit dengan 1000 kemungkinan acara. | SimstudysAccensorConst |
| sac_admin5 | 50.000 | Dataset dari studi simulasi di [15]. Ini adalah dataset waktu diskrit dengan 1000 kemungkinan acara. Sangat mirip dengan `SAC3`, tetapi dengan lebih sedikit kovariat bertahan hidup dan sensor administratif yang ditentukan oleh 5 kovariat. | Simstudysacadmin |
Catatan: Paket ini masih dalam tahap awal pengembangan, jadi jangan ragu untuk melaporkan masalah yang mungkin Anda alami.
Paket hanya berfungsi untuk Python 3.6+.
Sebelum menginstal pycox , silakan instal pytorch (versi> = 1.1). Anda kemudian dapat menginstal paket dengan
pip install pycox Untuk versi tepi pendarahan, Anda dapat menginstal langsung dari GitHub (pertimbangkan untuk menambahkan --force-reinstall ):
pip install git+git://github.com/havakv/pycox.gitInstalasi dari sumber tergantung pada pytorch, jadi pastikan itu diinstal. Selanjutnya, klon dan instal dengan
git clone https://github.com/havakv/pycox.git
cd pycox
pip install .[1] Håvard Kvamme, Ørnulf Borgan, dan Ida Scheel. Prediksi waktu-ke-peristiwa dengan jaringan saraf dan regresi Cox. Jurnal Penelitian Pembelajaran Mesin , 20 (129): 1–30, 2019. [Kertas]
[2] Jared L. Katzman, Uri Shaham, Alexander Cloninger, Jonathan Bates, Tingting Jiang, dan Yuval Kluger. DeepSurv: Sistem Rekomendasi Perawatan yang Dipersonalisasi Menggunakan Bahaya Proporsional Cox Jaringan Saraf Dalam. Metodologi Penelitian Medis BMC , 18 (1), 2018. [Makalah]
[3] Changhee Lee, William R Zame, Jinsung Yoon, dan Mihaela van der Schaar. DEEPHIT: Pendekatan pembelajaran yang mendalam untuk analisis kelangsungan hidup dengan risiko yang bersaing. Dalam Konferensi AAAI Tiga Puluh Dua tentang Kecerdasan Buatan , 2018. [Kertas]
[4] Laura Antolini, Patrizia Boracchi, dan Elia Biganzoli. Indeks diskriminasi yang bergantung pada waktu untuk data kelangsungan hidup. Statistik dalam Kedokteran , 24 (24): 3927-3944, 2005. [Kertas]
[5] Erika Graf, Claudia Schmoor, Willi Sauerbrei, dan Martin Schumacher. Penilaian dan perbandingan skema klasifikasi prognostik untuk data kelangsungan hidup. Statistik dalam Kedokteran , 18 (17-18): 2529–2545, 1999. [Kertas]
[6] Thomas A. Gerds dan Martin Schumacher. Estimasi yang konsisten dari skor Brier yang diharapkan dalam model kelangsungan hidup umum dengan waktu peristiwa yang disensor kanan. Jurnal Biometrik , 48 (6): 1029–1040, 2006. [Kertas]
[7] Charles C. Brown. Pada penggunaan variabel indikator untuk mempelajari ketergantungan waktu parameter dalam model waktu respons. Biometrik , 31 (4): 863–872, 1975. [Kertas]
[8] Michael F. Gensheimer dan Balasubramanian Narasimhan. Model survival waktu diskrit yang dapat diskalakan untuk jaringan saraf. Peerj , 7: E6257, 2019. [Kertas]
[9] Chun-Nam Yu, Russell Greiner, Hsiu-Chin Lin, dan Vickie Baracos. Mempelajari distribusi kelangsungan hidup kanker khusus pasien sebagai urutan regressor tergantung. Dalam kemajuan dalam sistem pemrosesan informasi saraf 24 , halaman 1845–1853. Curran Associates, Inc., 2011. [Kertas]
[10] Stephane Fotso. Jaringan saraf dalam untuk analisis kelangsungan hidup berdasarkan kerangka kerja multi-tugas. ARXIV Preprint ARXIV: 1801.05512 , 2018. [Kertas]
[11] Michael Friedman. Model eksponensial piecewise untuk data bertahan hidup dengan kovariat. Annals of Statistics , 10 (1): 101–113, 1982. [Kertas]
[12] Håvard Kvamme dan Ørnulf Borgan. Prediksi kelangsungan hidup kontinu dan diskrit dengan jaringan saraf. Arxiv Preprint Arxiv: 1910.06724 , 2019. [Kertas]
[13] Elia Biganzoli, Patrizia Boracchi, Luigi Mariani, dan Ettore Marubini. Feed Forward Neural Networks untuk analisis data kelangsungan hidup yang disensor: pendekatan regresi logistik parsial. Statistik dalam Kedokteran , 17 (10): 1169–1186, 1998. [Kertas]
[14] Marco Fornili, Federico Ambrogi, Patrizia Boracchi, dan Elia Biganzoli. Piecewise Eksponensial Neural Neural Networks (Peann) untuk memodelkan fungsi bahaya dengan data yang disensor kanan. Metode Kecerdasan Komputasi untuk Bioinformatika dan Biostatistik , Halaman 125–136, 2014. [Kertas]
[15] Håvard Kvamme dan Ørnulf Borgan. Skor Brier di bawah Sensor Administratif: Masalah dan Solusi. ARXIV Preprint Arxiv: 1912.08581 , 2019. [Kertas]