Copyright | (c) Amy de Buitléir 2012-2015 |
---|---|
License | BSD-style |
Maintainer | amy@nualeargais.ie |
Stability | experimental |
Portability | portable |
Safe Haskell | Safe |
Language | Haskell98 |
Tools for identifying patterns in data.
- adjustNum :: (Num a, Ord a, Eq a) => a -> a -> a -> a
- absDifference :: Num a => a -> a -> a
- adjustVector :: (Num a, Ord a, Eq a) => [a] -> a -> [a] -> [a]
- euclideanDistanceSquared :: Num a => [a] -> [a] -> a
- magnitudeSquared :: Num a => [a] -> a
- data NormalisedVector a
- normalise :: Floating a => [a] -> NormalisedVector a
- data ScaledVector a
- scale :: Fractional a => [(a, a)] -> [a] -> ScaledVector a
- scaleAll :: (Fractional a, Ord a) => [[a]] -> [ScaledVector a]
Numbers as patterns
absDifference :: Num a => a -> a -> a Source
Numeric vectors as patterns
Raw vectors
adjustVector :: (Num a, Ord a, Eq a) => [a] -> a -> [a] -> [a] Source
adjusts adjustVector
target amount vectorvector
to move it
closer to target
. The amount of adjustment is controlled by the
learning rate r
, which is a number between 0 and 1. Larger values
of r
permit more adjustment. If r
=1, the result will be
identical to the target
. If amount
=0, the result will be the
unmodified pattern
.
euclideanDistanceSquared :: Num a => [a] -> [a] -> a Source
Calculates the square of the Euclidean distance between two vectors.
magnitudeSquared :: Num a => [a] -> a Source
Normalised vectors
data NormalisedVector a Source
A vector that has been normalised, i.e., the magnitude of the vector = 1.
Show a => Show (NormalisedVector a) Source |
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
. Alternatively, if you can identify a maximum and
minimum value for each element in a vector, you can scale
individual vectors using scaleAll
.scale
Show a => Show (ScaledVector a) Source |
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
,
scales the vector scale
qs xsxs
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.