Repository: spark
Updated Branches:
  refs/heads/master c76baff0c -> 883c76318


[SPARK-17389][FOLLOW-UP][ML] Change KMeans k-means|| default init steps from 5 
to 2.

## What changes were proposed in this pull request?
#14956 reduced default k-means|| init steps to 2 from 5 only for spark.mllib 
package, we should also do same change for spark.ml and PySpark.

## How was this patch tested?
Existing tests.

Author: Yanbo Liang <[email protected]>

Closes #15050 from yanboliang/spark-17389.


Project: http://git-wip-us.apache.org/repos/asf/spark/repo
Commit: http://git-wip-us.apache.org/repos/asf/spark/commit/883c7631
Tree: http://git-wip-us.apache.org/repos/asf/spark/tree/883c7631
Diff: http://git-wip-us.apache.org/repos/asf/spark/diff/883c7631

Branch: refs/heads/master
Commit: 883c7631847a95684534222c1b6cfed8e62710c8
Parents: c76baff
Author: Yanbo Liang <[email protected]>
Authored: Sun Sep 11 13:47:13 2016 +0100
Committer: Sean Owen <[email protected]>
Committed: Sun Sep 11 13:47:13 2016 +0100

----------------------------------------------------------------------
 .../scala/org/apache/spark/ml/clustering/KMeans.scala     |  4 ++--
 .../org/apache/spark/ml/clustering/KMeansSuite.scala      |  2 +-
 python/pyspark/ml/clustering.py                           | 10 +++++-----
 python/pyspark/mllib/clustering.py                        |  6 +++---
 4 files changed, 11 insertions(+), 11 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/spark/blob/883c7631/mllib/src/main/scala/org/apache/spark/ml/clustering/KMeans.scala
----------------------------------------------------------------------
diff --git a/mllib/src/main/scala/org/apache/spark/ml/clustering/KMeans.scala 
b/mllib/src/main/scala/org/apache/spark/ml/clustering/KMeans.scala
index 6c46be7..b04e828 100644
--- a/mllib/src/main/scala/org/apache/spark/ml/clustering/KMeans.scala
+++ b/mllib/src/main/scala/org/apache/spark/ml/clustering/KMeans.scala
@@ -69,7 +69,7 @@ private[clustering] trait KMeansParams extends Params with 
HasMaxIter with HasFe
 
   /**
    * Param for the number of steps for the k-means|| initialization mode. This 
is an advanced
-   * setting -- the default of 5 is almost always enough. Must be > 0. 
Default: 5.
+   * setting -- the default of 2 is almost always enough. Must be > 0. 
Default: 2.
    * @group expertParam
    */
   @Since("1.5.0")
@@ -262,7 +262,7 @@ class KMeans @Since("1.5.0") (
     k -> 2,
     maxIter -> 20,
     initMode -> MLlibKMeans.K_MEANS_PARALLEL,
-    initSteps -> 5,
+    initSteps -> 2,
     tol -> 1e-4)
 
   @Since("1.5.0")

http://git-wip-us.apache.org/repos/asf/spark/blob/883c7631/mllib/src/test/scala/org/apache/spark/ml/clustering/KMeansSuite.scala
----------------------------------------------------------------------
diff --git 
a/mllib/src/test/scala/org/apache/spark/ml/clustering/KMeansSuite.scala 
b/mllib/src/test/scala/org/apache/spark/ml/clustering/KMeansSuite.scala
index 88f31a1..c9ba5a2 100644
--- a/mllib/src/test/scala/org/apache/spark/ml/clustering/KMeansSuite.scala
+++ b/mllib/src/test/scala/org/apache/spark/ml/clustering/KMeansSuite.scala
@@ -45,7 +45,7 @@ class KMeansSuite extends SparkFunSuite with 
MLlibTestSparkContext with DefaultR
     assert(kmeans.getPredictionCol === "prediction")
     assert(kmeans.getMaxIter === 20)
     assert(kmeans.getInitMode === MLlibKMeans.K_MEANS_PARALLEL)
