Skip to contents

A LearnerClust for PAM clustering implemented in cluster::pam(). cluster::pam() doesn't have a default value for the number of clusters. Therefore, the k parameter which corresponds to the number of clusters here is set to 2 by default. The predict method uses clue::cl_predict() to compute the cluster memberships for new data.

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

Meta Information

  • Task type: “clust”

  • Predict Types: “partition”

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

  • Required Packages: mlr3, mlr3cluster, cluster

Parameters

IdTypeDefaultLevelsRange
kinteger-\([1, \infty)\)
metriccharactereuclidianeuclidian, manhattan-
medoidsuntypedNULL-
standlogicalFALSETRUE, FALSE-
do.swaplogicalTRUETRUE, FALSE-
pamonceinteger0\([0, 5]\)
trace.levinteger0\([0, \infty)\)

References

Reynolds, P A, Richards, Graeme, de la Iglesia, Beatriz, Rayward-Smith, J V (2006). “Clustering rules: a comparison of partitioning and hierarchical clustering algorithms.” Journal of Mathematical Modelling and Algorithms, 5, 475–504.

Schubert, Erich, Rousseeuw, J P (2019). “Faster k-medoids clustering: improving the PAM, CLARA, and CLARANS algorithms.” In Similarity Search and Applications: 12th International Conference, SISAP 2019, Newark, NJ, USA, October 2–4, 2019, Proceedings 12, 171–187. Springer.

Super classes

mlr3::Learner -> mlr3cluster::LearnerClust -> LearnerClustPAM

Methods

Inherited methods


Method new()

Creates a new instance of this R6 class.

Usage


Method clone()

The objects of this class are cloneable with this method.

Usage

LearnerClustPAM$clone(deep = FALSE)

Arguments

deep

Whether to make a deep clone.

Examples

# Define the Learner and set parameter values
learner = lrn("clust.pam")
print(learner)
#> 
#> ── <LearnerClustPAM> (clust.pam): Partitioning Around Medoids ──────────────────
#> • Model: -
#> • Parameters: k=2
#> • Packages: mlr3, mlr3cluster, and cluster
#> • Predict Types: [partition]
#> • Feature Types: logical, integer, and numeric
#> • Encapsulation: none (fallback: -)
#> • Properties: complete, exclusive, and partitional
#> • Other settings: use_weights = 'error'

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

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

# Print the model
print(learner$model)
#> Medoids:
#>      ID Assault Murder Rape UrbanPop
#> [1,] 22     255   12.1 35.1       74
#> [2,] 16     115    6.0 18.0       66
#> Clustering vector:
#>  [1] 1 1 1 1 1 1 2 1 1 1 2 2 1 2 2 2 2 1 2 1 2 1 2 1 2 2 2 1 2 2 1 1 1 2 2 2 2 2
#> [39] 2 1 2 1 1 2 2 2 2 2 2 2
#> Objective function:
#>    build     swap 
#> 46.10633 38.41780 
#> 
#> Available components:
#>  [1] "medoids"    "id.med"     "clustering" "objective"  "isolation" 
#>  [6] "clusinfo"   "silinfo"    "diss"       "call"       "data"      

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

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