org.apache.spark.mllib.clustering

KMeans

class KMeans extends Serializable with Logging

K-means clustering with support for multiple parallel runs and a k-means++ like initialization mode (the k-means|| algorithm by Bahmani et al). When multiple concurrent runs are requested, they are executed together with joint passes over the data for efficiency.

This is an iterative algorithm that will make multiple passes over the data, so any RDDs given to it should be cached by the user.

Annotations
@Since( "0.8.0" )
Source
KMeans.scala
Linear Supertypes
Logging, Serializable, Serializable, AnyRef, Any
Ordering
  1. Alphabetic
  2. By inheritance
Inherited
  1. KMeans
  2. Logging
  3. Serializable
  4. Serializable
  5. AnyRef
  6. Any
  1. Hide All
  2. Show all
Learn more about member selection
Visibility
  1. Public
  2. All

Instance Constructors

  1. new KMeans()

    Constructs a KMeans instance with default parameters: {k: 2, maxIterations: 20, runs: 1, initializationMode: "k-means||", initializationSteps: 5, epsilon: 1e-4, seed: random}.

    Constructs a KMeans instance with default parameters: {k: 2, maxIterations: 20, runs: 1, initializationMode: "k-means||", initializationSteps: 5, epsilon: 1e-4, seed: random}.

    Annotations
    @Since( "0.8.0" )

