|
|
# RADICAL
|
|
|
|
|
|
An implementation of RADICAL, a method for independent component analysis (ICA). Given a dataset, this can decompose the dataset into an unmixing matrix and an independent component matrix. This can be useful for preprocessing.
|
|
|
|
|
|
# Available Predicates
|
|
|
|
|
|
* [initModel/5](/PrologMethods/Transformation/radical#initmodel5)
|
|
|
* [doRadical/9](/PrologMethods/Transformation/radical#doradical9)
|
|
|
* [doRadical2D/4](/PrologMethods/Transformation/radical#doradical2d4)
|
|
|
|
|
|
---
|
|
|
|
|
|
[links/resources](/PrologMethods/Transformation/radical#connected-linksresources)
|
|
|
|
|
|
## **_initModel/5_**
|
|
|
|
|
|
Initilizes the radical model.
|
|
|
|
|
|
```prolog
|
|
|
%% part of the predicate definition
|
|
|
initModel(+float32, +integer, +integer, +integer, +integer).
|
|
|
```
|
|
|
|
|
|
### Parameters
|
|
|
| Name | Type | Description | Default |
|
|
|
|------|------|-------------|---------|
|
|
|
| noiseStdDev | +float | Standard deviation of the Gaussian noise added to the replicates of the data points during Radical2D. | 0.175 |
|
|
|
| replicates | +integer | Number of Gaussian-perturbed replicates to use (per point) in Radical2D. | 30 |
|
|
|
| angles | +integer | Number of angles to consider in brute-force search during Radical2D. | 150 |
|
|
|
| sweeps | +integer | Number of sweeps. Each sweep calls Radical2D once for each pair of dimensions. | 0 |
|
|
|
| m | +integer | The variable m from Vasicek's m-spacing estimator of entropy. | 0 |
|
|
|
|
|
|
---
|
|
|
|
|
|
## **_doRadical/9_**
|
|
|
|
|
|
Run RADICAL.
|
|
|
|
|
|
```prolog
|
|
|
%% part of the predicate definition
|
|
|
doRadical( +pointer(float_array), +integer, +integer,
|
|
|
-pointer(float_array), -integer, -integer,
|
|
|
-pointer(float_array), -integer, -integer).
|
|
|
```
|
|
|
|
|
|
### Parameters
|
|
|
| Name | Type | Description | Default |
|
|
|
|------|------|-------------|---------|
|
|
|
| X | +matrix | Input data into the algorithm - a matrix where each column is a point and each row is a dimension. | - |
|
|
|
| Y | -matrix | Estimated independent components - a matrix where each column is a point and each row is an estimated independent component. | - |
|
|
|
| W | -matrix | Estimated unmixing matrix, where Y = W \* X. | - |
|
|
|
|
|
|
---
|
|
|
|
|
|
## **_doRadical2D/4_**
|
|
|
|
|
|
Two-dimensional version of RADICAL.
|
|
|
|
|
|
```prolog
|
|
|
%% part of the predicate definition
|
|
|
doRadical2D( +pointer(float_array), +integer, +integer,
|
|
|
[-float32]).
|
|
|
```
|
|
|
|
|
|
### Parameters
|
|
|
| Name | Type | Description | Default |
|
|
|
|------|------|-------------|---------|
|
|
|
| X | +matrix | Input data into the algorithm - a matrix where each column is a point and each row is a dimension. | - |
|
|
|
| result | -float | - | - |
|
|
|
|
|
|
---
|
|
|
|
|
|
# Connected Links/Resources
|
|
|
|
|
|
If you want a more detailed explanation, then go to the python documentation. There is most of the time a good explanation on how the methods work and what the parameters do.
|
|
|
|
|
|
* [**MLpack::radical_C++\_documentation**](https://www.mlpack.org/doc/stable/doxygen/classmlpack_1_1radical_1_1Radical.html)
|
|
|
* [**MLpack::radical_Python_documentation**](https://www.mlpack.org/doc/stable/python_documentation.html#radical)
|
|
|
|
|
|
added some of the links from the python documentation
|
|
|
|
|
|
* [**Independent component analysis on Wikipedia**](https://en.wikipedia.org/wiki/Independent_component_analysis)
|
|
|
* [**ICA using spacings estimates of entropy (pdf)**](http://www.jmlr.org/papers/volume4/learned-miller03a/learned-miller03a.pdf) |
|
|
\ No newline at end of file |