de.lmu.ifi.dbs.elki.datasource.filter
Class AttributeWiseVarianceNormalization<V extends NumberVector<V,?>>

java.lang.Object
  extended by de.lmu.ifi.dbs.elki.datasource.filter.AbstractConversionFilter<O,O>
      extended by de.lmu.ifi.dbs.elki.datasource.filter.AbstractNormalization<V>
          extended by de.lmu.ifi.dbs.elki.datasource.filter.AttributeWiseVarianceNormalization<V>
Type Parameters:
V - vector type
All Implemented Interfaces:
Normalization<V>, ObjectFilter, InspectionUtilFrequentlyScanned, Parameterizable

public class AttributeWiseVarianceNormalization<V extends NumberVector<V,?>>
extends AbstractNormalization<V>

Class to perform and undo a normalization on real vectors with respect to given mean and standard deviation in each dimension.


Nested Class Summary
static class AttributeWiseVarianceNormalization.Parameterizer<V extends NumberVector<V,?>>
          Parameterization class.
 
Field Summary
static Logging logger
          Class logger.
private  double[] mean
          Stores the mean in each dimension.
static OptionID MEAN_ID
          Parameter for means.
(package private)  MeanVariance[] mvs
          Temporary storage used during initialization.
private  double[] stddev
          Stores the standard deviation in each dimension.
static OptionID STDDEV_ID
          Parameter for stddevs.
 
Constructor Summary
AttributeWiseVarianceNormalization(double[] mean, double[] stddev)
          Constructor.
 
Method Summary
protected  V filterSingleObject(V featureVector)
          Normalize a single instance.
protected  SimpleTypeInformation<? super V> getInputTypeRestriction()
          Get the input type restriction used for negotiating the data query.
private  double normalize(int d, double val)
           
protected  void prepareComplete()
          Complete the initialization phase
protected  void prepareProcessInstance(V featureVector)
          Process a single object during initialization.
protected  boolean prepareStart(SimpleTypeInformation<V> in)
          Return "true" when the normalization needs initialization (two-pass filtering!)
private  double restore(int d, double val)
           
 V restore(V featureVector)
          Transforms a feature vector to the original attribute ranges.
 String toString()
           
 LinearEquationSystem transform(LinearEquationSystem linearEquationSystem)
          Transforms a linear equation system describing linear dependencies derived on the normalized space into a linear equation system describing linear dependencies quantitatively adapted to the original space.
 
Methods inherited from class de.lmu.ifi.dbs.elki.datasource.filter.AbstractNormalization
convertedType, normalizeObjects
 
Methods inherited from class de.lmu.ifi.dbs.elki.datasource.filter.AbstractConversionFilter
filter
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
 
Methods inherited from interface de.lmu.ifi.dbs.elki.datasource.filter.ObjectFilter
filter
 

Field Detail

logger

public static final Logging logger
Class logger.


MEAN_ID

public static final OptionID MEAN_ID
Parameter for means.


STDDEV_ID

public static final OptionID STDDEV_ID
Parameter for stddevs.


mean

private double[] mean
Stores the mean in each dimension.


stddev

private double[] stddev
Stores the standard deviation in each dimension.


mvs

MeanVariance[] mvs
Temporary storage used during initialization.

Constructor Detail

AttributeWiseVarianceNormalization

public AttributeWiseVarianceNormalization(double[] mean,
                                          double[] stddev)
Constructor.

Parameters:
mean - Mean value
stddev - Standard deviation
Method Detail

prepareStart

protected boolean prepareStart(SimpleTypeInformation<V> in)
Description copied from class: AbstractConversionFilter
Return "true" when the normalization needs initialization (two-pass filtering!)

Overrides:
prepareStart in class AbstractConversionFilter<V extends NumberVector<V,?>,V extends NumberVector<V,?>>
Parameters:
in - Input type information
Returns:
true or false

prepareProcessInstance

protected void prepareProcessInstance(V featureVector)
Description copied from class: AbstractConversionFilter
Process a single object during initialization.

Overrides:
prepareProcessInstance in class AbstractConversionFilter<V extends NumberVector<V,?>,V extends NumberVector<V,?>>
Parameters:
featureVector - Object to process

prepareComplete

protected void prepareComplete()
Description copied from class: AbstractConversionFilter
Complete the initialization phase

Overrides:
prepareComplete in class AbstractConversionFilter<V extends NumberVector<V,?>,V extends NumberVector<V,?>>

filterSingleObject

protected V filterSingleObject(V featureVector)
Description copied from class: AbstractConversionFilter
Normalize a single instance. You can implement this as UnsupportedOperationException if you override both public "normalize" functions!

Specified by:
filterSingleObject in class AbstractConversionFilter<V extends NumberVector<V,?>,V extends NumberVector<V,?>>
Parameters:
featureVector - Database object to normalize
Returns:
Normalized database object

restore

public V restore(V featureVector)
                                    throws NonNumericFeaturesException
Description copied from interface: Normalization
Transforms a feature vector to the original attribute ranges.

Parameters:
featureVector - a feature vector to be transformed into original space
Returns:
a feature vector transformed into original space corresponding to the given feature vector
Throws:
NonNumericFeaturesException - feature vector is not compatible with values initialized during normalization

normalize

private double normalize(int d,
                         double val)

restore

private double restore(int d,
                       double val)

transform

public LinearEquationSystem transform(LinearEquationSystem linearEquationSystem)
Description copied from interface: Normalization
Transforms a linear equation system describing linear dependencies derived on the normalized space into a linear equation system describing linear dependencies quantitatively adapted to the original space.

Specified by:
transform in interface Normalization<V extends NumberVector<V,?>>
Overrides:
transform in class AbstractNormalization<V extends NumberVector<V,?>>
Parameters:
linearEquationSystem - the linear equation system to be transformed
Returns:
a linear equation system describing linear dependencies derived on the normalized space transformed into a linear equation system describing linear dependencies quantitatively adapted to the original space

getInputTypeRestriction

protected SimpleTypeInformation<? super V> getInputTypeRestriction()
Description copied from class: AbstractConversionFilter
Get the input type restriction used for negotiating the data query.

Specified by:
getInputTypeRestriction in class AbstractConversionFilter<V extends NumberVector<V,?>,V extends NumberVector<V,?>>
Returns:
Type restriction

toString

public String toString()
Overrides:
toString in class AbstractNormalization<V extends NumberVector<V,?>>

Release 0.4.0 (2011-09-20_1324)