2016-12-24 1 views
0

Ich habe Probe AFTSurvivalRegression von Spark for Survival-Analyse versucht. Es ist so einfach. Für das Verständnis von Label-Parametern habe ich einiges gespielt. Im Web habe ich es auf zwei Arten benutzt. 1) Als eine Reihe von Beobachtungen. denken Label als Patient Funktionen = Körpertemperatur Etikett zählen, zensiert, bietet 2,1,38 1,0,28 2 Personen mit 38 Grad 1 Personen mit 28 Grad überlebt nicht überlebt habenSpark AFTSurvivalRegression Parameter

2 Eine weitere Metrik wie Dosis der Medizin verwandt) dieses Label als doseof Medizin Etikett, zensiert, bietet 2,1,38 1,0,28 2 Dosis Medizin 38 Grad 2 Dosis Medizin überlebt nicht überleben 28 Grad

Vielleicht liege ich auf beiden falsch. Konnte keine Interpretation der Parameter finden. Checked R survreg Funktion aber mehr verwirrt. Kennt jemand echte Bedeutung von Label-Parameter?

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) 

Antwort

3

Das Konzept der label im AFTSurvivalRegression Modell ist in Bezug auf überwachtes Lernen innerhalb Machine Learning (ML). Das heißt, der label ist bekannter Wert/Kategorie in Ihrem Dataset. Wenn zum Beispiel die mittleren Wohnungspreise basierend auf der Stadtbevölkerung mittels linearer Regression vorhergesagt werden (zB Population vs. Price Linear Regression (Spark 2.0)), ist die feature die Stadtbevölkerung (der Vektor, der die Informationen enthält, die wir zur Vorhersage des Preises verwenden), während label der Wert ist du versuchst es vorherzusagen.

In dem obigen Beispiel (als Referenz kann das volle Beispiel bei Spark Classification and Regression > Survival Regression zu finden), die erzeugte labels (zB 1.218, 2.949, ...) werden die Werte durch den features (zB Vectors.dense vorhergesagt werden (1.560, -0.605), Vektoren.dense (0.346, 2.158), ...).

Dies zu sagen, ist eine möglicherweise einfachere Möglichkeit, dies zu zeigen, ist die Verwendung einer bestimmten Überlebensanalyse Beispiel. In diesem Fall können wir die Ovarialkarzinom-Überlebensdaten verwenden, die mit dem R-Paket Überleben geliefert werden. Zum Beispiel, wenn Sie den SparkR Code-Schnipsel unten laufen sind:

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

Das Ergebnis sei: enter image description here

Beachten Sie, dass die label das gleiche wie die futime ist - das Überleben oder zensiert Zeit, dass Wir versuchen letztlich zu prognostizieren. Beachten Sie, dass die Spalte prediction die Ergebnisse nach Vorhersagefunktion für das Überlebensobjekt in R im ursprünglichen Maßstab der Daten im Kontext der Weibull-Verteilung enthält. Unten sehen Sie eine Visualisierung der vier Überlebenskurven basierend auf diesem Datensatz.

+0

Liebe Denny Lee, Vielen Dank für Ihre Antwort:

Survival Curves from the Ovarian Cancer Data from R *survival* package

Um unten auf die Links verweisen die vollen Notebooks in Aktion finden Sie unter. Was ich frage ist, was Geschäftsbedeutung ist. Futime ist ein Parameter für Surv, also ist es Follow-up-Zeit. Können wir sagen (59,1) haben wir 59 Monate (oder was auch immer) nachgemacht und das Ereignis ist eingetreten (tot). – mcelikkaya

+0

so für die Vorhersage, wenn Ereignis aufgetreten ist (fustat = 1) was ist 1141? Ist es Zeit zu versagen? – mcelikkaya

+0

Die 'Vorhersage'-Spalte enthält die Ergebnisse nach Vorhersagefunktion für das Überlebensobjekt in R im Originalmaßstab der Daten im Kontext der Weibull-Verteilung. Wird meine Antwort aktualisieren, um dies zu klären. –