aboutsummaryrefslogtreecommitdiff
path: root/examples
diff options
context:
space:
mode:
authorYanbo Liang <ybliang8@gmail.com>2015-11-09 08:57:29 -0800
committerXiangrui Meng <meng@databricks.com>2015-11-09 08:57:29 -0800
commitd50a66cc04bfa1c483f04daffe465322316c745e (patch)
treebdb6bb63bd3ef2cea6a2f1da282163c457be4418 /examples
parent8c0e1b50e960d3e8e51d0618c462eed2bb4936f0 (diff)
downloadspark-d50a66cc04bfa1c483f04daffe465322316c745e.tar.gz
spark-d50a66cc04bfa1c483f04daffe465322316c745e.tar.bz2
spark-d50a66cc04bfa1c483f04daffe465322316c745e.zip
[SPARK-10689][ML][DOC] User guide and example code for AFTSurvivalRegression
Add user guide and example code for ```AFTSurvivalRegression```. Author: Yanbo Liang <ybliang8@gmail.com> Closes #9491 from yanboliang/spark-10689.
Diffstat (limited to 'examples')
-rw-r--r--examples/src/main/java/org/apache/spark/examples/ml/JavaAFTSurvivalRegressionExample.java71
-rw-r--r--examples/src/main/python/ml/aft_survival_regression.py51
-rw-r--r--examples/src/main/scala/org/apache/spark/examples/ml/AFTSurvivalRegressionExample.scala62
3 files changed, 184 insertions, 0 deletions
diff --git a/examples/src/main/java/org/apache/spark/examples/ml/JavaAFTSurvivalRegressionExample.java b/examples/src/main/java/org/apache/spark/examples/ml/JavaAFTSurvivalRegressionExample.java
new file mode 100644
index 0000000000..69a174562f
--- /dev/null
+++ b/examples/src/main/java/org/apache/spark/examples/ml/JavaAFTSurvivalRegressionExample.java
@@ -0,0 +1,71 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package org.apache.spark.examples.ml;
+
+// $example on$
+import java.util.Arrays;
+import java.util.List;
+
+import org.apache.spark.SparkConf;
+import org.apache.spark.api.java.JavaSparkContext;
+import org.apache.spark.ml.regression.AFTSurvivalRegression;
+import org.apache.spark.ml.regression.AFTSurvivalRegressionModel;
+import org.apache.spark.mllib.linalg.*;
+import org.apache.spark.sql.DataFrame;
+import org.apache.spark.sql.Row;
+import org.apache.spark.sql.RowFactory;
+import org.apache.spark.sql.SQLContext;
+import org.apache.spark.sql.types.*;
+// $example off$
+
+public class JavaAFTSurvivalRegressionExample {
+ public static void main(String[] args) {
+ SparkConf conf = new SparkConf().setAppName("JavaAFTSurvivalRegressionExample");
+ JavaSparkContext jsc = new JavaSparkContext(conf);
+ SQLContext jsql = new SQLContext(jsc);
+
+ // $example on$
+ List<Row> data = Arrays.asList(
+ RowFactory.create(1.218, 1.0, Vectors.dense(1.560, -0.605)),
+ RowFactory.create(2.949, 0.0, Vectors.dense(0.346, 2.158)),
+ RowFactory.create(3.627, 0.0, Vectors.dense(1.380, 0.231)),
+ RowFactory.create(0.273, 1.0, Vectors.dense(0.520, 1.151)),
+ RowFactory.create(4.199, 0.0, Vectors.dense(0.795, -0.226))
+ );
+ StructType schema = new StructType(new StructField[]{
+ new StructField("label", DataTypes.DoubleType, false, Metadata.empty()),
+ new StructField("censor", DataTypes.DoubleType, false, Metadata.empty()),
+ new StructField("features", new VectorUDT(), false, Metadata.empty())
+ });
+ DataFrame training = jsql.createDataFrame(data, schema);
+ double[] quantileProbabilities = new double[]{0.3, 0.6};
+ AFTSurvivalRegression aft = new AFTSurvivalRegression()
+ .setQuantileProbabilities(quantileProbabilities)
+ .setQuantilesCol("quantiles");
+
+ AFTSurvivalRegressionModel model = aft.fit(training);
+
+ // Print the coefficients, intercept and scale parameter for AFT survival regression
+ System.out.println("Coefficients: " + model.coefficients() + " Intercept: "
+ + model.intercept() + " Scale: " + model.scale());
+ model.transform(training).show(false);
+ // $example off$
+
+ jsc.stop();
+ }
+}
diff --git a/examples/src/main/python/ml/aft_survival_regression.py b/examples/src/main/python/ml/aft_survival_regression.py
new file mode 100644
index 0000000000..0ee01fd825
--- /dev/null
+++ b/examples/src/main/python/ml/aft_survival_regression.py
@@ -0,0 +1,51 @@
+#
+# Licensed to the Apache Software Foundation (ASF) under one or more
+# contributor license agreements. See the NOTICE file distributed with
+# this work for additional information regarding copyright ownership.
+# The ASF licenses this file to You under the Apache License, Version 2.0
+# (the "License"); you may not use this file except in compliance with
+# the License. You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+#
+
+from __future__ import print_function
+
+from pyspark import SparkContext
+from pyspark.sql import SQLContext
+# $example on$
+from pyspark.ml.regression import AFTSurvivalRegression
+from pyspark.mllib.linalg import Vectors
+# $example off$
+
+if __name__ == "__main__":
+ sc = SparkContext(appName="AFTSurvivalRegressionExample")
+ sqlContext = SQLContext(sc)
+
+ # $example on$
+ training = sqlContext.createDataFrame([
+ (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))], ["label", "censor", "features"])
+ quantileProbabilities = [0.3, 0.6]
+ aft = AFTSurvivalRegression(quantileProbabilities=quantileProbabilities,
+ quantilesCol="quantiles")
+
+ model = aft.fit(training)
+
+ # Print the coefficients, intercept and scale parameter for AFT survival regression
+ print("Coefficients: " + str(model.coefficients))
+ print("Intercept: " + str(model.intercept))
+ print("Scale: " + str(model.scale))
+ model.transform(training).show(truncate=False)
+ # $example off$
+
+ sc.stop()
diff --git a/examples/src/main/scala/org/apache/spark/examples/ml/AFTSurvivalRegressionExample.scala b/examples/src/main/scala/org/apache/spark/examples/ml/AFTSurvivalRegressionExample.scala
new file mode 100644
index 0000000000..5da285e836
--- /dev/null
+++ b/examples/src/main/scala/org/apache/spark/examples/ml/AFTSurvivalRegressionExample.scala
@@ -0,0 +1,62 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+// scalastyle:off println
+package org.apache.spark.examples.ml
+
+import org.apache.spark.sql.SQLContext
+import org.apache.spark.{SparkContext, SparkConf}
+// $example on$
+import org.apache.spark.ml.regression.AFTSurvivalRegression
+import org.apache.spark.mllib.linalg.Vectors
+// $example off$
+
+/**
+ * An example for AFTSurvivalRegression.
+ */
+object AFTSurvivalRegressionExample {
+
+ def main(args: Array[String]): Unit = {
+ val conf = new SparkConf().setAppName("AFTSurvivalRegressionExample")
+ val sc = new SparkContext(conf)
+ val sqlContext = new SQLContext(sc)
+
+ // $example on$
+ val training = sqlContext.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)
+ val aft = new AFTSurvivalRegression()
+ .setQuantileProbabilities(quantileProbabilities)
+ .setQuantilesCol("quantiles")
+
+ val model = aft.fit(training)
+
+ // Print the coefficients, intercept and scale parameter for AFT survival regression
+ println(s"Coefficients: ${model.coefficients} Intercept: " +
+ s"${model.intercept} Scale: ${model.scale}")
+ model.transform(training).show(false)
+ // $example off$
+
+ sc.stop()
+ }
+}
+// scalastyle:off println