Pyのscikiti-survival:scikiti-survivalライブラリの概要、インストール、使用方法の詳細攻略
3386 ワード
Pyのscikiti-survival:scikiti-survivalライブラリの概要、インストール、使用方法の詳細攻略
目次
scikiti-survivalライブラリの概要
Requirements
scikiti-survivalライブラリのインストール
scikiti-survivalライブラリの使用方法
1、退役軍人管理局肺癌試験
scikiti-survivalはscikiti-learnの上に構築された生存分析のためのPythonモジュールである.それはscikit−learnの力を利用して生存分析を行い,例えば前処理や交差検証を行うことができる.scikiti-survival(イベント発生時間または信頼性解析とも呼ばれる)の目的は、コモン変数とイベント発生時間との関連を確立することである.生存分析が従来の機械学習と異なる点は,一部の訓練データが部分的に観察されるしかないことである--それらは審査された.例えば、臨床研究では、患者は通常、特定の期間内にモニタリングされ、この期間内に発生したイベントを記録する.患者が事件を経験した場合、事件の正確な時間を記録することができる-患者の記録は審査されない.これに対して、正確に削除された記録とは、研究期間中に発生しなかった患者のことであり、研究終了後に発生したかどうかは不明である.従って,生存解析はモデルがこのデータセットの独特な特徴を考慮することを要求する.
Python 3.5 or later cvxpy cvxopt joblib numexpr numpy 1.12 or later osqp pandas 0.21 or later scikit-learn 0.22 or 0.23 scipy 1.0 or later C/C++ compiler
pip install scikit-survival conda install -c sebp scikit-survival
目次
scikiti-survivalライブラリの概要
Requirements
scikiti-survivalライブラリのインストール
scikiti-survivalライブラリの使用方法
1、退役軍人管理局肺癌試験
scikiti-survivalライブラリの概要
scikiti-survivalはscikiti-learnの上に構築された生存分析のためのPythonモジュールである.それはscikit−learnの力を利用して生存分析を行い,例えば前処理や交差検証を行うことができる.scikiti-survival(イベント発生時間または信頼性解析とも呼ばれる)の目的は、コモン変数とイベント発生時間との関連を確立することである.生存分析が従来の機械学習と異なる点は,一部の訓練データが部分的に観察されるしかないことである--それらは審査された.例えば、臨床研究では、患者は通常、特定の期間内にモニタリングされ、この期間内に発生したイベントを記録する.患者が事件を経験した場合、事件の正確な時間を記録することができる-患者の記録は審査されない.これに対して、正確に削除された記録とは、研究期間中に発生しなかった患者のことであり、研究終了後に発生したかどうかは不明である.従って,生存解析はモデルがこのデータセットの独特な特徴を考慮することを要求する.
Requirements
scikiti-survivalライブラリのインストール
pip install scikit-survival conda install -c sebp scikit-survival
scikiti-survivalライブラリの使用方法
1、退役軍人管理局肺癌試験
from sksurv.datasets import load_veterans_lung_cancer
data_x, data_y = load_veterans_lung_cancer()
data_y
import pandas as pd
pd.DataFrame.from_records(data_y[[11, 5, 32, 13, 23]], index=range(1, 6))
import matplotlib.pyplot as plt
from sksurv.nonparametric import kaplan_meier_estimator
time, survival_prob = kaplan_meier_estimator(data_y["Status"], data_y["Survival_in_days"])
plt.step(time, survival_prob, where="post")
plt.ylabel("est. probability of survival $\hat{S}(t)$")
plt.xlabel("time $t$")
print(data_x["Treatment"].value_counts())
for treatment_type in ("standard", "test"):
mask_treat = data_x["Treatment"] == treatment_type
time_treatment, survival_prob_treatment = kaplan_meier_estimator(
data_y["Status"][mask_treat],
data_y["Survival_in_days"][mask_treat])
plt.step(time_treatment, survival_prob_treatment, where="post",
label="Treatment = %s" % treatment_type)
plt.ylabel("est. probability of survival $\hat{S}(t)$")
plt.xlabel("time $t$")
plt.legend(loc="best")
for value in data_x["Celltype"].unique():
mask = data_x["Celltype"] == value
time_cell, survival_prob_cell = kaplan_meier_estimator(data_y["Status"][mask],
data_y["Survival_in_days"][mask])
plt.step(time_cell, survival_prob_cell, where="post",
label="%s (n = %d)" % (value, mask.sum()))
plt.ylabel("est. probability of survival $\hat{S}(t)$")
plt.xlabel("time $t$")
plt.legend(loc="best")