Independent Component Analysis (ICA) is a computational technique for separating a multivariate signal into additive subcomponents, with the assumption that the subcomponents are non-Gaussian and independent from each other.
There are multiple algorithms for ICA. Currently, this package implements the Fast ICA algorithm.
This package implements the FastICA algorithm1. The package uses the ICA
type to define a FastICA model:
ICA
Several methods are provided to work with ICA
. Let M
be an instance of ICA
:
fit(::Type{ICA}, ::AbstractMatrix{T}, ::Int) where {T<:Real}
size(::ICA)
mean(::ICA)
predict(::ICA, ::AbstractVecOrMat{<:Real})
The package also exports functions of the core algorithms. Sometimes, it can be more
efficient to directly invoke them instead of going through the fit
interface.
fastica!
The FastICA method requires a first derivative of a functor g
to approximate negative entropy.
The package implements an following interface for defining derivative value estimation:
MultivariateStats.ICAGDeriv
MultivariateStats.Tanh
MultivariateStats.Gaus
Footnotes
-
Aapo Hyvarinen and Erkki Oja, Independent Component Analysis: Algorithms and Applications. Neural Network 13(4-5), 2000. ↩