如何进行网站的seo,生产模板的厂家,数字短链接生成,宜兴公司做网站什么是生存分析
生存分析#xff08;回归#xff09;模型时间到感兴趣事件的持续时间。生存分析是一种特殊的回归#xff0c;与传统的回归任务不同#xff0c;具体如下#xff1a;
标签始终为正值#xff0c;因为不能等待负时间直到事件发生标签可能不是完全已知#…什么是生存分析
生存分析回归模型时间到感兴趣事件的持续时间。生存分析是一种特殊的回归与传统的回归任务不同具体如下
标签始终为正值因为不能等待负时间直到事件发生标签可能不是完全已知或被截断因为“测量时间需要时间”
第二点至关重要更深入地研究一下。正如从名称中猜到的那样生存分析的最早应用之一是对给定人群的死亡率进行建模。以NCCTG肺癌数据集为例。前8列表示特征最后一列“生存时间”表示标签。
InstAgeSexph.ecogph.karnopat.karnomeal.calwt.lossTime to death (days)37411901001175N/A306368109090122515455356109090N/A15[1010,∞)5571190601150112101601010090N/A088312741150805130[1022,∞)76822706038410310
仔细看一下第三位患者的标签是一个范围而不是一个单一的数字。第三位患者的标签被称为被截断因为由于某种原因实验者无法获得该标签的完整测量。可能的情况之一患者在第1010天幸存并于第1011天走出诊所因此他的死亡并没有直接观察到。另一种可能性由于实验无法永远进行实验被提前中断无法观察到他的死亡。在任何情况下他的标签是这意味着他的死亡时间可以是任何大于1010的数字例如2000、3000或10000。
有四种类型的截断
未被截断标签未被截断以单一数字给出右截断标签的形式为其中是下限左截断标签的形式为其中是上限区间截断标签的形式为其中和分别是下限和上限。
右截断是最常用的。
加速故障时间模型
加速失效时间AFT 模型是生存分析中最常用的模型之一。该模型的形式如下 ln Y ⟨ w , x ⟩ σ Z \ln{Y} \langle \mathbf{w}, \mathbf{x} \rangle \sigma Z lnY⟨w,x⟩σZ
其中 x x x 是表示特征 R d R^d Rd的向量 w w w是由 d d d个系数组成的向量每个系数对应一个特征 ⟨ ⋅ , ⋅ ⟩ \langle \cdot, \cdot \rangle ⟨⋅,⋅⟩是向量的点积 ln ( ⋅ ) \ln{(\cdot)} ln(⋅)是自然对数 Y Y Y和 Z Z Z是随机变量 Y Y Y是输出标签 Z Z Z是已知概率分布的随机变量。常见的选择包括正态分布、逻辑分布和极值分布。直观地说 Z Z Z表示将预测值 ⟨ w , x ⟩ \langle \mathbf{w}, \mathbf{x} \rangle ⟨w,x⟩从真实对数标签 ln Y \ln{Y} lnY远离的“噪声”。 σ \sigma σ是缩放 Z Z Z的参数
请注意该模型是线性回归模型 Y ⟨ w , x ⟩ Y \langle \mathbf{w}, \mathbf{x} \rangle Y⟨w,x⟩的广义形式。为了使AFT与梯度提升一起工作将模型修改为 ln Y T ( x ) σ Z \ln{Y} \mathcal{T}(\mathbf{x}) \sigma Z lnYT(x)σZ
其中 T ( x ) \mathcal{T}(\mathbf{x}) T(x)表示给定输入 x \mathbf{x} x的决策树集合的输出。由于 Z Z Z是随机变量可以为表达式 ln Y T ( x ) σ Z \ln{Y} \mathcal{T}(\mathbf{x}) \sigma Z lnYT(x)σZ定义一个似然性。因此XGBoost 的目标是通过拟合良好的决策树集合 T ( x ) \mathcal{T}(\mathbf{x}) T(x)来最大化对数似然性。
如何使用
第一步是将标签表示为范围的形式使得每个数据点都与两个数字关联即标签的下界和上界。对于未被截断的标签请使用形式的退化区间。
Censoring typeInterval formLower bound finite?Upper bound finite?Uncensored[a, a]✔✔Right-censored[a, ∞)✔✘Left-censored[0, b]✔✔Interval-censored[a, b]✔✔
将下界数值收集到一个数组中y_lower_bound将上界数值收集到另一个数组中y_upper_bound。通过调用xgboost.DMatrix.set_float_info()将范围标签与数据矩阵对象关联起来
import numpy as np
import xgboost as xgb# 4-by-2 Data matrix
X np.array([[1, -1], [-1, 1], [0, 1], [1, 0]])
dtrain xgb.DMatrix(X)# Associate ranged labels with the data matrix.
# This example shows each kind of censored labels.
# uncensored right left interval
y_lower_bound np.array([ 2.0, 3.0, 0.0, 4.0])
y_upper_bound np.array([ 2.0, np.inf, 4.0, 5.0])
dtrain.set_float_info(label_lower_bound, y_lower_bound)
dtrain.set_float_info(label_upper_bound, y_upper_bound)params {objective: survival:aft,eval_metric: aft-nloglik,aft_loss_distribution: normal,aft_loss_distribution_scale: 1.20,tree_method: hist, learning_rate: 0.05, max_depth: 2}bst xgb.train(params, dtrain, num_boost_round100,evals[(dtrain, train)])将目标参数objective设置为survival:aft将评估指标设置eval_metric为aft-nloglik以便最大化AFT模型的对数似然。 XGBoost实际上将最小化负对数似然因此称为aft-nloglik
参数aft_loss_distribution对应于AFT模型中项 Z Z Z的分布而aft_loss_distribution_scale对应于缩放因子 σ \sigma σ 。
目前可以从三个概率分布中选择aft_loss_distribution
aft_loss_distributionProbability Density Function (PDF)normal exp ( − z 2 / 2 ) 2 π \dfrac{\exp{(-z^2/2)}}{\sqrt{2\pi}} 2π exp(−z2/2)logistic e z ( 1 e z ) 2 \dfrac{e^z}{(1e^z)^2} (1ez)2ezextreme e z e − exp z e^z e^{-\exp{z}} eze−expz