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

expand all

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

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

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

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

This property is read-only.

Non-Gaussianity of sources, returned as a length-q vector of ±1.

  • NonGaussianityIndicator(k) = 1 means rica models the kth source as sub-Gaussian.

  • NonGaussianityIndicator(k) = -1 means rica models the kth source as super-Gaussian, with a sharp peak at 0.

Data Types: double

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

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

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

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

transformTransform predictors into extracted features

Examples

collapse all

Create a ReconstructionICA object by using the rica function.

Load the caltech101 image patches.

data = load('caltech101patches');
size(data.X)
ans = 1×2

      100000         363

There are 100,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]


  Properties, Methods

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.

Introduced in R2017a