public class ICA
extends java.lang.Object
implements java.io.Serializable
Like most ICA algorithms, FastICA seeks an orthogonal rotation of prewhitened data, through a fixed-point iteration scheme, that maximizes a measure of non-Gaussianity of the rotated components. Non-gaussianity serves as a proxy for statistical independence, which is a very strong condition and requires infinite data to verify. To measure non-Gaussianity, FastICA relies on a non-quadratic nonlinear function f(u), its first derivative g(u), and its second derivative g2(u).
A simple application of ICA is the cocktail party problem, where the underlying speech signals are separated from a sample data consisting of people talking simultaneously in a room. Usually the problem is simplified by assuming no time delays or echoes. An important note to consider is that if N sources are present, at least N observations (e.g. microphones if the observed signal is audio) are needed to recover the original signals.
Modifier and Type | Field and Description |
---|---|
double[][] |
components
The independent components (row-wise).
|
Constructor and Description |
---|
ICA(double[][] components)
Constructor.
|
Modifier and Type | Method and Description |
---|---|
static ICA |
fit(double[][] data,
int p)
Fits independent component analysis.
|
static ICA |
fit(double[][] data,
int p,
smile.math.DifferentiableFunction contrast,
double tol,
int maxIter)
Fits independent component analysis.
|
static ICA |
fit(double[][] data,
int p,
java.util.Properties prop)
Fits independent component analysis.
|
public ICA(double[][] components)
components
- each row is an independent component.public static ICA fit(double[][] data, int p)
data
- training data. The number of columns corresponding with the
number of samples of mixed signals and the number of rows
corresponding with the number of independent source signals.p
- the number of independent components.public static ICA fit(double[][] data, int p, java.util.Properties prop)
data
- training data. The number of columns corresponding with the
number of samples of mixed signals and the number of rows
corresponding with the number of independent source signals.p
- the number of independent components.public static ICA fit(double[][] data, int p, smile.math.DifferentiableFunction contrast, double tol, int maxIter)
data
- training data.p
- the number of independent components.contrast
- the contrast function is a(statistical) functions which
is capable of separating or extracting independent
sources from a linear mixture. It must be a non-quadratic
non-linear function that has second-order derivative.tol
- the tolerance of convergence test.maxIter
- the maximum number of iterations.