som-8.1.1: src/Data/Datamining/Clustering/SOS.hs
------------------------------------------------------------------------
-- |
-- Module : Data.Datamining.Clustering.SOS
-- Copyright : (c) Amy de Buitléir 2012-2015
-- License : BSD-style
-- Maintainer : amy@nualeargais.ie
-- Stability : experimental
-- Portability : portable
--
-- A Self-organising Set (SOS). An SOS maps input patterns
-- onto a set, where each element in the set is a model of the input
-- data. An SOS is like a Kohonen Self-organising Map (SOM), except:
--
-- * 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.
-- * New models are created on-the-fly when no existing model is
-- similar enough to an input pattern. If the SOS is at capacity,
-- the least useful model will be deleted.
--
-- This implementation supports the use of non-numeric patterns.
--
-- In layman's terms, a SOS 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.
------------------------------------------------------------------------
module Data.Datamining.Clustering.SOS
(
-- * Construction
SOS(..),
makeSOS,
-- * Deconstruction
time,
isEmpty,
numModels,
modelMap,
counterMap,
-- models,
-- counters,
-- * Learning and classification
exponential,
classify,
train,
trainBatch
) where
import Data.Datamining.Clustering.SOSInternal