Skip to content

Latest commit

 

History

History
46 lines (32 loc) · 1.39 KB

ica.md

File metadata and controls

46 lines (32 loc) · 1.39 KB

Independent Component Analysis

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.

FastICA

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

References

Footnotes

  1. Aapo Hyvarinen and Erkki Oja, Independent Component Analysis: Algorithms and Applications. Neural Network 13(4-5), 2000.