Pyのscikiti-survival:scikiti-survivalライブラリの概要、インストール、使用方法の詳細攻略

3386 ワード

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