von Mises-Fisher Mixture Clustering Learner
Source:R/LearnerClustMovMF.R
mlr_learners_clust.movMF.RdFits a mixture of von Mises-Fisher distributions via EM, the directional-data analogue of a Gaussian mixture for
points on the unit hypersphere.
Calls movMF::movMF() from package movMF.
The k parameter is set to 2 by default since movMF::movMF() has no default value for the number of mixture
components. Rows of x are standardised to unit length internally by movMF::movMF(). Predictions use the
predict() method from movMF; prob returns the soft memberships.
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”, “prob”
Feature Types: “logical”, “integer”, “numeric”
Required Packages: mlr3, mlr3cluster, movMF
Parameters
| Id | Type | Default | Levels | Range |
| k | integer | - | \([1, \infty)\) | |
| E | character | softmax | softmax, hardmax, stochmax | - |
| kappa | untyped | - | - | |
| start | untyped | "p" | - | |
| nruns | integer | 1 | \([1, \infty)\) | |
| maxiter | integer | 100 | \([1, \infty)\) | |
| reltol | numeric | - | \([0, \infty)\) | |
| minalpha | numeric | 0 | \([0, \infty)\) | |
| converge | logical | TRUE | TRUE, FALSE | - |
| verbose | logical | FALSE | TRUE, FALSE | - |
References
Banerjee, Arindam, Dhillon, S I, Ghosh, Joydeep, Sra, Suvrit (2005). “Clustering on the Unit Hypersphere using von Mises-Fisher Distributions.” Journal of Machine Learning Research, 6(46), 1345–1382.
Hornik, Kurt, Grün, Bettina (2014). “movMF: An R Package for Fitting Mixtures of von Mises-Fisher Distributions.” Journal of Statistical Software, 58(10), 1–31. doi:10.18637/jss.v058.i10 .
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.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.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 -> LearnerClustMovMF
Examples
# Define the Learner and set parameter values
learner = lrn("clust.movMF")
print(learner)
#>
#> ── <LearnerClustMovMF> (clust.movMF): von Mises-Fisher Mixture ─────────────────
#> • Model: -
#> • Parameters: k=2
#> • Packages: mlr3, mlr3cluster, and movMF
#> • Predict Types: [partition] and prob
#> • Feature Types: logical, integer, and numeric
#> • Encapsulation: none (fallback: -)
#> • Properties: complete, exclusive, fuzzy, and partitional
#> • Other settings: use_weights = 'error', predict_raw = 'FALSE'
# Define a Task
task = tsk("usarrests")
# Train the learner on the task
learner$train(task)
# Print the model
print(learner$model)
#> theta:
#> Assault Murder Rape UrbanPop
#> 1 92.85884 4.184017 14.70392 62.06895
#> 2 418.97623 19.709966 48.58421 122.62699
#> alpha:
#> [1] 0.496325 0.503675
#> L:
#> [1] 311.7197
# Make predictions for the task
prediction = learner$predict(task)
# Score the predictions
prediction$score(task = task)
#> clust.dunn
#> 0.0404121