From c05db63f1b6af0bdc6f0c277679e53a01913b3c5 Mon Sep 17 00:00:00 2001 From: Louis Traynard Date: Fri, 15 Apr 2016 12:06:01 +0200 Subject: [PATCH] [BUG] copy parameters to LinearRegressionModel instance In the (rare) case where yStd is 0 in LinearRegression, parameters are not copied immediately to the created LinearRegressionModel instance, but they should (as in all other cases), because now the default column names are used in and returned by model.findSummaryModelAndPredictionCol(), which leads to schema validation errors. --- .../org/apache/spark/ml/regression/LinearRegression.scala | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/mllib/src/main/scala/org/apache/spark/ml/regression/LinearRegression.scala b/mllib/src/main/scala/org/apache/spark/ml/regression/LinearRegression.scala index 71e02730c721..566da785b761 100644 --- a/mllib/src/main/scala/org/apache/spark/ml/regression/LinearRegression.scala +++ b/mllib/src/main/scala/org/apache/spark/ml/regression/LinearRegression.scala @@ -241,7 +241,7 @@ class LinearRegression @Since("1.3.0") (@Since("1.3.0") override val uid: String val coefficients = Vectors.sparse(numFeatures, Seq()) val intercept = yMean - val model = new LinearRegressionModel(uid, coefficients, intercept) + val model = copyValues(new LinearRegressionModel(uid, coefficients, intercept)) // Handle possible missing or invalid prediction columns val (summaryModel, predictionColName) = model.findSummaryModelAndPredictionCol() @@ -253,7 +253,7 @@ class LinearRegression @Since("1.3.0") (@Since("1.3.0") override val uid: String model, Array(0D), Array(0D)) - return copyValues(model.setSummary(trainingSummary)) + return model.setSummary(trainingSummary) } else { require($(regParam) == 0.0, "The standard deviation of the label is zero. " + "Model cannot be regularized.")