A LearnerClust for Cobweb clustering implemented in RWeka::Cobweb().
The predict method uses RWeka::predict.Weka_clusterer() 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():
Meta Information
Task type: “clust”
Predict Types: “partition”
Feature Types: “logical”, “integer”, “numeric”
Required Packages: mlr3, mlr3cluster, RWeka
Parameters
| Id | Type | Default | Range |
| A | numeric | 1 | \([0, \infty)\) |
| C | numeric | 0.002 | \([0, \infty)\) |
| S | integer | 42 | \([1, \infty)\) |
References
Witten, H I, Frank, Eibe (2002). “Data mining: practical machine learning tools and techniques with Java implementations.” Acm Sigmod Record, 31(1), 76–77.
Fisher, H D (1987). “Knowledge acquisition via incremental conceptual clustering.” Machine learning, 2, 139–172.
Gennari, H J, Langley, Pat, Fisher, Doug (1989). “Models of incremental concept formation.” Artificial intelligence, 40(1-3), 11–61.
See also
Chapter in the mlr3book: https://mlr3book.mlr-org.com/chapters/chapter2/data_and_basic_modeling.html#sec-learners
Package mlr3extralearners for more learners.
as.data.table(mlr_learners)for a table of available Learners in the running session (depending on the loaded packages).mlr3pipelines to combine learners with pre- and postprocessing steps.
Extension packages for additional task types:
mlr3proba for probabilistic supervised regression and survival analysis.
mlr3cluster for unsupervised clustering.
mlr3tuning for tuning of hyperparameters, mlr3tuningspaces for established default tuning spaces.
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.cmeans,
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.hclust,
mlr_learners_clust.hdbscan,
mlr_learners_clust.kkmeans,
mlr_learners_clust.kmeans,
mlr_learners_clust.mclust,
mlr_learners_clust.meanshift,
mlr_learners_clust.optics,
mlr_learners_clust.pam,
mlr_learners_clust.xmeans
Super classes
mlr3::Learner -> mlr3cluster::LearnerClust -> LearnerClustCobweb
Examples
# Define the Learner and set parameter values
learner = lrn("clust.cobweb")
print(learner)
#>
#> ── <LearnerClustCobweb> (clust.cobweb): Cobweb Clustering ──────────────────────
#> • Model: -
#> • Parameters: list()
#> • Packages: mlr3, mlr3cluster, and RWeka
#> • 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)
#> Number of merges: 14
#> Number of splits: 10
#> Number of clusters: 65
#>
#> node 0 [50]
#> | node 1 [8]
#> | | leaf 2 [1]
#> | node 1 [8]
#> | | leaf 3 [1]
#> | node 1 [8]
#> | | leaf 4 [1]
#> | node 1 [8]
#> | | leaf 5 [1]
#> | node 1 [8]
#> | | leaf 6 [1]
#> | node 1 [8]
#> | | node 7 [2]
#> | | | leaf 8 [1]
#> | | node 7 [2]
#> | | | leaf 9 [1]
#> | node 1 [8]
#> | | leaf 10 [1]
#> node 0 [50]
#> | node 11 [25]
#> | | leaf 12 [1]
#> | node 11 [25]
#> | | leaf 13 [1]
#> | node 11 [25]
#> | | leaf 14 [1]
#> | node 11 [25]
#> | | node 15 [2]
#> | | | leaf 16 [1]
#> | | node 15 [2]
#> | | | leaf 17 [1]
#> | node 11 [25]
#> | | leaf 18 [1]
#> | node 11 [25]
#> | | leaf 19 [1]
#> | node 11 [25]
#> | | leaf 20 [1]
#> | node 11 [25]
#> | | leaf 21 [1]
#> | node 11 [25]
#> | | leaf 22 [1]
#> | node 11 [25]
#> | | leaf 23 [1]
#> | node 11 [25]
#> | | node 24 [2]
#> | | | leaf 25 [1]
#> | | node 24 [2]
#> | | | leaf 26 [1]
#> | node 11 [25]
#> | | node 27 [2]
#> | | | leaf 28 [1]
#> | | node 27 [2]
#> | | | leaf 29 [1]
#> | node 11 [25]
#> | | node 30 [2]
#> | | | leaf 31 [1]
#> | | node 30 [2]
#> | | | leaf 32 [1]
#> | node 11 [25]
#> | | node 33 [2]
#> | | | leaf 34 [1]
#> | | node 33 [2]
#> | | | leaf 35 [1]
#> | node 11 [25]
#> | | leaf 36 [1]
#> | node 11 [25]
#> | | node 37 [3]
#> | | | leaf 38 [1]
#> | | node 37 [3]
#> | | | leaf 39 [1]
#> | | node 37 [3]
#> | | | leaf 40 [1]
#> | node 11 [25]
#> | | leaf 41 [1]
#> | node 11 [25]
#> | | leaf 42 [1]
#> node 0 [50]
#> | node 43 [17]
#> | | leaf 44 [1]
#> | node 43 [17]
#> | | leaf 45 [1]
#> | node 43 [17]
#> | | leaf 46 [1]
#> | node 43 [17]
#> | | leaf 47 [1]
#> | node 43 [17]
#> | | node 48 [2]
#> | | | leaf 49 [1]
#> | | node 48 [2]
#> | | | leaf 50 [1]
#> | node 43 [17]
#> | | leaf 51 [1]
#> | node 43 [17]
#> | | node 52 [5]
#> | | | leaf 53 [1]
#> | | node 52 [5]
#> | | | leaf 54 [1]
#> | | node 52 [5]
#> | | | leaf 55 [1]
#> | | node 52 [5]
#> | | | leaf 56 [1]
#> | | node 52 [5]
#> | | | leaf 57 [1]
#> | node 43 [17]
#> | | node 58 [5]
#> | | | leaf 59 [1]
#> | | node 58 [5]
#> | | | node 60 [3]
#> | | | | leaf 61 [1]
#> | | | node 60 [3]
#> | | | | leaf 62 [1]
#> | | | node 60 [3]
#> | | | | leaf 63 [1]
#> | | node 58 [5]
#> | | | leaf 64 [1]
#>
#>
# Make predictions for the task
prediction = learner$predict(task)
# Score the predictions
prediction$score(task = task)
#> clust.dunn
#> 0