som-7.4.1: Self-Organising Maps.

Copyright(c) Amy de Buitléir 2012-2014
LicenseBSD-style
Maintaineramy@nualeargais.ie
Stabilityexperimental
Portabilityportable
Safe HaskellSafe-Inferred
LanguageHaskell98

Data.Datamining.Clustering.SSOM

Contents

Description

A Simplified Self-organising Map (SSOM). An SSOM maps input patterns onto a set, where each element in the set is a model of the input data. An SSOM is like a Kohonen Self-organising Map (SOM), except that instead of a grid, it uses a simple set of unconnected models. Since the models are unconnected, only the model that best matches the input is ever updated. This makes it faster, however, topological relationships within the input data are not preserved. This implementation supports the use of non-numeric patterns.

In layman's terms, a SSOM can be useful when you you want to build a set of models on some data. A tutorial is available at https://github.com/mhwombat/som/wiki.

References:

  • de Buitléir, Amy, Russell, Michael and Daly, Mark. (2012). Wains: A pattern-seeking artificial life species. Artificial Life, 18 (4), 399-423.
  • Kohonen, T. (1982). Self-organized formation of topologically correct feature maps. Biological Cybernetics, 43 (1), 59–69.

Synopsis

Construction

data SSOM f t k p Source

A Simplified Self-Organising Map (SSOM).

Constructors

SSOM 

Fields

sMap :: Map k p

Maps patterns to nodes.

learningFunction :: f

The function used to update the nodes.

counter :: t

A counter used as a "time" parameter. If you create the SSOM with a counter value 0, and don't directly modify it, then the counter will represent the number of patterns that this SSOM has classified.

Instances

(Pattern p, Ord (Metric p), LearningFunction f, (~) * (Metric p) (LearningRate f), Num (LearningRate f), Ord k, Integral t) => Classifier (SSOM f t) k p 
(Eq f, Eq t, Eq k, Eq p) => Eq (SSOM f t k p) 
(Show f, Show t, Show k, Show p) => Show (SSOM f t k p) 
Generic (SSOM f t k p) 
type Rep (SSOM f t k p) 

data Exponential a Source

A typical learning function for classifiers. Exponential r0 d returns a function to calculate the learning rate. At time zero, the learning rate is r0. Over time the learning rate decays exponentially. Normally the parameters should be chosen such that:

  • 0 < r0 < 1
  • 0 < d

where << means "is much smaller than" (not the Haskell << operator!)

Constructors

Exponential a a 

Instances

Deconstruction

toMap :: SSOM f t k p -> Map k p Source

Extracts the current models from the SSOM. A synonym for sMap.

Advanced control

trainNode :: (Pattern p, LearningFunction f, Metric p ~ LearningRate f, Num (LearningRate f), Ord k, Integral t) => SSOM f t k p -> k -> p -> SSOM f t k p Source

Trains the specified node to better match a target. Most users should use train, which automatically determines the BMU and trains it.