Spark AFTSurvivalRegression 参数
Spark AFTSurvivalRegression parameters
我已经尝试使用 Spark 中的示例 AFTSurvivalRegression 进行生存分析。
很简单。为了理解标签参数,我玩了一些。在网络上,我发现它有两种用法。
1)作为一些观察。
将标签视为患者计数
特征=体温
标签、审查员、特征
2,1,38
1,0,28
2人38度幸存
1人28度没活下来
2) 另一个与药物剂量相关的指标
这个标签作为药物的剂量
标签、审查员、特征
2,1,38
1,0,28
2剂药存活38度
2剂药没活过28度
也许我对他们都错了。找不到参数的解释。
检查了 R survreg 函数,但更加困惑。
有谁知道标签参数的真正含义吗?
val training = spark.createDataFrame(Seq(
(1.218, 1.0, Vectors.dense(1.560, -0.605)),
(2.949, 0.0, Vectors.dense(0.346, 2.158)),
(3.627, 0.0, Vectors.dense(1.380, 0.231)),
(0.273, 1.0, Vectors.dense(0.520, 1.151)),
(4.199, 0.0, Vectors.dense(0.795, -0.226))
)).toDF("label", "censor", "features")
val quantileProbabilities = Array(0.3, 0.6)
AFTSurvivalRegression 模型中 label
的概念是指机器学习 (ML) 中的监督学习。也就是说,label
是数据集中的已知值/类别。例如,当尝试使用线性回归(例如 Population vs. Price Linear Regression (Spark 2.0))根据城市人口预测房价中位数时,feature
是城市人口(包含我们将用于预测房价的信息的向量)价格),而 label
是您要预测的值。
在上面的例子中(供参考,完整的例子可以在Spark Classification and Regression > Survival Regression找到),生成的labels
(例如1.218,2.949,...)是要预测的值通过 features
(例如 Vectors.dense(1.560, -0.605), Vectors.dense(0.346, 2.158), ...).
说到这里,展示这一点的一种可能更简单的方法是使用特定的生存分析示例。这种情况下,我们可以使用R包自带的卵巢癌生存数据survival。例如,如果您要 运行 下面的 SparkR
代码片段:
# Create SparkR DataFrame from the ovarian cancer survival data
df <- createDataFrame(ovarian)
model <- spark.survreg(df, Surv(futime, fustat) ~ ecog_ps + rx)
fitted <- predict(model, df)
display(fitted)
结果将是:
请注意,label
与 futime
相同 - 我们最终试图预测的生存或审查时间。请注意,prediction
列包含 R 中 survreg 对象的预测函数的结果,在 Weibull 分布上下文中数据的原始比例。下面是基于这个数据集生成的四个生存曲线的可视化。
要查看运行中的完整笔记本,请参阅以下链接:
我已经尝试使用 Spark 中的示例 AFTSurvivalRegression 进行生存分析。 很简单。为了理解标签参数,我玩了一些。在网络上,我发现它有两种用法。 1)作为一些观察。 将标签视为患者计数 特征=体温 标签、审查员、特征 2,1,38 1,0,28 2人38度幸存 1人28度没活下来
2) 另一个与药物剂量相关的指标 这个标签作为药物的剂量 标签、审查员、特征 2,1,38 1,0,28 2剂药存活38度 2剂药没活过28度
也许我对他们都错了。找不到参数的解释。 检查了 R survreg 函数,但更加困惑。 有谁知道标签参数的真正含义吗?
val training = spark.createDataFrame(Seq(
(1.218, 1.0, Vectors.dense(1.560, -0.605)),
(2.949, 0.0, Vectors.dense(0.346, 2.158)),
(3.627, 0.0, Vectors.dense(1.380, 0.231)),
(0.273, 1.0, Vectors.dense(0.520, 1.151)),
(4.199, 0.0, Vectors.dense(0.795, -0.226))
)).toDF("label", "censor", "features")
val quantileProbabilities = Array(0.3, 0.6)
AFTSurvivalRegression 模型中 label
的概念是指机器学习 (ML) 中的监督学习。也就是说,label
是数据集中的已知值/类别。例如,当尝试使用线性回归(例如 Population vs. Price Linear Regression (Spark 2.0))根据城市人口预测房价中位数时,feature
是城市人口(包含我们将用于预测房价的信息的向量)价格),而 label
是您要预测的值。
在上面的例子中(供参考,完整的例子可以在Spark Classification and Regression > Survival Regression找到),生成的labels
(例如1.218,2.949,...)是要预测的值通过 features
(例如 Vectors.dense(1.560, -0.605), Vectors.dense(0.346, 2.158), ...).
说到这里,展示这一点的一种可能更简单的方法是使用特定的生存分析示例。这种情况下,我们可以使用R包自带的卵巢癌生存数据survival。例如,如果您要 运行 下面的 SparkR
代码片段:
# Create SparkR DataFrame from the ovarian cancer survival data
df <- createDataFrame(ovarian)
model <- spark.survreg(df, Surv(futime, fustat) ~ ecog_ps + rx)
fitted <- predict(model, df)
display(fitted)
结果将是:
请注意,label
与 futime
相同 - 我们最终试图预测的生存或审查时间。请注意,prediction
列包含 R 中 survreg 对象的预测函数的结果,在 Weibull 分布上下文中数据的原始比例。下面是基于这个数据集生成的四个生存曲线的可视化。
要查看运行中的完整笔记本,请参阅以下链接: