我已尝试使用 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 模型中的标签
概念引用了机器学习 (ML) 中的监督学习。也就是说,标签是数据集中的已知值/类别。例如,当尝试使用线性回归根据城市人口预测中位房价时(例如 Population vs. Price Linear Regression (Spark 2.0) ),特征
是城市人口(包含我们将用于预测的信息的向量)价格),而标签
是您尝试预测的值。
在上面的示例中(作为引用,完整的示例可以在 Spark Classification and Regression > Survival Regression 找到),生成的标签(例如 1.218、2.949,...)是要预测的值特征
(例如 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
相同 - 我们最终尝试预测的生存或审查时间。请注意,预测
列包含 R 中 survreg 对象的预测函数的结果,在威 bool 分布的上下文中采用数据的原始比例。下面是基于该数据集生成的四个生存曲线的可视化。
要查看完整的笔记本,请参阅以下链接:
关于apache-spark - Spark AFTSurvivalRegression 参数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41316784/