การทำนายเวลาต่อเหตุการณ์ด้วย pytorch

เริ่มต้นใช้งาน•วิธีการ•เกณฑ์การประเมิน•ชุดข้อมูล•การติดตั้ง•การอ้างอิง
Pycox เป็นแพ็คเกจ Python สำหรับการวิเคราะห์การอยู่รอดและการทำนายเวลาต่อเหตุการณ์ด้วย Pytorch ที่สร้างขึ้นบนแพ็คเกจ Torchtuples สำหรับการฝึกอบรมโมเดล Pytorch แพ็คเกจ R เวอร์ชัน R มีอยู่ที่ SurvivalModels
แพ็คเกจประกอบด้วยการใช้งานของแบบจำลองการอยู่รอดที่หลากหลายตัวชี้วัดการประเมินที่มีประโยชน์บางอย่างและการรวบรวมชุดข้อมูลเวลาเหตุการณ์ นอกจากนี้ยังมีเครื่องมือการประมวลผลล่วงหน้าที่มีประโยชน์บางอย่างในโมดูล pycox.preprocessing
ในการเริ่มต้นคุณต้องติดตั้ง pytorch ก่อน จากนั้นคุณสามารถติดตั้ง pycox ผ่าน PIP:
pip install pycoxหรือผ่าน conda:
conda install -c conda-forge pycox เราขอแนะนำให้เริ่มต้นด้วย 01_introduction.ipynb ซึ่งอธิบายการใช้งานทั่วไปของแพ็คเกจในแง่ของการประมวลผลล่วงหน้าการสร้างเครือข่ายประสาทการฝึกอบรมแบบจำลองและขั้นตอนการประเมินผล โน้ตบุ๊กใช้วิธี LogisticHazard สำหรับภาพประกอบ แต่หลักการส่วนใหญ่จะสรุปวิธีการอื่น ๆ
หรือมีตัวอย่างมากมายที่ระบุไว้ในโฟลเดอร์ตัวอย่างหรือคุณสามารถติดตามการสอนตาม LogisticHazard :
01_introduction.ipynb: การใช้งานทั่วไปของแพ็คเกจในแง่ของการประมวลผลล่วงหน้าการสร้างเครือข่ายประสาทการฝึกอบรมแบบจำลองและขั้นตอนการประเมินผล
02_introduction.ipynb: รูปแบบ discretization ตามควอนไทล์, tuples ซ้อนกับ tt.tuplefy , การฝังเอนทิตีของตัวแปรหมวดหมู่และอัตราการเรียนรู้วัฏจักร
03_Network_architectures.ipynb: ขยายกรอบงานด้วยเครือข่ายที่กำหนดเองและฟังก์ชั่นการสูญเสียที่กำหนดเอง ตัวอย่างรวม AutoEncoder เข้ากับเครือข่ายการอยู่รอดและพิจารณาการสูญเสียที่รวมการสูญเสีย autoencoder เข้ากับการสูญเสียของ LogisticHazard
04_MNIST_DATALOADERS_CNN.IPYNB: การใช้ DATALOADERS และเครือข่าย Convolutional สำหรับชุดข้อมูล MNIST เราทำซ้ำการจำลองของ [8] โดยที่แต่ละหลักจะกำหนดพารามิเตอร์สเกลของการแจกแจงแบบเอ็กซ์โปเนนเชียล
วิธีการต่อไปนี้มีอยู่ในโมดูล pycox.methods
| วิธี | คำอธิบาย | ตัวอย่าง |
|---|---|---|
| เวลาร่วมกัน | Cox-Time เป็นแบบจำลองความเสี่ยงสัมพัทธ์ที่ขยายการถดถอยของ Cox เกินอันตรายตามสัดส่วน [1] | สมุดบันทึก |
| COXCC | Cox-CC เป็นรุ่นสัดส่วนของรุ่น Cox-Time [1] | สมุดบันทึก |
| COXPH (DeepsURV) | COXPH เป็นแบบจำลองอันตรายสัดส่วนของ Cox หรือที่เรียกว่า Deepsurv [2] | สมุดบันทึก |
| คนเจ้าชู้ | โมเดลอันตรายคงที่ (PC-HAZARD) [12] ถือว่าเป็นอันตรายต่อเวลาที่ต่อเนื่องเป็นค่าคงที่ในช่วงเวลาที่กำหนดไว้ล่วงหน้า มันคล้ายกับโมเดลเอ็กซ์โปเนนเชียลแบบชิ้นเดียว [11] และ Peann [14] แต่มีการเปิดใช้งาน SoftPlus แทนฟังก์ชั่นเอ็กซ์โปเนนเชียล | สมุดบันทึก |
| วิธี | คำอธิบาย | ตัวอย่าง |
|---|---|---|
| Logistichazard (Nnet-Survival) | วิธีการโลจิสติกส์-ซาร์ด parametrize อันตรายที่ไม่ต่อเนื่องและเพิ่มประสิทธิภาพโอกาสการอยู่รอด [12] [7] มันเรียกอีกอย่างว่าการถดถอยโลจิสติกบางส่วน [13] และ Nnet-Survival [8] | สมุดบันทึก |
| PMF | วิธี PMF parametrize ฟังก์ชันมวลความน่าจะเป็น (PMF) และเพิ่มประสิทธิภาพความเป็นไปได้ในการรอดชีวิต [12] มันเป็นรากฐานของวิธีการเช่น Deephit และ MTLR | สมุดบันทึก |
| Deephit, Deephitsingle | Deephit เป็นวิธี PMF ที่มีการสูญเสียสำหรับการจัดอันดับที่ดีขึ้นซึ่งสามารถจัดการกับความเสี่ยงในการแข่งขัน [3] | การแข่งขันเดี่ยว |
| MTLR (N-MTLR) | การถดถอยโลจิสติกแบบหลายงาน (ระบบประสาท) เป็นวิธี PMF ที่เสนอโดย [9] และ [10] | สมุดบันทึก |
| BCESURV | วิธีการที่แสดงชุดของตัวแยกประเภทไบนารีที่ลบบุคคลเนื่องจากพวกเขาถูกเซ็นเซอร์ [15] การสูญเสียคือเอนโทรปีข้ามไบนารีของการประมาณการการอยู่รอดในชุดเวลาที่ไม่ต่อเนื่องโดยมีเป้าหมายที่เป็นตัวชี้วัดการมีชีวิตรอดในแต่ละครั้ง | bs_example |
ตัวชี้วัดการประเมินผลต่อไปนี้มีให้บริการกับ pycox.evalutation.EvalSurv
| ตัวชี้วัด | คำอธิบาย |
|---|---|
| concordance_td | ดัชนีความสอดคล้องที่ขึ้นกับเวลาประเมินในเวลาเหตุการณ์ [4] |
| brier_score | คะแนน IPCW Brier (ความน่าจะเป็นแบบผกผันของคะแนน Brier ถ่วงน้ำหนัก) [5] [6] [15] ดูหัวข้อ 3.1.2 ของ [15] สำหรับรายละเอียด |
| nbll | IPCW (ลบ) ความเป็นไปได้ในการบันทึกทวินาม [5] [1] กล่าวคือนี่คือลบความน่าจะเป็นบันทึกทวินามและไม่ควรสับสนกับการแจกแจงทวินามลบ การถ่วงน้ำหนักจะดำเนินการตามส่วน 3.1.2 ของ [15] สำหรับรายละเอียด |
| integrated_brier_score | คะแนน IPCW Brier ในตัว การรวมตัวเลขของ `brier_score` [5] [6] |
| integrated_nbll | IPCW ในตัว (ลบ) บันทึกการบันทึกทวินาม การรวมตัวเลขของ `nbll` [5] [1] |
| brier_score_admin integrated_brier_score_admin | คะแนนการบริหาร Brier [15] ทำงานได้ดีสำหรับข้อมูลด้วยการเซ็นเซอร์การดูแลระบบซึ่งหมายถึงเวลาเซ็นเซอร์ทั้งหมด ดูสมุดบันทึกตัวอย่างนี้ |
| nbll_admin integrated_nbll_admin | การบริหาร (ลบ) ความน่าจะเป็นบันทึกทวินาม [15] ทำงานได้ดีสำหรับข้อมูลด้วยการเซ็นเซอร์การดูแลระบบซึ่งหมายถึงเวลาเซ็นเซอร์ทั้งหมด ดูสมุดบันทึกตัวอย่างนี้ |
ชุดข้อมูลมีให้บริการผ่านโมดูล pycox.datasets ตัวอย่างเช่นรหัสต่อไปนี้จะดาวน์โหลดชุดข้อมูล metabric และโหลดในรูปแบบของ pandas dataframe
from pycox import datasets
df = datasets . metabric . read_df () โมดูลชุด datasets จะจัดเก็บชุดข้อมูลภายใต้ไดเรกทอรีการติดตั้งโดยค่าเริ่มต้น คุณสามารถระบุไดเรกทอรีที่แตกต่างกันได้โดยการตั้งค่าตัวแปรสภาพแวดล้อม PYCOX_DATA_DIR
| ชุดข้อมูล | ขนาด | ชุดข้อมูล | แหล่งข้อมูล |
|---|---|---|---|
| ฟู | 6,524 | การทดสอบชุดข้อมูลโซ่แสงฟรีซีรั่ม (FLCHAIN) ดู [1] สำหรับการประมวลผลล่วงหน้า | แหล่งที่มา |
| GBSG | 2,232 | กลุ่มศึกษามะเร็งเต้านมและมะเร็งเต้านมของโรตเตอร์ดัมและเยอรมัน ดู [2] สำหรับรายละเอียด | แหล่งที่มา |
| kkbox | 2,814,735 | ชุดข้อมูลการอยู่รอดที่สร้างขึ้นจาก WSDM - Churn Prediction Prediction Challenge 2017 ของ KKBox พร้อมการเซ็นเซอร์การดูแลระบบ ดู [1] และ [15] สำหรับรายละเอียด เมื่อเทียบกับ KKBox_V1 ชุดข้อมูลนี้มีเวลา covariates และการเซ็นเซอร์มากขึ้น หมายเหตุ: คุณต้องมีข้อมูลรับรอง Kaggle เพื่อเข้าถึงชุดข้อมูล | แหล่งที่มา |
| kkbox_v1 | 2,646,746 | ชุดข้อมูลการอยู่รอดที่สร้างขึ้นจาก WSDM - KKBox ของ Churn Prediction Challenge 2017 ดู [1] สำหรับรายละเอียด นี่ไม่ใช่เวอร์ชันที่ต้องการของชุดข้อมูลนี้ ใช้ kkbox แทน หมายเหตุ: คุณต้องมีข้อมูลรับรอง Kaggle เพื่อเข้าถึงชุดข้อมูล | แหล่งที่มา |
| เกี่ยวกับการเผาผลาญ | 1,904 | อนุกรมวิธานระดับโมเลกุลของกลุ่มมะเร็งเต้านมระหว่างประเทศ (เมแทบอริก) ดู [2] สำหรับรายละเอียด | แหล่งที่มา |
| NWTCO | 4,028 | ข้อมูลจากเนื้องอกของ National Wilm (NWTCO) | แหล่งที่มา |
| สนับสนุน | 8,873 | การศึกษาเพื่อทำความเข้าใจผลลัพธ์การตั้งค่าการตั้งค่าและความเสี่ยงของการรักษา (การสนับสนุน) ดู [2] สำหรับรายละเอียด | แหล่งที่มา |
| ชุดข้อมูล | ขนาด | ชุดข้อมูล | แหล่งข้อมูล |
|---|---|---|---|
| rr_nl_nph | 25,000 | ชุดข้อมูลจากการศึกษาแบบจำลองใน [1] นี่คือการศึกษาการจำลองเวลาอย่างต่อเนื่องกับเวลาเหตุการณ์ที่ดึงมาจากความเสี่ยงสัมพัทธ์แบบจำลองอันตรายที่ไม่ใช่เชิงเส้นไม่ใช่สัดส่วน (RRNLNPH) | SimstudynonLinearnonph |
| SAC3 | 100,000 | ชุดข้อมูลจากการศึกษาแบบจำลองใน [12] นี่เป็นชุดข้อมูลเวลาที่ไม่ต่อเนื่องที่มี 1,000 เหตุการณ์ที่เป็นไปได้ | simstudysaccensorconst |
| sac_admin5 | 50,000 | ชุดข้อมูลจากการศึกษาแบบจำลองใน [15] นี่เป็นชุดข้อมูลเวลาที่ไม่ต่อเนื่องที่มี 1,000 เหตุการณ์ที่เป็นไปได้ คล้ายกับ `SAC3` แต่มี covariates การอยู่รอดน้อยลงและการเซ็นเซอร์การบริหารที่กำหนดโดย 5 covariates | simstudysacadmin |
หมายเหตุ: แพ็คเกจนี้ยังอยู่ในช่วงเริ่มต้นของการพัฒนาดังนั้นโปรดอย่าลังเลที่จะรายงานปัญหาใด ๆ ที่คุณอาจประสบ
แพ็คเกจใช้ได้เฉพาะกับ Python 3.6+
ก่อนที่จะติดตั้ง pycox โปรดติดตั้ง pytorch (เวอร์ชัน> = 1.1) จากนั้นคุณสามารถติดตั้งแพ็คเกจด้วย
pip install pycox สำหรับรุ่น Bleeding Edge คุณสามารถติดตั้งโดยตรงจาก GitHub (พิจารณาเพิ่ม --force-reinstall ):
pip install git+git://github.com/havakv/pycox.gitการติดตั้งจากแหล่งที่มาขึ้นอยู่กับ pytorch ดังนั้นตรวจสอบให้แน่ใจว่ามีการติดตั้ง ถัดไปโคลนและติดตั้งด้วย
git clone https://github.com/havakv/pycox.git
cd pycox
pip install .[1] Håvard Kvamme, Ørnulf Borgan และ Ida Scheel การทำนายเวลาต่อเหตุการณ์ด้วยเครือข่ายประสาทและการถดถอยของ Cox วารสารการวิจัยการเรียนรู้ของเครื่อง , 20 (129): 1–30, 2019. [กระดาษ]
[2] Jared L. Katzman, Uri Shaham, Alexander Cloninger, Jonathan Bates, Tingting Jiang และ Yuval Kluger Deepsurv: ระบบผู้แนะนำการรักษาส่วนบุคคลโดยใช้ความเป็นอันตรายตามสัดส่วนของ Cox วิธีการวิจัยทางการแพทย์ BMC , 18 (1), 2018. [กระดาษ]
[3] Changhee Lee, William R Zame, Jinsung Yoon และ Mihaela van der Schaar Deephit: วิธีการเรียนรู้อย่างลึกซึ้งในการวิเคราะห์ความอยู่รอดด้วยความเสี่ยงในการแข่งขัน ในการประชุม Aaai สามสิบสองเรื่องเกี่ยวกับปัญญาประดิษฐ์ ปี 2018 [กระดาษ]
[4] Laura Antolini, Patrizia Boracchi และ Elia Biganzoli ดัชนีการเลือกปฏิบัติที่ขึ้นกับเวลาสำหรับข้อมูลการอยู่รอด สถิติด้านการแพทย์ , 24 (24): 3927–3944, 2005. [กระดาษ]
[5] Erika Graf, Claudia Schmoor, Willi Sauerbrei และ Martin Schumacher การประเมินและการเปรียบเทียบแผนการจำแนกประเภทการพยากรณ์โรคสำหรับข้อมูลการอยู่รอด สถิติด้านการแพทย์ , 18 (17-18): 2529–2545, 1999. [กระดาษ]
[6] Thomas A. Gerds และ Martin Schumacher การประมาณค่าที่คาดหวังของคะแนน Brier ในรูปแบบการอยู่รอดทั่วไปด้วยเวลาเหตุการณ์ที่ถูกเซ็นเซอร์ขวา วารสารชีวภาพ , 48 (6): 1029–1040, 2006. [กระดาษ]
[7] Charles C. Brown ในการใช้ตัวแปรตัวบ่งชี้สำหรับการศึกษาการพึ่งพาเวลาของพารามิเตอร์ในแบบจำลองเวลาตอบสนอง Biometrics , 31 (4): 863–872, 1975. [กระดาษ]
[8] Michael F. Gensheimer และ Balasubramanian Narasimhan รูปแบบการเอาชีวิตรอดแบบไม่ต่อเนื่องที่ปรับขนาดได้สำหรับเครือข่ายประสาท Peerj , 7: E6257, 2019. [กระดาษ]
[9] Chun-Nam Yu, Russell Greiner, Hsiu-Chin Lin และ Vickie Baracos การเรียนรู้การแจกแจงการอยู่รอดของโรคมะเร็งโดยเฉพาะเป็นลำดับของ regressors ขึ้นอยู่กับ ในความก้าวหน้าในระบบการประมวลผลข้อมูลระบบประสาท 24 , หน้า 1845–1853 Curran Associates, Inc. , 2011. [กระดาษ]
[10] Stephane Fotso เครือข่ายประสาทลึกสำหรับการวิเคราะห์การอยู่รอดโดยใช้กรอบงานหลายงาน arxiv preprint arxiv: 1801.05512 , 2018. [กระดาษ]
[11] Michael Friedman แบบจำลองแบบเอ็กซ์โปเนนเชียลแบบชิ้นเดียวสำหรับข้อมูลการอยู่รอดด้วย covariates พงศาวดารของสถิติ , 10 (1): 101–113, 1982. [กระดาษ]
[12] Håvard Kvamme และØrnulf Borgan การทำนายการรอดชีวิตอย่างต่อเนื่องและไม่ต่อเนื่องกับเครือข่ายประสาท arxiv preprint arxiv: 1910.06724 , 2019. [กระดาษ]
[13] Elia Biganzoli, Patrizia Boracchi, Luigi Mariani และ Ettore Marubini ฟีดไปข้างหน้าเครือข่ายประสาทสำหรับการวิเคราะห์ข้อมูลการอยู่รอดที่ถูกเซ็นเซอร์: วิธีการถดถอยโลจิสติกบางส่วน สถิติด้านการแพทย์ , 17 (10): 1169–1186, 1998. [กระดาษ]
[14] Marco Fornili, Federico Ambrogi, Patrizia Boracchi และ Elia Biganzoli เครือข่ายประสาทเทียมแบบเอ็กซ์โปเนนเชียล (PEANN) สำหรับการสร้างแบบจำลองฟังก์ชั่นอันตรายด้วยข้อมูลเซ็นเซอร์ขวา วิธีการคำนวณข้อมูลข่าวกรองสำหรับชีวสารสนเทศศาสตร์และชีวสถิติ , หน้า 125–136, 2014. [กระดาษ]
[15] Håvard Kvamme และØrnulf Borgan คะแนน Brier ภายใต้การเซ็นเซอร์การบริหาร: ปัญหาและการแก้ปัญหา arxiv preprint arxiv: 1912.08581 , 2019. [กระดาษ]