Skip to contents

A LearnerClust for fuzzy clustering implemented in cluster::fanny(). cluster::fanny() 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 copies cluster assignments and memberships generated for train data. The predict does not work 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.fanny")
lrn("clust.fanny")

Meta Information

  • Task type: “clust”

  • Predict Types: “partition”, “prob”

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

  • Required Packages: mlr3, mlr3cluster, cluster

Parameters

IdTypeDefaultLevelsRange
kinteger-\([1, \infty)\)
memb.expnumeric2\([1, \infty)\)
metriccharactereuclideaneuclidean, manhattan, SqEuclidean-
standlogicalFALSETRUE, FALSE-
maxitinteger500\([0, \infty)\)
tolnumeric1e-15\([0, \infty)\)
trace.levinteger0\([0, \infty)\)

References

Kaufman, Leonard, Rousseeuw, J P (2009). Finding groups in data: an introduction to cluster analysis. John Wiley & Sons.

Super classes

mlr3::Learner -> mlr3cluster::LearnerClust -> LearnerClustFanny

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

LearnerClustFanny$clone(deep = FALSE)

Arguments

deep

Whether to make a deep clone.

Examples

# Define the Learner and set parameter values
learner = lrn("clust.fanny")
print(learner)
#> 
#> ── <LearnerClustFanny> (clust.fanny): Fuzzy Analysis Clustering ────────────────
#> • Model: -
#> • Parameters: k=2
#> • Packages: mlr3, mlr3cluster, and cluster
#> • Predict Types: [partition] and prob
#> • Feature Types: logical, integer, and numeric
#> • Encapsulation: none (fallback: -)
#> • Properties: complete, fuzzy, 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)
#> Fuzzy Clustering object of class 'fanny' :                      
#> m.ship.expon.        2
#> objective     1022.444
#> tolerance        1e-15
#> iterations          14
#> converged            1
#> maxit              500
#> n                   50
#> Membership coefficients (in %, rounded):
#>       [,1] [,2]
#>  [1,]   86   14
#>  [2,]   86   14
#>  [3,]   85   15
#>  [4,]   59   41
#>  [5,]   86   14
#>  [6,]   70   30
#>  [7,]   11   89
#>  [8,]   87   13
#>  [9,]   77   23
#> [10,]   75   25
#> [11,]   21   79
#> [12,]   12   88
#> [13,]   89   11
#> [14,]    9   91
#> [15,]   16   84
#> [16,]   10   90
#> [17,]   10   90
#> [18,]   90   10
#> [19,]   12   88
#> [20,]   84   16
#> [21,]   29   71
#> [22,]   91    9
#> [23,]   13   87
#> [24,]   86   14
#> [25,]   51   49
#> [26,]   10   90
#> [27,]    9   91
#> [28,]   88   12
#> [29,]   16   84
#> [30,]   37   63
#> [31,]   88   12
#> [32,]   89   11
#> [33,]   76   24
#> [34,]   20   80
#> [35,]   13   87
#> [36,]   28   72
#> [37,]   35   65
#> [38,]    9   91
#> [39,]   47   53
#> [40,]   86   14
#> [41,]   12   88
#> [42,]   59   41
#> [43,]   68   32
#> [44,]   14   86
#> [45,]   21   79
#> [46,]   32   68
#> [47,]   25   75
#> [48,]   14   86
#> [49,]   17   83
#> [50,]   36   64
#> Fuzzyness coefficients:
#> dunn_coeff normalized 
#>  0.7078300  0.4156599 
#> Closest hard clustering:
#>  [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 1 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
#> 
#> Available components:
#>  [1] "membership"  "coeff"       "memb.exp"    "clustering"  "k.crisp"    
#>  [6] "objective"   "convergence" "diss"        "call"        "silinfo"    
#> [11] "data"       

# Make predictions for the task
prediction = learner$predict(task)
#> Warning: Learner 'clust.fanny' doesn't predict on new data and predictions may not make sense on new data.

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