Py之scikiti -survival:scikiti -survival库的简介、安装、使用方法之详细攻略

Py之scikiti -survival:scikiti -survival库的简介、安装、使用方法之详细攻略

目录

scikiti -survival库的简介

Requirements

scikiti -survival库的安装

scikiti -survival库的使用方法

1、退伍军人管理局肺癌试验


scikiti -survival库的简介

         scikiti -survival是一个建立在scikiti -learn之上的用于生存分析的Python模块。它可以利用scikit-learn的力量进行生存分析,例如进行预处理或交叉验证。
         scikiti -survival(也称为事件发生时间或可靠性分析)的目的是建立协变量和事件发生时间之间的联系。生存分析与传统机器学习的不同之处在于,部分训练数据只能被部分观察到——它们被审查了。例如,在临床研究中,患者通常在一个特定的时间段内被监测,并记录在这个时间段内发生的事件。如果一个病人经历了一个事件,事件的确切时间可以被记录-病人的记录是不被审查的。与此相反,正确删除的记录指的是在研究期间没有发生事件的患者,并且不知道在研究结束后是否发生了事件。因此,生存分析要求模型考虑到这种数据集的独特特征。
 

Requirements

  • 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

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")

猜你喜欢

转载自blog.csdn.net/qq_41185868/article/details/107573481