Skip to contents

K-means clustering. Calls ClusterR::KMeans_rcpp() from package ClusterR.

The clusters parameter is set to 2 by default since ClusterR::KMeans_rcpp() doesn't have a default value for the number of clusters. The predict method computes the cluster memberships for new data via the fitted centroids.

Dictionary

This mlr3::Learner can be instantiated via the dictionary mlr3::mlr_learners or with the associated sugar function mlr3::lrn():

mlr_learners$get("clust.kmeans_rcpp")
lrn("clust.kmeans_rcpp")

Meta Information

  • Task type: “clust”

  • Predict Types: “partition”, “prob”

  • Feature Types: “logical”, “integer”, “numeric”

  • Required Packages: mlr3, mlr3cluster, ClusterR

Parameters

IdTypeDefaultLevelsRange
clustersinteger-\([1, \infty)\)
num_initinteger1\([1, \infty)\)
max_itersinteger100\([1, \infty)\)
initializercharacterkmeans++optimal_init, quantile_init, kmeans++, random-
verboselogicalFALSETRUE, FALSE-
CENTROIDSuntypedNULL-
tolnumeric1e-04\([0, \infty)\)
tol_optimal_initnumeric0.3\([0, \infty)\)
seedinteger1\((-\infty, \infty)\)
threadsinteger1\([1, \infty)\)

References

Hartigan, A J, Wong, A M (1979). “Algorithm AS 136: A K-means clustering algorithm.” Journal of the Royal Statistical Society. Series C (Applied Statistics), 28(1), 100–108. doi:10.2307/2346830 .

Lloyd, P S (1982). “Least squares quantization in PCM.” IEEE Transactions on Information Theory, 28(2), 129–137.

Arthur, David, Vassilvitskii, Sergei (2007). “k-means++: the advantages of careful seeding.” In Proceedings of the Eighteenth Annual ACM-SIAM Symposium on Discrete Algorithms, 1027–1035.

See also

Other Learner: mlr_learners_clust.MBatchKMeans, mlr_learners_clust.SimpleKMeans, mlr_learners_clust.agnes, mlr_learners_clust.ap, mlr_learners_clust.bico, mlr_learners_clust.birch, mlr_learners_clust.clara, mlr_learners_clust.cmeans, mlr_learners_clust.cobweb, mlr_learners_clust.dbscan, mlr_learners_clust.dbscan_fpc, mlr_learners_clust.diana, mlr_learners_clust.em, mlr_learners_clust.fanny, mlr_learners_clust.featureless, mlr_learners_clust.ff, mlr_learners_clust.flexmix, mlr_learners_clust.genie, mlr_learners_clust.gmeans, mlr_learners_clust.hclust, mlr_learners_clust.hdbscan, mlr_learners_clust.kcca, mlr_learners_clust.kkmeans, mlr_learners_clust.kmeans, mlr_learners_clust.kmodes, mlr_learners_clust.kproto, mlr_learners_clust.mclust, mlr_learners_clust.meanshift, mlr_learners_clust.movMF, mlr_learners_clust.optics, mlr_learners_clust.pam, mlr_learners_clust.protoclust, mlr_learners_clust.skmeans, mlr_learners_clust.som, mlr_learners_clust.specc, mlr_learners_clust.stdbscan, mlr_learners_clust.tclust, mlr_learners_clust.xmeans

Super classes

mlr3::Learner -> LearnerClust -> LearnerClustKMeansRcpp

Methods

Inherited methods


LearnerClustKMeansRcpp$new()

Creates a new instance of this R6 class.


LearnerClustKMeansRcpp$clone()

The objects of this class are cloneable with this method.

Usage

LearnerClustKMeansRcpp$clone(deep = FALSE)

Arguments

deep

Whether to make a deep clone.

Examples

# Define the Learner and set parameter values
learner = lrn("clust.kmeans_rcpp")
print(learner)
#> 
#> ── <LearnerClustKMeansRcpp> (clust.kmeans_rcpp): K-Means (ClusterR) ────────────
#> • Model: -
#> • Parameters: clusters=2
#> • Packages: mlr3, mlr3cluster, and ClusterR
#> • Predict Types: [partition] and prob
#> • Feature Types: logical, integer, and numeric
#> • Encapsulation: none (fallback: -)
#> • Properties: complete, exclusive, and partitional
#> • Other settings: use_weights = 'error', predict_raw = 'FALSE'

# Define a Task
task = tsk("usarrests")

# Train the learner on the task
learner$train(task)

# Print the model
print(learner$model)
#> KMeans Cluster
#>  Call: ClusterR::KMeans_rcpp(data = task$data(), clusters = 2L) 
#>  Data cols: 4 
#>  Centroids: 2 
#>  BSS/SS: 0.72907 
#>  SS: 355807.8 = 96399.03 (WSS) + 259408.8 (BSS)

# Make predictions for the task
prediction = learner$predict(task)

# Score the predictions
prediction$score(task = task)
#> clust.dunn 
#>  0.1033191