packages feed

HLearn-algebra 0.1.0.1 → 0.1.1.0

raw patch · 4 files changed

+39/−5 lines, 4 filesPVP: major bump suggested

API removals or changes: PVP suggests a major version bump

API changes (from Hackage documentation)

- HLearn.Algebra.Morphism: instance (FunctorConstraint container model, FunctorConstraint container datapoint, FoldableConstraint container model, Foldable container, Functor container, Model (MorphismComposition (container datapoint) params1 interdomain params2 codomain) codomain, HomTrainer params1 datapoint interdomain, Morphism (container datapoint) params1 interdomain, Morphism interdomain params2 codomain, Monoid codomain, Semigroup codomain, Model (MorphismComposition domain params1 interdomain params2 codomain) codomain) => HomTrainer (MorphismComposition (container datapoint) params1 interdomain params2 codomain) datapoint codomain
+ HLearn.Algebra.Models: sub1dp :: (RegularSemigroup model, HomTrainer modelparams datapoint model, DefaultModel modelparams model) => model -> datapoint -> model
+ HLearn.Algebra.Models: subBatch :: (Functor container, FunctorConstraint container model, FunctorConstraint container datapoint, Foldable container, FoldableConstraint container model, RegularSemigroup model, HomTrainer modelparams datapoint model, DefaultModel modelparams model) => model -> container datapoint -> model
- HLearn.Algebra.Models: class (Semigroup model, Monoid model, Model modelparams model) => HomTrainer modelparams datapoint model where train1dp' modelparams = unbatch (train' modelparams) train' modelparams = batch (train1dp' modelparams) add1dp model = online (train1dp' (getparams model :: modelparams)) model addBatch model = online (train' (getparams model :: modelparams)) model
+ HLearn.Algebra.Models: class (Semigroup model, Monoid model, Model modelparams model) => HomTrainer modelparams datapoint model | model -> modelparams where train1dp' modelparams = unbatch (train' modelparams) train' modelparams = batch (train1dp' modelparams) add1dp model = online (train1dp' (getparams model :: modelparams)) model addBatch model = online (train' (getparams model :: modelparams)) model

Files

HLearn-algebra.cabal view
@@ -1,5 +1,5 @@ Name:                HLearn-algebra-Version:             0.1.0.1+Version:             0.1.1.0 Synopsis:            Algebraic foundation for homomorphic learning Description:         This module contains the algebraic basis for the HLearn library.  It is separated out in it's own library because it contains routines that may be useful to others.  In particular, it contains methods for automatically converting algorithms into online/parallel versions, and its structure is slightly more modular (although much less complete) than other algebra packages. Category:            Data Mining, Machine Learning
src/HLearn/Algebra/Models.hs view
@@ -20,6 +20,10 @@     , HomTrainer (..)     , DefaultHomTrainer (..)     +    -- * Convenience functions+    , sub1dp+    , subBatch+         -- * Type synonyms --     , Labeled --     , Weighted@@ -53,7 +57,7 @@     ( Semigroup model     , Monoid model     , Model modelparams model-    ) => HomTrainer modelparams datapoint model+    ) => HomTrainer modelparams datapoint model | model -> modelparams         where      -- | The singleton trainer@@ -71,7 +75,7 @@         , CK.FoldableConstraint container model         ) => modelparams -> container datapoint -> model     train' modelparams = batch (train1dp' modelparams)-    +     -- | The online trainer     {-# INLINE add1dp #-}     add1dp :: model -> datapoint -> model@@ -88,11 +92,40 @@         ) =>  model -> container datapoint -> model     addBatch model = online (train' (getparams model :: modelparams)) model     ++sub1dp :: +    ( RegularSemigroup model+    , HomTrainer modelparams datapoint model+    , DefaultModel modelparams model+    ) => model -> datapoint -> model+sub1dp model dp = model <> (inverse $ train1dp dp)++-- model -. dp = sub1dp model dp+-- model -. xs = subBatch model xs++subBatch :: +    ( CK.Functor container+    , CK.FunctorConstraint container model+    , CK.FunctorConstraint container datapoint+    , CK.Foldable container+    , CK.FoldableConstraint container model+    , RegularSemigroup model+    , HomTrainer modelparams datapoint model+    , DefaultModel modelparams model+    ) => model -> container datapoint -> model+subBatch model xs = model <> (inverse $ train xs)+ instance      ( HomTrainer modelparams datapoint model     , LeftOperator r model     ) => HomTrainer modelparams (r,datapoint) model where         train1dp' modelparams (r,dp) = r .* (train1dp' modelparams dp)++-- instance +--     ( HomTrainer modelparams datapoint model+--     , RightOperator r model+--     ) => HomTrainer modelparams (datapoint,r) model where+--         train1dp' modelparams (dp,r) = (train1dp' modelparams dp) *. r   -- | Provides parameterless functions for those training algorithms that do not require parameters
src/HLearn/Algebra/Morphism.hs view
@@ -120,7 +120,7 @@ --     ) => DefaultModel (MorphismComposition domain params1 interdomain params2 codomain) codomain --     where --         defparams = undefined-+{- instance      ( CK.FunctorConstraint container model     , CK.FunctorConstraint container datapoint@@ -136,4 +136,4 @@     , Model (MorphismComposition domain params1 interdomain params2 codomain) codomain     ) => HomTrainer (MorphismComposition (container datapoint) params1 interdomain params2 codomain) datapoint codomain     where-         train1dp' (params2 :. params1) dp = params2 <.> (train1dp' params1 dp)+         train1dp' (params2 :. params1) dp = params2 <.> (train1dp' params1 dp)-}
src/HLearn/Algebra/Structures/Modules.hs view
@@ -1,5 +1,6 @@ {-# LANGUAGE FlexibleInstances #-} {-# LANGUAGE TypeFamilies #-}+{-# LANGUAGE ConstraintKinds #-} {-# LANGUAGE UndecidableInstances #-} {-# LANGUAGE GeneralizedNewtypeDeriving #-} {-# LANGUAGE DatatypeContexts #-}