Environment for
DeveLoping
KDD-Applications
Supported by Index-Structures

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

java.lang.Object
  extended by de.lmu.ifi.dbs.elki.logging.AbstractLoggable
      extended by de.lmu.ifi.dbs.elki.utilities.optionhandling.AbstractParameterizable
          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
All Implemented Interfaces:
Parameterizable

public class PCAFilteredRunner<V extends RealVector<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  ClassParameter<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.utilities.optionhandling.AbstractParameterizable
optionHandler
 
Fields inherited from class de.lmu.ifi.dbs.elki.logging.AbstractLoggable
debug, logger
 
Constructor Summary
PCAFilteredRunner()
          Initialize class with parameters
 
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
 List<String> setParameters(List<String> args)
          Set Parameters.
 
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.utilities.optionhandling.AbstractParameterizable
addOption, addParameterizable, addParameterizable, checkGlobalParameterConstraints, collectOptions, getAttributeSettings, getParameters, rememberParametersExcept, removeOption, removeParameterizable, shortDescription
 
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 ClassParameter<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: -localpca.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: -localpca.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()
Initialize class with parameters

Method Detail

setParameters

public List<String> setParameters(List<String> args)
                           throws ParameterException
Set Parameters.

Specified by:
setParameters in interface Parameterizable
Overrides:
setParameters in class PCARunner<V extends RealVector<V,?>,D extends NumberDistance<D,?>>
Parameters:
args - parameters to set the attributes accordingly to
Returns:
a list containing the unused parameters
Throws:
ParameterException - in case of wrong parameter-setting

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 RealVector<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 RealVector<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 RealVector<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 RealVector<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.2 (2009-07-06_1820)