Skip to contents

K-modes clustering for categorical data. Calls klaR::kmodes() from package klaR.

All feature values are treated as categories. Numeric features are accepted, but klaR::kmodes() warns when they contain more than 30 distinct values.

The modes parameter is set to 2 by default since klaR::kmodes() does not have a default value for the number of clusters. Since klaR::kmodes() does not provide a predict method, new observations are assigned to their closest learned mode. Prediction always uses unweighted simple matching distance, including for models trained with weighted = TRUE.

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.kmodes")
lrn("clust.kmodes")

Meta Information

  • Task type: “clust”

  • Predict Types: “partition”

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

  • Required Packages: mlr3, mlr3cluster, klaR

Parameters

IdTypeDefaultLevelsRange
modesuntyped--
iter.maxinteger10\([1, \infty)\)
weightedlogicalFALSETRUE, FALSE-
fastlogicalTRUETRUE, FALSE-
tiescharacterfirstfirst, last, random-

References

Huang, Zhexue (1997). “A Fast Clustering Algorithm to Cluster Very Large Categorical Data Sets in Data Mining.” In Data Mining: Techniques and Applications, 21–34.

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.hclust, mlr_learners_clust.hdbscan, mlr_learners_clust.kcca, mlr_learners_clust.kkmeans, mlr_learners_clust.kmeans, 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 -> LearnerClustKModes

Methods

Inherited methods


LearnerClustKModes$new()

Creates a new instance of this R6 class.

Usage


LearnerClustKModes$clone()

The objects of this class are cloneable with this method.

Usage

LearnerClustKModes$clone(deep = FALSE)

Arguments

deep

Whether to make a deep clone.

Examples

# Define the learner
learner = lrn("clust.kmodes", modes = 2L)

# Define a categorical task
data = data.frame(
  color = factor(c("red", "red", "blue", "blue")),
  shape = factor(c("round", "round", "square", "square"))
)
task = as_task_clust(data)

# Train and predict
learner$train(task)
prediction = learner$predict(task)