# ReconstructionICA

Feature extraction by reconstruction ICA

## Description

`ReconstructionICA`

applies reconstruction
independent component analysis (RICA) to learn a transformation that maps input
predictors to new predictors.

## Creation

Create a `ReconstructionICA`

object by using the
`rica`

function.

## Properties

`FitInfo`

— Fitting history

structure

This property is read-only.

Fitting history, returned as a structure with two fields:

`Iteration`

— Iteration numbers from 0 through the final iteration.`Objective`

— Objective function value at each corresponding iteration. Iteration 0 corresponds to the initial values, before any fitting.

**Data Types: **`struct`

`InitialTransformWeights`

— Initial feature transformation weights

`p`

-by-`q`

matrix

This property is read-only.

Initial feature transformation weights, returned as a
`p`

-by-`q`

matrix, where `p`

is the number of predictors passed in `X`

and
`q`

is the number of features that you want. These weights are the
initial weights passed to the creation function. The data type is single when the
training data `X`

is single.

**Data Types: **`single`

| `double`

`ModelParameters`

— Parameters for training model

structure

This property is read-only.

Parameters for training the model, returned as a structure. The structure
contains a subset of the fields that correspond to the `rica`

name-value pairs that were
in effect during model creation:

`IterationLimit`

`VerbosityLevel`

`Lambda`

`Standardize`

`ContrastFcn`

`GradientTolerance`

`StepTolerance`

For details, see the `rica`

`Name,Value`

pairs.

**Data Types: **`struct`

`Mu`

— Predictor means when standardizing

`p`

-by-`1`

vector

This property is read-only.

Predictor means when standardizing, returned as a
`p`

-by-`1`

vector. This property is nonempty when
the `Standardize`

name-value pair is
`true`

at model creation. The value is the vector of predictor
means in the training data. The data type is single when the training data
`X`

is single.

**Data Types: **`single`

| `double`

`NonGaussianityIndicator`

— Non-Gaussianity of sources

length-`q`

vector of ±1

This property is read-only.

Non-Gaussianity of sources, returned as a length-`q`

vector of ±1.

`NonGaussianityIndicator(k) = 1`

means`rica`

models the`k`

th source as sub-Gaussian.`NonGaussianityIndicator(k) = -1`

means`rica`

models the`k`

th source as super-Gaussian, with a sharp peak at 0.

**Data Types: **`double`

`NumLearnedFeatures`

— Number of output features

positive integer

This property is read-only.

Number of output features, returned as a positive integer. This value is
the `q`

argument passed to
the creation function, which is the requested number of features to
learn.

**Data Types: **`double`

`NumPredictors`

— Number of input predictors

positive integer

This property is read-only.

Number of input predictors, returned as a positive integer. This value is
the number of predictors passed in `X`

to the creation
function.

**Data Types: **`double`

`Sigma`

— Predictor standard deviations when standardizing

`p`

-by-`1`

vector

This property is read-only.

Predictor standard deviations when standardizing, returned as a
`p`

-by-`1`

vector. This property is nonempty when
the `Standardize`

name-value pair is
`true`

at model creation. The value is the vector of predictor
standard deviations in the training data. The data type is single when the training data
`X`

is single.

**Data Types: **`single`

| `double`

`TransformWeights`

— Feature transformation weights

`p`

-by-`q`

matrix

This property is read-only.

Feature transformation weights, returned as a
`p`

-by-`q`

matrix, where `p`

is the number of predictors passed in `X`

and
`q`

is the number of features that you want. The data type is
single when the training data `X`

is single.

**Data Types: **`single`

| `double`

## Object Functions

`transform` | Transform predictors into extracted features |

## Examples

### Create Reconstruction ICA Object

Create a `ReconstructionICA`

object by using the `rica`

function.

Load the `SampleImagePatches`

image patches.

```
data = load('SampleImagePatches');
size(data.X)
```

`ans = `*1×2*
5000 363

There are 5,000 image patches, each containing 363 features.

Extract 100 features from the data.

rng default % For reproducibility q = 100; Mdl = rica(data.X,q,'IterationLimit',100)

Warning: Solver LBFGS was not able to converge to a solution.

Mdl = ReconstructionICA ModelParameters: [1x1 struct] NumPredictors: 363 NumLearnedFeatures: 100 Mu: [] Sigma: [] FitInfo: [1x1 struct] TransformWeights: [363x100 double] InitialTransformWeights: [] NonGaussianityIndicator: [100x1 double]

`rica`

issues a warning because it stopped due to reaching the iteration limit, instead of reaching a step-size limit or a gradient-size limit. You can still use the learned features in the returned object by calling the `transform`

function.

## Version History

**Introduced in R2017a**

## Comando de MATLAB

Ha hecho clic en un enlace que corresponde a este comando de MATLAB:

Ejecute el comando introduciéndolo en la ventana de comandos de MATLAB. Los navegadores web no admiten comandos de MATLAB.

Select a Web Site

Choose a web site to get translated content where available and see local events and offers. Based on your location, we recommend that you select: .

You can also select a web site from the following list:

## How to Get Best Site Performance

Select the China site (in Chinese or English) for best site performance. Other MathWorks country sites are not optimized for visits from your location.

### Americas

- América Latina (Español)
- Canada (English)
- United States (English)

### Europe

- Belgium (English)
- Denmark (English)
- Deutschland (Deutsch)
- España (Español)
- Finland (English)
- France (Français)
- Ireland (English)
- Italia (Italiano)
- Luxembourg (English)

- Netherlands (English)
- Norway (English)
- Österreich (Deutsch)
- Portugal (English)
- Sweden (English)
- Switzerland
- United Kingdom (English)