Прогнозирование времени на событие с pytorch

Начало работы • Методы • Критерии оценки • Наборы данных • Установка • Ссылки
Pycox -это пакет Python для анализа выживаемости и прогнозирования по времени на событие с Pytorch, построенным на пакете Torchtuples для обучения моделей Pytorch. 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: схема дискретизации на основе квантиля, вложенные кортежи с tt.tuplefy , сущность внедрения категориальных переменных и циклические скорости обучения.
03_network_architectures.ipynb: расширение структуры с помощью пользовательских сетей и пользовательских функций потерь. Пример сочетает в себе автоэкодер с сетью выживания и рассматривает потерю, которая сочетает в себе потерю автоэкодора с потерей LogisticHazard .
04_mnist_dataloaders_cnn.ipynb: Использование данных DataLoaders и сверточных сетей для набора данных MNIST. Мы повторяем моделирование [8], где каждая цифра определяет параметр масштаба экспоненциального распределения.
Следующие методы доступны в модуле pycox.methods .
| Метод | Описание | Пример |
|---|---|---|
| Coxtime | Cox-Time-это относительная модель риска, которая расширяет регрессию Кокса за пределами пропорциональных опасностей [1]. | блокнот |
| Coxcc | COX-CC является пропорциональной версией модели COX-Time [1]. | блокнот |
| Coxph (DeepSurv) | COXPH - это модель пропорциональных опасностей Кокса, также называемая DeepSurv [2]. | блокнот |
| Pchazard | Модель кусочно-постоянной опасности (PC-Hazard) [12] предполагает, что функция опасности непрерывного времени постоянна в предварительно определенных интервалах. Это похоже на кусочные экспоненциальные модели [11] и Peann [14], но с активацией Softplus вместо экспоненциальной функции. | блокнот |
| Метод | Описание | Пример |
|---|---|---|
| Logistichazard (Nnet-Survival) | Метод логистического изарда параметризует дискретные опасности и оптимизирует вероятность выживания [12] [7]. Это также называется частичной логистической регрессией [13] и Nnet-Survival [8]. | блокнот |
| PMF | Метод PMF параметризует функцию массы вероятности (PMF) и оптимизируйте вероятность выживания [12]. Это основание таких методов, как Deephit и MTLR. | блокнот |
| Deephit, Deephitsingl | Deephit - это метод PMF с потерей улучшения рейтинга, который может справиться с конкурирующими рисками [3]. | Одиночный конкурирующий |
| MTLR (N-MTLR) | (Нейронная) логистическая регрессия с несколькими задачами представляет собой методы PMF, предложенные [9] и [10]. | блокнот |
| BCESURV | Метод, представляющий набор бинарных классификаторов, которые устраняют людей по мере их цензуры [15]. Потеря - это бинарная поперечная энтропия оценок выживания в набор дискретных времен, с целями, которые являются показателями выживания каждый раз. | bs_example |
Следующие метрики оценки доступны с pycox.evalutation.EvalSurv .
| Показатель | Описание |
|---|---|
| Согласованность_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 | Административный балл Брир [15]. Хорошо работает для данных с административной цензурой, что означает все время цензуры. Смотрите этот пример ноутбука. |
| nbll_admin Integrated_nbll_admin | Административный (отрицательный) биномиальный логарифмический правдоподобность [15]. Хорошо работает для данных с административной цензурой, что означает все время цензуры. Смотрите этот пример ноутбука. |
Коллекция наборов данных доступна через модуль pycox.datasets . Например, следующий код будет загружать набор данных metabric и загружать его в форме DataFrame Pandas
from pycox import datasets
df = datasets . metabric . read_df () Модуль datasets будет хранить наборы данных по каталогу установки по умолчанию. Вы можете указать другой каталог, установив переменную среды PYCOX_DATA_DIR .
| Набор данных | Размер | Набор данных | Источник данных |
|---|---|---|---|
| пластин | 6524 | Анализ набора данных без сыворотки легкой цепи (Flchain). Смотрите [1] для предварительной обработки. | источник |
| GBSG | 2232 | Группа Rotterdam & German Range Rance Range. Смотрите [2] для деталей. | источник |
| KKBOX | 2814,735 | Набор данных по выживанию, созданный из задания WSDM - KKBox по прогнозированию оттока 2017 года с административной цензурой. Смотрите [1] и [15] для деталей. По сравнению с KKBOX_V1 этот набор данных имеет больше ковариат и времени цензуры. Примечание: вам нужны учетные данные Kaggle для доступа к набору данных. | источник |
| kkbox_v1 | 2646 746 | Набор данных по выживанию, созданный из задания WSDM - KKBox, вызов прогнозирования отпуска 2017 года. Для получения подробной информации см. [1]. Это не предпочтительная версия этого набора данных. Вместо этого используйте KKBox. Примечание: вам нужны учетные данные Kaggle для доступа к набору данных. | источник |
| Метабрик | 1904 | Молекулярная таксономия международного консорциума рака молочной железы (Metabric). Смотрите [2] для деталей. | источник |
| NWTCO | 4028 | Данные из национальной опухоли Вильма (NWTCO). | источник |
| поддерживать | 8 873 | Изучите, чтобы понять результаты предпочтений прогнозов и риски лечения (поддержка). Смотрите [2] для деталей. | источник |
| Набор данных | Размер | Набор данных | Источник данных |
|---|---|---|---|
| rr_nl_nph | 25 000 | Набор данных из исследования симуляции в [1]. Это непрерывное имитационное исследование с временем события, взятым из нелинейной нелинейной нелинейной опасности (RRNLNPH). | Simstudynunlinearnonph |
| SAC3 | 100 000 | Набор данных из исследования симуляции в [12]. Это дискретный набор данных с 1000 возможных времен событий. | SimstudysaccensorConst |
| sac_admin5 | 50 000 | Набор данных из исследования симуляции в [15]. Это дискретный набор данных с 1000 возможных времен событий. Очень похоже на «SAC3», но с меньшим количеством ковариат выживания и административной цензуры, определенной 5 ковариатами. | Симстудисакадмин |
Примечание. Этот пакет все еще находится на ранних стадиях разработки, поэтому, пожалуйста, не стесняйтесь сообщать о любых проблемах, которые вы можете испытать.
Пакет работает только для Python 3.6+.
Перед установкой Pycox , пожалуйста, установите Pytorch (версия> = 1.1). Затем вы можете установить пакет с
pip install pycox Для версии кровотечения, вы можете вместо этого установить непосредственно из GitHub (рассмотрите возможность добавления --force-reinstall ):
pip install git+git://github.com/havakv/pycox.gitУстановка из Source зависит от Pytorch, поэтому убедитесь, что она установлена. Далее, клонировать и установить с
git clone https://github.com/havakv/pycox.git
cd pycox
pip install .[1] Håvard Kvamme, Ørnulf Borgan и Ida Scheel. Прогнозирование по времени к событию с нейронными сетями и регрессией Кокса. Журнал исследований машинного обучения , 20 (129): 1–30, 2019. [Paper]
[2] Джаред Л. Кацман, Ури Шахам, Александр Клонингер, Джонатан Бейтс, Тинтинг Цзян и Юваль Клугер. DeepSurv: Персонализированная система рекомендации по лечению с использованием пропорциональной нейронной сети Кокса. Методология медицинских исследований BMC , 18 (1), 2018. [Paper]
[3] Чанги Ли, Уильям Р. Заме, Джинсунг Юн и Михаэла ван дер Шаар. Deephit: глубокий подход к анализу выживания с конкурирующими рисками. В тридцать второй конференции AAAI по искусственному интеллекту , 2018. [Paper]
[4] Лаура Антолини, Патриция Бораччи и Элия Бигандзоли. Зависимый от времени индекс дискриминации для данных выживания. Статистика в медицине , 24 (24): 3927–3944, 2005. [Paper]
[5] Эрика Граф, Клаудия Шмур, Вилли Сауербрей и Мартин Шумахер. Оценка и сравнение схем прогностической классификации для данных выживания. Статистика в медицине , 18 (17-18): 2529–2545, 1999. [Paper]
[6] Томас А. Гердс и Мартин Шумахер. Последовательная оценка ожидаемой оценки BRIER в общих моделях выживания с правой цензионной временем события. Биометрический журнал , 48 (6): 1029–1040, 2006. [Paper]
[7] Чарльз С. Браун. При использовании индикаторных переменных для изучения зависимости от времени параметров в модели времени ответа. Биометрика , 31 (4): 863–872, 1975. [Paper]
[8] Майкл Ф. Геншаймер и Баласубраманиан Нарасимхан. Масштабируемая модель выживания дискретного времени для нейронных сетей. Peerj , 7: E6257, 2019. [Paper]
[9] Чун-Нам Ю, Рассел Грайнер, Хсиу-Чин Лин и Вики Баракос. Изучение специфического для пациента распределения выживаемости рака как последовательность зависимых регрессоров. В достижениях в системах обработки нейронной информации 24 , страницы 1845–1853. Curran Associates, Inc., 2011. [Paper]
[10] Стефан Фотсо. Глубокие нейронные сети для анализа выживания на основе многозадачной структуры. Arxiv Preprint arxiv: 1801.05512 , 2018. [Paper]
[11] Майкл Фридман. Кусочно -экспоненциальные модели для данных выживания с ковариатами. Анналы статистики , 10 (1): 101–113, 1982. [Paper]
[12] Håvard Kvamme и Ørnulf Borgan. Непрерывное и дискретное прогноз выживания с нейронными сетями. Arxiv Preprint arxiv: 1910.06724 , 2019. [Paper]
[13] Элия Бигандзоли, Патриция Бораччи, Луиджи Мариани и Эттор Марубини. Нейронные сети подавать вперед для анализа цензурированных данных выживания: частичный подход логистической регрессии. Статистика в медицине , 17 (10): 1169–1186, 1998. [Paper]
[14] Марко Форнили, Федерико Амброги, Патриция Бораччи и Элия Биганзоли. Кусочно -экспоненциальные искусственные нейронные сети (PEANN) для функции опасности моделирования с правой цензурой данных. Методы вычислительного интеллекта для биоинформатики и биостатистики , страницы 125–136, 2014. [Paper]
[15] Ховард Квамм и Эрнулф Борган. Оценка BRIER по административной цензуре: проблемы и решения. Arxiv Preprint arxiv: 1912.08581 , 2019. [Paper]