Value Members

  1. final def !=(arg0: AnyRef): Boolean

    Definition Classes
    AnyRef
  2. final def !=(arg0: Any): Boolean

    Definition Classes
    Any
  3. final def ##(): Int

    Definition Classes
    AnyRef → Any
  4. final def ==(arg0: AnyRef): Boolean

    Definition Classes
    AnyRef
  5. final def ==(arg0: Any): Boolean

    Definition Classes
    Any
  6. final def asInstanceOf[T0]: T0

    Definition Classes
    Any
  7. def clone(): AnyRef

    Attributes
    protected[java.lang]
    Definition Classes
    AnyRef
    Annotations
    @throws( ... )
  8. final def eq(arg0: AnyRef): Boolean

    Definition Classes
    AnyRef
  9. def equals(arg0: Any): Boolean

    Definition Classes
    AnyRef → Any
  10. def finalize(): Unit

    Attributes
    protected[java.lang]
    Definition Classes
    AnyRef
    Annotations
    @throws( classOf[java.lang.Throwable] )
  11. final def getClass(): Class[_]

    Definition Classes
    AnyRef → Any
  12. def getEpsilon: Double

    The distance threshold within which we've consider centers to have converged.

    The distance threshold within which we've consider centers to have converged.

    Annotations
    @Since( "1.4.0" )
  13. def getInitializationMode: String

    The initialization algorithm.

    The initialization algorithm. This can be either "random" or "k-means||".

    Annotations
    @Since( "1.4.0" )
  14. def getInitializationSteps: Int

    Number of steps for the k-means|| initialization mode

    Number of steps for the k-means|| initialization mode

    Annotations
    @Since( "1.4.0" )
  15. def getK: Int

    Number of clusters to create (k).

    Number of clusters to create (k).

    Annotations
    @Since( "1.4.0" )
  16. def getMaxIterations: Int

    Maximum number of iterations to run.

    Maximum number of iterations to run.

    Annotations
    @Since( "1.4.0" )
  17. def getSeed: Long

    The random seed for cluster initialization.

    The random seed for cluster initialization.

    Annotations
    @Since( "1.4.0" )
  18. def hashCode(): Int

    Definition Classes
    AnyRef → Any
  19. final def isInstanceOf[T0]: Boolean

    Definition Classes
    Any
  20. def isTraceEnabled(): Boolean

    Attributes
    protected
    Definition Classes
    Logging
  21. def log: Logger

    Attributes
    protected
    Definition Classes
    Logging
  22. def logDebug(msg: ⇒ String, throwable: Throwable): Unit

    Attributes
    protected
    Definition Classes
    Logging
  23. def logDebug(msg: ⇒ String): Unit

    Attributes
    protected
    Definition Classes
    Logging
  24. def logError(msg: ⇒ String, throwable: Throwable): Unit

    Attributes
    protected
    Definition Classes
    Logging
  25. def logError(msg: ⇒ String): Unit

    Attributes
    protected
    Definition Classes
    Logging
  26. def logInfo(msg: ⇒ String, throwable: Throwable): Unit

    Attributes
    protected
    Definition Classes
    Logging
  27. def logInfo(msg: ⇒ String): Unit

    Attributes
    protected
    Definition Classes
    Logging
  28. def logName: String

    Attributes
    protected
    Definition Classes
    Logging
  29. def logTrace(msg: ⇒ String, throwable: Throwable): Unit

    Attributes
    protected
    Definition Classes
    Logging
  30. def logTrace(msg: ⇒ String): Unit

    Attributes
    protected
    Definition Classes
    Logging
  31. def logWarning(msg: ⇒ String, throwable: Throwable): Unit

    Attributes
    protected
    Definition Classes
    Logging
  32. def logWarning(msg: ⇒ String): Unit

    Attributes
    protected
    Definition Classes
    Logging
  33. final def ne(arg0: AnyRef): Boolean

    Definition Classes
    AnyRef
  34. final def notify(): Unit

    Definition Classes
    AnyRef
  35. final def notifyAll(): Unit

    Definition Classes
    AnyRef
  36. def run(data: RDD[Vector]): KMeansModel

    Train a K-means model on the given set of points; data should be cached for high performance, because this is an iterative algorithm.

    Train a K-means model on the given set of points; data should be cached for high performance, because this is an iterative algorithm.

    Annotations
    @Since( "0.8.0" )
  37. def setEpsilon(epsilon: Double): KMeans.this.type

    Set the distance threshold within which we've consider centers to have converged.

    Set the distance threshold within which we've consider centers to have converged. If all centers move less than this Euclidean distance, we stop iterating one run.

    Annotations
    @Since( "0.8.0" )
  38. def setInitialModel(model: KMeansModel): KMeans.this.type

    Set the initial starting point, bypassing the random initialization or k-means|| The condition model.

    Set the initial starting point, bypassing the random initialization or k-means|| The condition model.k == this.k must be met, failure results in an IllegalArgumentException.

    Annotations
    @Since( "1.4.0" )
  39. def setInitializationMode(initializationMode: String): KMeans.this.type

    Set the initialization algorithm.

    Set the initialization algorithm. This can be either "random" to choose random points as initial cluster centers, or "k-means||" to use a parallel variant of k-means++ (Bahmani et al., Scalable K-Means++, VLDB 2012). Default: k-means||.

    Annotations
    @Since( "0.8.0" )
  40. def setInitializationSteps(initializationSteps: Int): KMeans.this.type

    Set the number of steps for the k-means|| initialization mode.

    Set the number of steps for the k-means|| initialization mode. This is an advanced setting -- the default of 5 is almost always enough. Default: 5.

    Annotations
    @Since( "0.8.0" )
  41. def setK(k: Int): KMeans.this.type

    Set the number of clusters to create (k).

    Set the number of clusters to create (k). Default: 2.

    Annotations
    @Since( "0.8.0" )
  42. def setMaxIterations(maxIterations: Int): KMeans.this.type

    Set maximum number of iterations to run.

    Set maximum number of iterations to run. Default: 20.

    Annotations
    @Since( "0.8.0" )
  43. def setSeed(seed: Long): KMeans.this.type

    Set the random seed for cluster initialization.

    Set the random seed for cluster initialization.

    Annotations
    @Since( "1.4.0" )
  44. final def synchronized[T0](arg0: ⇒ T0): T0

    Definition Classes
    AnyRef
  45. def toString(): String

    Definition Classes
    AnyRef → Any
  46. final def wait(): Unit

    Definition Classes
    AnyRef
    Annotations
    @throws( ... )
  47. final def wait(arg0: Long, arg1: Int): Unit

    Definition Classes
    AnyRef
    Annotations
    @throws( ... )
  48. final def wait(arg0: Long): Unit

    Definition Classes
    AnyRef
    Annotations
    @throws( ... )

Deprecated Value Members

  1. def getRuns: Int

    :: Experimental :: Number of runs of the algorithm to execute in parallel.

    :: Experimental :: Number of runs of the algorithm to execute in parallel.

    Annotations
    @Since( "1.4.0" ) @deprecated
    Deprecated

    (Since version 1.6.0) Support for runs is deprecated. This param will have no effect in 1.7.0.

  2. def setRuns(runs: Int): KMeans.this.type

    :: Experimental :: Set the number of runs of the algorithm to execute in parallel.

    :: Experimental :: Set the number of runs of the algorithm to execute in parallel. We initialize the algorithm this many times with random starting conditions (configured by the initialization mode), then return the best clustering found over any run. Default: 1.

    Annotations
    @Since( "0.8.0" ) @deprecated
    Deprecated

    (Since version 1.6.0) Support for runs is deprecated. This param will have no effect in 1.7.0.

Inherited from Logging

Inherited from Serializable

Inherited from Serializable

Inherited from AnyRef

Inherited from Any

Ungrouped