-    assert(kmeans.getInitSteps === 5)
+    assert(kmeans.getInitSteps === 2)
     assert(kmeans.getTol === 1e-4)
   }
 

http://git-wip-us.apache.org/repos/asf/spark/blob/883c7631/python/pyspark/ml/clustering.py
----------------------------------------------------------------------
diff --git a/python/pyspark/ml/clustering.py b/python/pyspark/ml/clustering.py
index 4dab833..7632f05 100644
--- a/python/pyspark/ml/clustering.py
+++ b/python/pyspark/ml/clustering.py
@@ -254,14 +254,14 @@ class KMeans(JavaEstimator, HasFeaturesCol, 
HasPredictionCol, HasMaxIter, HasTol
 
     @keyword_only
     def __init__(self, featuresCol="features", predictionCol="prediction", k=2,
-                 initMode="k-means||", initSteps=5, tol=1e-4, maxIter=20, 
seed=None):
+                 initMode="k-means||", initSteps=2, tol=1e-4, maxIter=20, 
seed=None):
         """
         __init__(self, featuresCol="features", predictionCol="prediction", 
k=2, \
-                 initMode="k-means||", initSteps=5, tol=1e-4, maxIter=20, 
seed=None)
+                 initMode="k-means||", initSteps=2, tol=1e-4, maxIter=20, 
seed=None)
         """
         super(KMeans, self).__init__()
         self._java_obj = 
self._new_java_obj("org.apache.spark.ml.clustering.KMeans", self.uid)
-        self._setDefault(k=2, initMode="k-means||", initSteps=5, tol=1e-4, 
maxIter=20)
+        self._setDefault(k=2, initMode="k-means||", initSteps=2, tol=1e-4, 
maxIter=20)
         kwargs = self.__init__._input_kwargs
         self.setParams(**kwargs)
 
@@ -271,10 +271,10 @@ class KMeans(JavaEstimator, HasFeaturesCol, 
HasPredictionCol, HasMaxIter, HasTol
     @keyword_only
     @since("1.5.0")
     def setParams(self, featuresCol="features", predictionCol="prediction", 
k=2,
-                  initMode="k-means||", initSteps=5, tol=1e-4, maxIter=20, 
seed=None):
+                  initMode="k-means||", initSteps=2, tol=1e-4, maxIter=20, 
seed=None):
         """
         setParams(self, featuresCol="features", predictionCol="prediction", 
k=2, \
-                  initMode="k-means||", initSteps=5, tol=1e-4, maxIter=20, 
seed=None)
+                  initMode="k-means||", initSteps=2, tol=1e-4, maxIter=20, 
seed=None)
 
         Sets params for KMeans.
         """

http://git-wip-us.apache.org/repos/asf/spark/blob/883c7631/python/pyspark/mllib/clustering.py
----------------------------------------------------------------------
diff --git a/python/pyspark/mllib/clustering.py 
b/python/pyspark/mllib/clustering.py
index 29aa615..2036168 100644
--- a/python/pyspark/mllib/clustering.py
+++ b/python/pyspark/mllib/clustering.py
@@ -306,7 +306,7 @@ class KMeans(object):
     @classmethod
     @since('0.9.0')
     def train(cls, rdd, k, maxIterations=100, runs=1, 
initializationMode="k-means||",
-              seed=None, initializationSteps=5, epsilon=1e-4, 
initialModel=None):
+              seed=None, initializationSteps=2, epsilon=1e-4, 
initialModel=None):
         """
         Train a k-means clustering model.
 
@@ -330,9 +330,9 @@ class KMeans(object):
           (default: None)
         :param initializationSteps:
           Number of steps for the k-means|| initialization mode.
-          This is an advanced setting -- the default of 5 is almost
+          This is an advanced setting -- the default of 2 is almost
           always enough.
-          (default: 5)
+          (default: 2)
         :param epsilon:
           Distance threshold within which a center will be considered to
           have converged. If all centers move less than this Euclidean


---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to