mlr_learners_clust.kproto: K-Prototypes Clustering Learner

mlr_learners_clust.kprotoR Documentation

K-Prototypes Clustering Learner

Description

K-prototypes clustering for mixed-type data. Calls clustMixType::kproto() from package clustMixType.

The k parameter is set to 2 by default since clustMixType::kproto() doesn't have a default value for the number of clusters.

Initial parameter values

  • keep.data:

    • Actual default: TRUE.

    • Adjusted default: FALSE.

    • Reason for change: Avoid storing the training data in the model to save memory.

  • verbose:

    • Actual default: TRUE.

    • Adjusted default: FALSE.

    • Reason for change: Suppress verbose output during training.

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

Meta Information

  • Task type: “clust”

  • Predict Types: “partition”

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

  • Required Packages: mlr3, mlr3cluster, clustMixType

Parameters

Id Type Default Levels Range
k untyped - -
lambda untyped NULL -
type character huang huang, gower -
iter.max integer 100 [1, \infty)
nstart integer 1 [1, \infty)
na.rm character yes yes, no, imp.internal, imp.onestep -
keep.data logical TRUE TRUE, FALSE -
verbose logical TRUE TRUE, FALSE -
init character NULL nbh.dens, sel.cen, nstart.m -
p_nstart.m numeric 0.9 [0, 1]

Super classes

mlr3::Learner -> LearnerClust -> LearnerClustKProto

Methods

Public methods

Inherited methods

LearnerClustKProto$new()

Creates a new instance of this R6 class.

Usage
LearnerClustKProto$new()

LearnerClustKProto$clone()

The objects of this class are cloneable with this method.

Usage
LearnerClustKProto$clone(deep = FALSE)
Arguments
deep

Whether to make a deep clone.

References

Huang, Zhexue (1998). “Extensions to the k-Means Algorithm for Clustering Large Data Sets with Categorical Values.” Data Mining and Knowledge Discovery, 2(3), 283–304.

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

Examples


# Define the Learner and set parameter values
learner = lrn("clust.kproto")
print(learner)

# Define a mixed-type Task (kproto requires at least one factor variable)
data = data.frame(
  x1 = c(1, 2, 10, 11, 1, 2, 10, 11),
  x2 = factor(c("a", "a", "b", "b", "a", "a", "b", "b"))
)
task = as_task_clust(data)

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

# Print the model
print(learner$model)

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

# Score the predictions
prediction$score(task = task)


mlr3cluster documentation built on June 11, 2026, 5:06 p.m.