Software documentation#
datafold’s software architecture consists of three package layers
datafold.appfold(high) - for meta-modelsdatafold.dynfold(medium) - for manifold learning, data transformations and time series decompositionsdatafold.pcfold(low) - for data structures and associated objects and algorithms
The three layers encapsulate a workflow hierarchy to maintain a high degree of modularity in datafold. Each model is intended to be used on their own or internally in other model implementations. Dependencies between the layers are unidirectional, where models can depend on the functionality of lower levels and in some cases also at the same layer.
Each model has a clear scope, which is indicated by the associated base classes. A base class is either directly from scikit-learn or datafold provides own specifications that align to the scikit-learn API in a duck-typing fashion
sklearn.BaseEstimatorAll models inherit from this base classTSCTransformerMixInThe mixin for transformer is aligned to scikit-learn’s TransformerMixIn but also allowsTSCDataFrameto be passed as input.TSCPredictMixInThe mixin is intended for models that identify dynamical systems from time series data. For predictions, an initial condition and the time values to evaluate the model at are required.sklearn.RegressorMixinandsklearn.MultiOutputMixinThe scikit-learn mixins are used in datafold models that interpolate or regress function values high-dimensional point clouds with manifold assumption.