------------------------------------------------------------------------
-- |
-- Module : Data.Datamining.Clustering.SOM
-- Copyright : (c) Amy de Buitléir 2012-2018
-- License : BSD-style
-- Maintainer : amy@nualeargais.ie
-- Stability : experimental
-- Portability : portable
--
-- A Kohonen Self-organising Map (SOM). A SOM maps input patterns onto
-- a regular grid (usually two-dimensional) where each node in the grid
-- is a model of the input data, and does so using a method which
-- ensures that any topological relationships within the input data are
-- also represented in the grid. This implementation supports the use
-- of non-numeric patterns.
--
-- In layman's terms, a SOM can be useful when you you want to discover
-- the underlying structure of some data. A tutorial is available at
-- .
--
-- NOTES:
--
-- * Version 5.0 fixed a bug in the @`decayingGaussian`@ function. If
-- you use @`defaultSOM`@ (which uses this function), your SOM
-- should now learn more quickly.
--
-- * The @gaussian@ function has been removed because it is not as
-- useful for SOMs as I originally thought. It was originally designed
-- to be used as a factor in a learning function. However, in most
-- cases the user will want to introduce a time decay into the
-- exponent, rather than simply multiply by a factor.
--
-- References:
--
-- * Kohonen, T. (1982). Self-organized formation of topologically
-- correct feature maps. Biological Cybernetics, 43 (1), 59–69.
------------------------------------------------------------------------
module Data.Datamining.Clustering.SOM
(
-- * Construction
SOM(..),
-- * Deconstruction
toGridMap,
-- * Learning functions
decayingGaussian,
stepFunction,
constantFunction,
-- * Advanced control
trainNeighbourhood
) where
import Data.Datamining.Clustering.SOMInternal