Pytorchでの時間までの予測

開始•方法•評価基準•データセット•インストール•参照
Pycoxは、PytorchモデルをトレーニングするためのTorchtuplesパッケージに基づいて構築されたPytorchを使用して、生存分析とイベントまでの予測のためのPythonパッケージです。このパッケージのRバージョンは、SurvivalModelsで入手できます。
パッケージには、さまざまなサバイバルモデルの実装、いくつかの有用な評価メトリック、およびイベント時間データセットのコレクションが含まれています。さらに、いくつかの便利な前処理ツールは、 pycox.preprocessingモジュールで利用できます。
開始するには、最初にPytorchをインストールする必要があります。その後、 PycoxをPIP経由でインストールできます。
pip install pycoxまたは、コンドラを介して:
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:MNISTデータセットにDataloAdersと畳み込みネットワークを使用します。 [8]のシミュレーションを繰り返し、各桁で指数分布のスケールパラメーターを定義します。
次の方法は、 pycox.methodsモジュールで入手できます。
| 方法 | 説明 | 例 |
|---|---|---|
| コックス型 | Cox-Timeは、COXの回帰を比例ハザードを超えて拡張する相対リスクモデルです[1]。 | ノート |
| coxcc | COX-CCは、COX-Timeモデルの比例バージョンです[1]。 | ノート |
| coxph(deepsurv) | Coxphは、Deepsurvとも呼ばれるCox比例ハザードモデルです[2]。 | ノート |
| PCHAZARD | 区分定数ハザード(PC-Hazard)モデル[12]は、定義された間隔で連続時間のハザード関数が一定であると仮定しています。これは、区分的指数モデル[11]およびPeann [14]に似ていますが、指数関数の代わりにソフトプラスの活性化を備えています。 | ノート |
| 方法 | 説明 | 例 |
|---|---|---|
| logistichazard(nnet-survival) | ロジスティックハザード法は、離散ハザードをパラメーター化し、生存の可能性を最適化します[12] [7]。また、部分ロジスティック回帰[13]およびNNETサルバイバル[8]とも呼ばれます。 | ノート |
| PMF | PMFメソッドは、確率質量関数(PMF)をパラメーター化し、生存尤度を最適化します[12]。 DeephitやMtlrなどの方法の基礎です。 | ノート |
| deephit、deephitsingle | DeepHitは、競合するリスクを処理できるランキングを改善するために損失を伴うPMFメソッドです[3]。 | シングル競合 |
| mtlr(n-mtlr) | (ニューラル)マルチタスクロジスティック回帰は、[9]および[10]によって提案されたPMFメソッドです。 | ノート |
| BCESURV | 検閲されている間に個人を除去するバイナリ分類器のセットを表す方法[15]。損失は、離散時間のセットでの生存推定のバイナリ交差エントロピーであり、ターゲットは毎回生き残ることの指標です。 | bs_example |
次の評価メトリックは、 pycox.evalutation.EvalSurvで入手できます。
| メトリック | 説明 |
|---|---|
| concordance_td | イベント時間に評価された時間依存の一致指数[4]。 |
| Brier_score | IPCW Brierスコア(加重ブライアスコアを検閲する逆確率)[5] [6] [15]。詳細については、[15]のセクション3.1.2を参照してください。 |
| NBLL | IPCW(陰性)二項視頭[5] [1]。すなわち、これは二項log likelihoodを引いたものであり、負の二項分布と混同しないでください。詳細については、[15]のセクション3.1.2のように、重み付けが実行されます。 |
| 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データセットをダウンロードし、PANDASデータフレームの形でロードします
from pycox import datasets
df = datasets . metabric . read_df () datasetsセットモジュールは、デフォルトでデータセットをインストールディレクトリの下に保存します。 PYCOX_DATA_DIR環境変数を設定して、別のディレクトリを指定できます。
| データセット | サイズ | データセット | データソース |
|---|---|---|---|
| flchain | 6,524 | 血清フリーライトチェーン(Flchain)データセットのアッセイ。前処理については[1]を参照してください。 | ソース |
| GBSG | 2,232 | ロッテルダムとドイツの乳がん研究グループ。詳細については、[2]を参照してください。 | ソース |
| Kkbox | 2,814,735 | WSDM -KKBoxのチャーン予測チャレンジ2017から作成されたサバイバルデータセットは、管理検閲を伴います。詳細については、[1]および[15]を参照してください。 KKBOX_V1と比較して、このデータセットにはより多くの共変量と検閲時間があります。注:データセットにアクセスするには、Kaggle資格情報が必要です。 | ソース |
| kkbox_v1 | 2,646,746 | WSDM -KKBoxのチャーン予測チャレンジ2017から作成されたサバイバルデータセット。詳細については、[1]を参照してください。これは、このデータセットの好ましいバージョンではありません。代わりにkkboxを使用します。注:データセットにアクセスするには、Kaggle資格情報が必要です。 | ソース |
| メタブリック | 1,904 | 乳がん国際コンソーシアムの分子分類法(メタブリック)。詳細については、[2]を参照してください。 | ソース |
| NWTCO | 4,028 | 国立ウィルム腫瘍(NWTCO)のデータ。 | ソース |
| サポート | 8,873 | 理解するための研究では、好みの結果と治療のリスク(サポート)を予測します。詳細については、[2]を参照してください。 | ソース |
| データセット | サイズ | データセット | データソース |
|---|---|---|---|
| RR_NL_NPH | 25,000 | [1]のシミュレーション研究からのデータセット。これは、相対的なリスクのない非線形非透明ハザードモデル(RRNLNPH)から引き出されたイベント時間を伴う連続時間シミュレーション研究です。 | Simstudynonlinearnonph |
| SAC3 | 100,000 | [12]のシミュレーション研究からのデータセット。これは、1000の可能なイベントタイムを持つ離散時間データセットです。 | SimstudySaccensorConst |
| SAC_ADMIN5 | 50,000 | [15]のシミュレーション研究からのデータセット。これは、1000の可能なイベントタイムを持つ離散時間データセットです。 「SAC3」に非常によく似ていますが、生存率が少なく、5つの共変量によって決定される管理検閲が少なくなります。 | Simstudysacadmin |
注:このパッケージはまだ開発の初期段階にあるので、あなたが経験する可能性のある問題を報告することをheしないでください。
パッケージは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に依存するため、Aがインストールされていることを確認してください。次に、クローンとインストールします
git clone https://github.com/havakv/pycox.git
cd pycox
pip install .[1]HåvardKvamme、ØrnulfBorgan、およびIda Scheel。ニューラルネットワークとCOX回帰によるイベント予測の時間。 Journal of Machine Learning Research 、20(129):1–30、2019。[Paper]
[2] Jared L. Katzman、Uri Shaham、Alexander Cloninger、Jonathan Bates、Tingting Jiang、およびYuval Kluger。 DeepSurv:コックス比例ハザード深いニューラルネットワークを使用したパーソナライズされた治療推奨システム。 BMC医学研究方法論、18(1)、2018年。[論文]
[3] Changhee Lee、William R Zame、Jinsung Yoon、Mihaela van der Schaar。 Deephit:競合するリスクを伴う生存分析への深い学習アプローチ。 2018年、人工知能に関する32秒のAAAI会議。[Paper]
[4] Laura Antolini、Patrizia Boracchi、およびElia Biganzoli。生存データの時間依存性識別指数。医学統計、24(24):3927–3944、2005。[Paper]
[5] Erika Graf、Claudia Schmoor、Willi Sauerbrei、Martin Schumacher。生存データの予後分類スキームの評価と比較。医学の統計、18(17-18):2529–2545、1999。[論文]
[6] Thomas A. GerdsとMartin Schumacher。適切な検査されたイベント時間を伴う一般的なサバイバルモデルにおける予想されるブライアスコアの一貫した推定。 Biometrical Journal 、48(6):1029–1040、2006。[Paper]
[7]チャールズC.ブラウン。応答時間モデルでのパラメーターの時間依存性を研究するためのインジケータ変数の使用について。 Biometrics 、31(4):863–872、1975。[Paper]
[8]マイケル・F・ジェンシマーとバラスブラマニアのナラシムハン。ニューラルネットワークのスケーラブルな離散時間生存モデル。 Peerj 、7:E6257、2019。[Paper]
[9] Chun-Nam Yu、Russell Greiner、Hsiu-Chin Lin、およびVickie Baracos。学習患者 - 特定のがん生存分布は、従属回帰のシーケンスとして。神経情報処理システムの進歩24、1845〜1853ページ。 Curran Associates、Inc.、2011。[Paper]
[10] Stephane Fotso。マルチタスクフレームワークに基づいた生存分析のための深いニューラルネットワーク。 arxiv preprint arxiv:1801.05512、2018 。[Paper]
[11]マイケル・フリードマン。共変量を伴う生存データの計算的指数モデル。 The Annals of Statistics 、10(1):101–113、1982。[Paper]
[12]HåvardKvammeとØrnulfBorgan。ニューラルネットワークを使用した継続的および離散時間の生存予測。 arxiv preprint arxiv:1910.06724、2019 。[Paper]
[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åvardKvammeとØrnulfBorgan。管理者の検閲に基づくBrierスコア:問題と解決策。 arxiv preprint arxiv:1912.08581、2019 。[Paper]