som-10.1.8: Self-Organising Maps

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

Data.Datamining.Pattern

Description

Tools for identifying patterns in data.

Synopsis

# Numbers as patterns

adjustNum :: (Num a, Ord a, Eq a) => a -> a -> a -> a Source #

Adjusts a number to make it more similar to the target.

absDifference :: Num a => a -> a -> a Source #

Returns the absolute difference between two numbers.

# Numeric vectors as patterns

## Raw vectors

adjustVector :: (Num a, Ord a, Eq a) => [a] -> a -> [a] -> [a] Source #

adjustVector target amount vector adjusts each element of vector to move it closer to the corresponding element of target. The amount of adjustment is controlled by the learning rate amount, which is a number between 0 and 1. Larger values of amount permit more adjustment. If amount=1, the result will be identical to the target. If amount=0, the result will be the unmodified pattern. If target is shorter than vector, the result will be the same length as target. If target is longer than vector, the result will be the same length as vector.

adjustVectorPreserveLength :: (Num a, Ord a, Eq a) => [a] -> a -> [a] -> [a] Source #

Same as adjustVector, except that the result will always be the same length as vector. This means that if target is shorter than vector, the "leftover" elements of vector will be copied the result, unmodified.

euclideanDistanceSquared :: Num a => [a] -> [a] -> a Source #

Calculates the square of the Euclidean distance between two vectors.

magnitudeSquared :: Num a => [a] -> a Source #

Returns the sum of the squares of the elements of a vector.

## Normalised vectors

A vector that has been normalised, i.e., the magnitude of the vector = 1.

Instances
 Show a => Show (NormalisedVector a) Source # Instance detailsDefined in Data.Datamining.Pattern MethodsshowList :: [NormalisedVector a] -> ShowS #

normalise :: Floating a => [a] -> NormalisedVector a Source #

Normalises a vector

## Scaled vectors

data ScaledVector a Source #

A vector that has been scaled so that all elements in the vector are between zero and one. To scale a set of vectors, use scaleAll. Alternatively, if you can identify a maximum and minimum value for each element in a vector, you can scale individual vectors using scale.

Instances
 Show a => Show (ScaledVector a) Source # Instance detailsDefined in Data.Datamining.Pattern MethodsshowsPrec :: Int -> ScaledVector a -> ShowS #show :: ScaledVector a -> String #showList :: [ScaledVector a] -> ShowS #

scale :: Fractional a => [(a, a)] -> [a] -> ScaledVector a Source #

Given a vector qs of pairs of numbers, where each pair represents the maximum and minimum value to be expected at each index in xs, scale qs xs scales the vector xs element by element, mapping the maximum value expected at that index to one, and the minimum value to zero.

scaleAll :: (Fractional a, Ord a) => [[a]] -> [ScaledVector a] Source #

Scales a set of vectors by determining the maximum and minimum values at each index in the vector, and mapping the maximum value to one, and the minimum value to zero.