Environment for
DeveLoping
KDD-Applications
Supported by Index-Structures

de.lmu.ifi.dbs.elki.math.linearalgebra.pca
Class PCAFilteredRunner<V extends NumberVector<V,?>,D extends NumberDistance<D,?>>

java.lang.Object
  extended by de.lmu.ifi.dbs.elki.logging.AbstractLoggable
      extended by de.lmu.ifi.dbs.elki.math.linearalgebra.pca.PCARunner<V,D>
          extended by de.lmu.ifi.dbs.elki.math.linearalgebra.pca.PCAFilteredRunner<V,D>
Type Parameters:
V - Vector class to use
D - Distance type
All Implemented Interfaces:
Parameterizable

public class PCAFilteredRunner<V extends NumberVector<V,?>,D extends NumberDistance<D,?>>
extends PCARunner<V,D>

PCA runner that will do dimensionality reduction. PCA is computed as with the regular runner, but afterwards, an EigenPairFilter is applied.

Author:
Erich Schubert

Field Summary
private  double big
          Holds the value of BIG_PARAM.
static OptionID BIG_ID
          OptionID for BIG_PARAM
private  DoubleParameter BIG_PARAM
          Parameter to specify a constant big value to reset high eigenvalues, must be a double greater than 0.
private  ObjectParameter<EigenPairFilter> EIGENPAIR_FILTER_PARAM
          Parameter to specify the filter for determination of the strong and weak eigenvectors, must be a subclass of EigenPairFilter.
private  EigenPairFilter eigenPairFilter
          Holds the instance of the EigenPairFilter specified by EIGENPAIR_FILTER_PARAM.
static OptionID PCA_EIGENPAIR_FILTER
          OptionID for EIGENPAIR_FILTER_PARAM
private  double small
          Holds the value of SMALL_PARAM.
static OptionID SMALL_ID
          OptionID for SMALL_PARAM
private  DoubleParameter SMALL_PARAM
          Parameter to specify a constant small value to reset low eigenvalues, must be a double greater than 0.
 
Fields inherited from class de.lmu.ifi.dbs.elki.math.linearalgebra.pca.PCARunner
covarianceMatrixBuilder, PCA_COVARIANCE_MATRIX
 
Fields inherited from class de.lmu.ifi.dbs.elki.logging.AbstractLoggable
debug, logger
 
Constructor Summary
PCAFilteredRunner(Parameterization config)
          Constructor, adhering to Parameterizable
 
Method Summary
protected  EigenPairFilter getEigenPairFilter()
          Retrieve the EigenPairFilter to be used.
 PCAFilteredResult processCovarMatrix(Matrix covarMatrix)
          Process an existing Covariance Matrix
 PCAFilteredResult processEVD(EigenvalueDecomposition evd)
          Process an existing eigenvalue decomposition
 PCAFilteredResult processIds(Collection<Integer> ids, Database<V> database)
          Run PCA on a collection of database IDs
 PCAFilteredResult processQueryResult(Collection<DistanceResultPair<D>> results, Database<V> database)
          Run PCA on a QueryResult Collection
 
Methods inherited from class de.lmu.ifi.dbs.elki.math.linearalgebra.pca.PCARunner
getCovarianceMatrixBuilder, processDatabase, setCovarianceMatrixBuilder
 
Methods inherited from class de.lmu.ifi.dbs.elki.logging.AbstractLoggable
debugFine, debugFiner, debugFinest, exception, progress, verbose, warning
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

PCA_EIGENPAIR_FILTER

public static final OptionID PCA_EIGENPAIR_FILTER
OptionID for EIGENPAIR_FILTER_PARAM


EIGENPAIR_FILTER_PARAM

private ObjectParameter<EigenPairFilter> EIGENPAIR_FILTER_PARAM
Parameter to specify the filter for determination of the strong and weak eigenvectors, must be a subclass of EigenPairFilter.

Default value: PercentageEigenPairFilter

Key: -pca.filter


eigenPairFilter

private EigenPairFilter eigenPairFilter
Holds the instance of the EigenPairFilter specified by EIGENPAIR_FILTER_PARAM.


BIG_ID

public static final OptionID BIG_ID
OptionID for BIG_PARAM


SMALL_ID

public static final OptionID SMALL_ID
OptionID for SMALL_PARAM


BIG_PARAM

private final DoubleParameter BIG_PARAM
Parameter to specify a constant big value to reset high eigenvalues, must be a double greater than 0.

Default value: 1.0

Key: -pca.big


SMALL_PARAM

private final DoubleParameter SMALL_PARAM
Parameter to specify a constant small value to reset low eigenvalues, must be a double greater than 0.

Default value: 0.0

Key: -pca.small


big

private double big
Holds the value of BIG_PARAM.


small

private double small
Holds the value of SMALL_PARAM.

Constructor Detail

PCAFilteredRunner

public PCAFilteredRunner(Parameterization config)
Constructor, adhering to Parameterizable

Parameters:
config - Parameterization
Method Detail

processIds

public PCAFilteredResult processIds(Collection<Integer> ids,
                                    Database<V> database)
Run PCA on a collection of database IDs

Overrides:
processIds in class PCARunner<V extends NumberVector<V,?>,D extends NumberDistance<D,?>>
Parameters:
ids - a collection of ids
database - the database used
Returns:
PCA result

processQueryResult

public PCAFilteredResult processQueryResult(Collection<DistanceResultPair<D>> results,
                                            Database<V> database)
Run PCA on a QueryResult Collection

Overrides:
processQueryResult in class PCARunner<V extends NumberVector<V,?>,D extends NumberDistance<D,?>>
Parameters:
results - a collection of QueryResults
database - the database used
Returns:
PCA result

processCovarMatrix

public PCAFilteredResult processCovarMatrix(Matrix covarMatrix)
Process an existing Covariance Matrix

Overrides:
processCovarMatrix in class PCARunner<V extends NumberVector<V,?>,D extends NumberDistance<D,?>>
Parameters:
covarMatrix - the matrix used for performing PCA
Returns:
PCA result

processEVD

public PCAFilteredResult processEVD(EigenvalueDecomposition evd)
Process an existing eigenvalue decomposition

Overrides:
processEVD in class PCARunner<V extends NumberVector<V,?>,D extends NumberDistance<D,?>>
Parameters:
evd - eigenvalue decomposition to use
Returns:
PCA result

getEigenPairFilter

protected EigenPairFilter getEigenPairFilter()
Retrieve the EigenPairFilter to be used. For derived PCA Runners

Returns:
eigenpair filter configured.

Release 0.3 (2010-03-31_1612)