Spark ML -- K-Means Clustering

K-means clustering with support for k-means|| initialization proposed by Bahmani et al.

ml_kmeans(x, formula = NULL, k = 2L, max_iter = 20L, tol = 1e-04,
  init_steps = 2L, init_mode = "k-means||", seed = NULL,
  features_col = "features", prediction_col = "prediction",
  uid = random_string("kmeans_"), ...)



A spark_connection, ml_pipeline, or a tbl_spark.


Used when x is a tbl_spark. R formula as a character string or a formula. This is used to transform the input dataframe before fitting, see ft_r_formula for details.


The number of clusters to create


The maximum number of iterations to use.


Param for the convergence tolerance for iterative algorithms.


Number of steps for the k-means|| initialization mode. This is an advanced setting -- the default of 2 is almost always enough. Must be > 0. Default: 2.


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||.


A random seed. Set this value if you need your results to be reproducible across repeated calls.


Features column name, as a length-one character vector. The column should be single vector column of numeric values. Usually this column is output by ft_r_formula.


Prediction column name.


A character string used to uniquely identify the ML estimator.


Optional arguments; currently unused.


The object returned depends on the class of x.

  • spark_connection: When x is a spark_connection, the function returns an instance of a ml_estimator object. The object contains a pointer to a Spark Estimator object and can be used to compose Pipeline objects.

  • ml_pipeline: When x is a ml_pipeline, the function returns a ml_pipeline with the clustering estimator appended to the pipeline.

  • tbl_spark: When x is a tbl_spark, an estimator is constructed then immediately fit with the input tbl_spark, returning a clustering model.

  • tbl_spark, with formula or features specified: When formula is specified, the input tbl_spark is first transformed using a RFormula transformer before being fit by the estimator. The object returned in this case is a ml_model which is a wrapper of a ml_pipeline_model. This signature does not apply to ml_lda().

See also

See for more information on the set of clustering algorithms.

Other ml clustering algorithms: ml_bisecting_kmeans, ml_gaussian_mixture, ml_lda