ml_kmeans
Spark ML -- K-Means Clustering
K-means clustering with support for k-means|| initialization proposed by Bahmani et al. Using `ml_kmeans()` with the formula interface requires Spark 2.0+.
Usage
ml_kmeans(x, formula = NULL, k = 2, max_iter = 20, tol = 1e-04,
init_steps = 2, init_mode = "k-means||", seed = NULL,
features_col = "features", prediction_col = "prediction",
uid = random_string("kmeans_"), ...)ml_compute_cost(model, dataset)
Arguments
- x
A
spark_connection
,ml_pipeline
, or atbl_spark
.- formula
Used when
x
is atbl_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.- k
The number of clusters to create
- max_iter
The maximum number of iterations to use.
- tol
Param for the convergence tolerance for iterative algorithms.
- init_steps
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.
- init_mode
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||.
- seed
A random seed. Set this value if you need your results to be reproducible across repeated calls.
- features_col
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_col
Prediction column name.
- uid
A character string used to uniquely identify the ML estimator.
- ...
Optional arguments, see Details.
- model
A fitted K-means model returned by
ml_kmeans()
- dataset
Dataset on which to calculate K-means cost
Value
The object returned depends on the class of x
.
spark_connection
: Whenx
is aspark_connection
, the function returns an instance of aml_estimator
object. The object contains a pointer to a SparkEstimator
object and can be used to composePipeline
objects.ml_pipeline
: Whenx
is aml_pipeline
, the function returns aml_pipeline
with the clustering estimator appended to the pipeline.tbl_spark
: Whenx
is atbl_spark
, an estimator is constructed then immediately fit with the inputtbl_spark
, returning a clustering model.tbl_spark
, withformula
orfeatures
specified: Whenformula
is specified, the inputtbl_spark
is first transformed using aRFormula
transformer before being fit by the estimator. The object returned in this case is aml_model
which is a wrapper of aml_pipeline_model
. This signature does not apply toml_lda()
.
ml_compute_cost()
returns the K-means cost (sum of
squared distances of points to their nearest center) for the model
on the given data.
See Also
See http://spark.apache.org/docs/latest/ml-clustering.html for more information on the set of clustering algorithms.
Other ml clustering algorithms: ml_bisecting_kmeans
,
ml_gaussian_mixture
, ml_lda
Examples
# NOT RUN {
sc <- spark_connect(master = "local")
iris_tbl <- sdf_copy_to(sc, iris, name = "iris_tbl", overwrite = TRUE)
ml_kmeans(iris_tbl, Species ~ .)
# }
# NOT RUN {
# }