Package: feature_extraction¶
Feature extraction algorithms and related nodes.
These nodes extract certain kinds of latent features from data, which is generally expected to have an axis that indexes the observations (e.g., instance) and one or more other axes that index the input and output data spaces. Most operations can be configured in terms of one or more axis to aggregate statistics over (e.g., instance or time), one or more axis to treat as the "feature space" (e.g., feature or space) and optionally one or more axes along which to process data independently and in parallel (for example, using the space axis to calculate one separate PCA per each channel). The learned model can also be read or written (e.g., when reloading a previousl saved model) via the .model port. Unlike many nodes in NeuroPype, feature extraction nodes are stateful, meaning that they can adapt themselves to the data that they receive and then use their internal state to process subsequent data. Typically the adaptation happens the first time the node is invoked on a data packet, and the model is then frozen for subsequent usage. However, note that when such nodes are used in conjunction with graph-accepting nodes such as in function definitions (FunctionDef/FunctionCall) or in loop bodies (e.g., with ForEach), some of the latter nodes will clear the state on each subsequent update unless configured to behave in a stateful or "materialized" way). This can be useful for establishing controlled train/test cycles where state is used only in a limited context until it is reset. Due to the unspecific nature of these nodes (e.g. PCA), these are not necessarily building blocks of optimal end-to-end processing workflows, but they can be very powerful in building straightforward solutions that work well enough in practice.
Nodes in this package:
-
Canonical Correlation Analysis
Perform Canonical Correlation Analysis (CCA) and calculate matrices of scores for CCA. -
Collapse to Features
Collapse all non-instance axes of a stream into a single feature axis. -
Covariance Tangent Space
Project covariance matrices into a tangent space around their mean. -
demixed Principal Component Analysis
In addition to systematically capturing the majority of the variance of the data, dPCA also exposes the dependence of the neural representation on task parameters such as stimuli, decisions, or rewards. -
Dictionary Learning
Find a sparse representation of the data using Dictionary Learning. -
Extract Component Weights
Convert transformation matrix metadata into a data block. -
Factor Analysis
Perform Factor Analysis on the given data (FA). -
Independent Component Analysis (FastICA)
Independent component analysis using the FastICA method. -
Incremental Principal Component Analysis
Reduce dimensionality using Incremental Principal Component Analysis (PCA). -
Kernel Principal Component Analysis
Reduce dimensionality using Kernel Principal Component Analysis (Kernel PCA). -
Non-Negative Matrix Factorization
Decompose non-negative data using non-negative matrix factorization (NNMF). -
Online Dictionary Learning
Find a sparse representation of the data using Online Dictionary Learning. -
Polynomial Kernel
Generate polynomial combinations of features. -
Principal Component Analysis
Reduce dimensionality using Principal Component Analysis (PCA). -
RBF Kernel Approximation
Approximate an RBF kernel mapping on the given data. -
Random Projections
Generate features from random linear projections of the input data. -
Sparse Principal Component Analysis
Reduce dimensionality using Sparse Principal Component Analysis (Sparse PCA). -
Tensor Decomposition
Decompose a tensor into a number of rank-1 tensors. -
Whitening Transform
Whiten (decorrelate and normalize) the given data without rotation.