From d33e2f135ae62df20337e2752753bcda2756a73d Mon Sep 17 00:00:00 2001 From: actuaryzhang Date: Sun, 22 Jan 2017 18:59:12 -0800 Subject: [PATCH 1/3] make getFamily case insensitive --- .../spark/ml/regression/GeneralizedLinearRegression.scala | 2 +- .../spark/ml/regression/GeneralizedLinearRegressionSuite.scala | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/mllib/src/main/scala/org/apache/spark/ml/regression/GeneralizedLinearRegression.scala b/mllib/src/main/scala/org/apache/spark/ml/regression/GeneralizedLinearRegression.scala index 116f0f6507852..aadfc7ab179a0 100644 --- a/mllib/src/main/scala/org/apache/spark/ml/regression/GeneralizedLinearRegression.scala +++ b/mllib/src/main/scala/org/apache/spark/ml/regression/GeneralizedLinearRegression.scala @@ -61,7 +61,7 @@ private[regression] trait GeneralizedLinearRegressionBase extends PredictorParam /** @group getParam */ @Since("2.0.0") - def getFamily: String = $(family) + def getFamily: String = $(family).toLowerCase /** * Param for the name of link function which provides the relationship diff --git a/mllib/src/test/scala/org/apache/spark/ml/regression/GeneralizedLinearRegressionSuite.scala b/mllib/src/test/scala/org/apache/spark/ml/regression/GeneralizedLinearRegressionSuite.scala index 9f3d643c2bb0c..ece36d9183f06 100644 --- a/mllib/src/test/scala/org/apache/spark/ml/regression/GeneralizedLinearRegressionSuite.scala +++ b/mllib/src/test/scala/org/apache/spark/ml/regression/GeneralizedLinearRegressionSuite.scala @@ -875,7 +875,7 @@ class GeneralizedLinearRegressionSuite -0.4378554 0.2189277 0.1459518 -0.1094638 */ val trainer = new GeneralizedLinearRegression() - .setFamily("poisson") + .setFamily("Poisson") .setWeightCol("weight") .setFitIntercept(true) From c2b41324f8f6e2e1db3bd121b9e29fd9d6a5d98c Mon Sep 17 00:00:00 2001 From: actuaryzhang Date: Sun, 22 Jan 2017 19:13:11 -0800 Subject: [PATCH 2/3] update binomial test --- .../spark/ml/regression/GeneralizedLinearRegressionSuite.scala | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/mllib/src/test/scala/org/apache/spark/ml/regression/GeneralizedLinearRegressionSuite.scala b/mllib/src/test/scala/org/apache/spark/ml/regression/GeneralizedLinearRegressionSuite.scala index ece36d9183f06..e3c278777c5fa 100644 --- a/mllib/src/test/scala/org/apache/spark/ml/regression/GeneralizedLinearRegressionSuite.scala +++ b/mllib/src/test/scala/org/apache/spark/ml/regression/GeneralizedLinearRegressionSuite.scala @@ -758,7 +758,7 @@ class GeneralizedLinearRegressionSuite 0.028480 0.069123 0.935495 -0.049613 */ val trainer = new GeneralizedLinearRegression() - .setFamily("binomial") + .setFamily("Binomial") .setWeightCol("weight") .setFitIntercept(false) From 97b0a1c9e5f7bfdae2407d5017418f3dda9a1e71 Mon Sep 17 00:00:00 2001 From: actuaryzhang Date: Sun, 22 Jan 2017 19:40:36 -0800 Subject: [PATCH 3/3] revert value of getFamily and convert its value to lower case in subsequent calls --- .../spark/ml/regression/GeneralizedLinearRegression.scala | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/mllib/src/main/scala/org/apache/spark/ml/regression/GeneralizedLinearRegression.scala b/mllib/src/main/scala/org/apache/spark/ml/regression/GeneralizedLinearRegression.scala index aadfc7ab179a0..3ffed39898d84 100644 --- a/mllib/src/main/scala/org/apache/spark/ml/regression/GeneralizedLinearRegression.scala +++ b/mllib/src/main/scala/org/apache/spark/ml/regression/GeneralizedLinearRegression.scala @@ -61,7 +61,7 @@ private[regression] trait GeneralizedLinearRegressionBase extends PredictorParam /** @group getParam */ @Since("2.0.0") - def getFamily: String = $(family).toLowerCase + def getFamily: String = $(family) /** * Param for the name of link function which provides the relationship @@ -1044,7 +1044,8 @@ class GeneralizedLinearRegressionSummary private[regression] ( */ @Since("2.0.0") lazy val dispersion: Double = if ( - model.getFamily == Binomial.name || model.getFamily == Poisson.name) { + model.getFamily.toLowerCase == Binomial.name || + model.getFamily.toLowerCase == Poisson.name) { 1.0 } else { val rss = pearsonResiduals.agg(sum(pow(col("pearsonResiduals"), 2.0))).first().getDouble(0) @@ -1147,7 +1148,8 @@ class GeneralizedLinearRegressionTrainingSummary private[regression] ( @Since("2.0.0") lazy val pValues: Array[Double] = { if (isNormalSolver) { - if (model.getFamily == Binomial.name || model.getFamily == Poisson.name) { + if (model.getFamily.toLowerCase == Binomial.name || + model.getFamily.toLowerCase == Poisson.name) { tValues.map { x => 2.0 * (1.0 - dist.Gaussian(0.0, 1.0).cdf(math.abs(x))) } } else { tValues.map { x =>