som-8.0.5: Self-Organising Maps.

Copyright (c) Amy de Buitléir 2012-2015 BSD-style amy@nualeargais.ie experimental portable Safe Haskell98

Data.Datamining.Clustering.SSOMInternal

Description

A module containing private `SSOM` internals. Most developers should use `SSOM` instead. This module is subject to change without notice.

Synopsis

# Documentation

exponential :: Floating a => a -> a -> a -> a Source

A typical learning function for classifiers. `exponential r0 d t` returns the learning rate at time `t`. When `t = 0`, the learning rate is `r0`. Over time the learning rate decays exponentially; the decay rate is `d`. Normally the parameters are chosen such that:

• 0 < r0 < 1
• 0 < d

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

data SSOM t x k p Source

A Simplified Self-Organising Map (SSOM). `x` is the type of the learning rate and the difference metric. `t` is the type of the counter. `k` is the type of the model indices. `p` is the type of the input patterns and models.

Constructors

 SSOM FieldssMap :: Map k pMaps patterns to nodes.learningRate :: t -> xA function which determines the learning rate for a node. The input parameter indicates how many patterns (or pattern batches) have previously been presented to the classifier. Typically this is used to make the learning rate decay over time. The output is the learning rate for that node (the amount by which the node's model should be updated to match the target). The learning rate should be between zero and one.difference :: p -> p -> xA function which compares two patterns and returns a non-negative number representing how different the patterns are. A result of `0` indicates that the patterns are identical.makeSimilar :: p -> x -> p -> pA function which updates models. For example, if this function is `f`, then `f target amount pattern` returns a modified copy of `pattern` that is more similar to `target` than `pattern` is. The magnitude of the adjustment is controlled by the `amount` parameter, which should be a number between 0 and 1. Larger values for `amount` permit greater adjustments. If `amount`=1, the result should be identical to the `target`. If `amount`=0, the result should be the unmodified `pattern`.counter :: tA 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

 (Num t, Ord x, Num x, Ord k) => Classifier (SSOM t) x k p Source Generic (SSOM t x k p) Source type Rep (SSOM t x k p) Source

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

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

trainNode :: (Num t, Ord k) => SSOM t x k p -> k -> p -> SSOM t x 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.

incrementCounter :: Num t => SSOM t x k p -> SSOM t x k p Source

justTrain :: (Num t, Ord k, Ord x) => SSOM t x k p -> p -> SSOM t x k p Source