Environment for
DeveLoping
KDD-Applications
Supported by Index-Structures

de.lmu.ifi.dbs.elki.preprocessing
Class SharedNearestNeighborsPreprocessor<O extends DatabaseObject,D extends Distance<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.preprocessing.SharedNearestNeighborsPreprocessor<O,D>
Type Parameters:
O - the type of database objects the preprocessor can be applied to
D - the type of distance the used distance function will return
All Implemented Interfaces:
Preprocessor<O>, Parameterizable

public class SharedNearestNeighborsPreprocessor<O extends DatabaseObject,D extends Distance<D>>
extends AbstractParameterizable
implements Preprocessor<O>

A preprocessor for annotation of the ids of nearest neighbors to each database object.

The k nearest neighbors are assigned based on an arbitrary distance function.

The association is annotated using the association id AssociationID.SHARED_NEAREST_NEIGHBORS_SET.

Author:
Arthur Zimek

Field Summary
static OptionID DISTANCE_FUNCTION_ID
          OptionID for DISTANCE_FUNCTION_PARAM
 ClassParameter<DistanceFunction<O,D>> DISTANCE_FUNCTION_PARAM
          Parameter to indicate the distance function to be used to ascertain the nearest neighbors.
private  DistanceFunction<O,D> distanceFunction
          Hold the distance function to be used.
static OptionID NUMBER_OF_NEIGHBORS_ID
          OptionID for NUMBER_OF_NEIGHBORS_PARAM
private static IntParameter NUMBER_OF_NEIGHBORS_PARAM
          Parameter to indicate the number of neighbors to be taken into account for the shared-nearest-neighbor similarity.
private  int numberOfNeighbors
          Holds the number of nearest neighbors to be used.
 
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
SharedNearestNeighborsPreprocessor()
          Provides a SharedNearestNeighborPreprocessor.
 
Method Summary
 AssociationID<SortedSet<Integer>> getAssociationID()
          Provides the association id used for annotation of the nearest neighbors.
 DistanceFunction<O,D> getDistanceFunction()
          Returns the distance function used by the preprocessor.
 int getNumberOfNeighbors()
          Returns the number of nearest neighbors considered
 void run(Database<O> database, boolean verbose, boolean time)
          Annotates the nearest neighbors based on the values of numberOfNeighbors and distanceFunction to each database object.
 List<String> setParameters(List<String> args)
          Sets the parameter values of NUMBER_OF_NEIGHBORS_PARAM and DISTANCE_FUNCTION_PARAM to numberOfNeighbors and distanceFunction, respectively.
 String shortDescription()
          Provides a short description of the purpose of this class.
 
Methods inherited from class de.lmu.ifi.dbs.elki.utilities.optionhandling.AbstractParameterizable
addOption, addParameterizable, addParameterizable, checkGlobalParameterConstraints, collectOptions, getAttributeSettings, getParameters, rememberParametersExcept, removeOption, removeParameterizable
 
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
 
Methods inherited from interface de.lmu.ifi.dbs.elki.utilities.optionhandling.Parameterizable
checkGlobalParameterConstraints, collectOptions, getParameters
 

Field Detail

NUMBER_OF_NEIGHBORS_ID

public static final OptionID NUMBER_OF_NEIGHBORS_ID
OptionID for NUMBER_OF_NEIGHBORS_PARAM


NUMBER_OF_NEIGHBORS_PARAM

private static final IntParameter NUMBER_OF_NEIGHBORS_PARAM
Parameter to indicate the number of neighbors to be taken into account for the shared-nearest-neighbor similarity.

Default value: 1

Key: sharedNearestNeighbors


DISTANCE_FUNCTION_ID

public static final OptionID DISTANCE_FUNCTION_ID
OptionID for DISTANCE_FUNCTION_PARAM


DISTANCE_FUNCTION_PARAM

public final ClassParameter<DistanceFunction<O extends DatabaseObject,D extends Distance<D>>> DISTANCE_FUNCTION_PARAM
Parameter to indicate the distance function to be used to ascertain the nearest neighbors.

Default value: EuclideanDistanceFunction

Key: SNNDistanceFunction


numberOfNeighbors

private int numberOfNeighbors
Holds the number of nearest neighbors to be used.


distanceFunction

private DistanceFunction<O extends DatabaseObject,D extends Distance<D>> distanceFunction
Hold the distance function to be used.

Constructor Detail

SharedNearestNeighborsPreprocessor

public SharedNearestNeighborsPreprocessor()
Provides a SharedNearestNeighborPreprocessor.

Method Detail

run

public void run(Database<O> database,
                boolean verbose,
                boolean time)
Annotates the nearest neighbors based on the values of numberOfNeighbors and distanceFunction to each database object.

Specified by:
run in interface Preprocessor<O extends DatabaseObject>
Parameters:
database - the database for which the preprocessing is performed
verbose - flag to allow verbose messages while performing the algorithm
time - flag to request output of performance time

setParameters

public List<String> setParameters(List<String> args)
                           throws ParameterException
Sets the parameter values of NUMBER_OF_NEIGHBORS_PARAM and DISTANCE_FUNCTION_PARAM to numberOfNeighbors and distanceFunction, respectively.

Specified by:
setParameters in interface Parameterizable
Overrides:
setParameters in class AbstractParameterizable
Parameters:
args - parameters to set the attributes accordingly to
Returns:
a list containing the unused parameters
Throws:
ParameterException - in case of wrong parameter-setting

getAssociationID

public AssociationID<SortedSet<Integer>> getAssociationID()
Provides the association id used for annotation of the nearest neighbors.

Returns:
the association id used for annotation of the nearest neighbors (AssociationID.SHARED_NEAREST_NEIGHBORS_SET)

shortDescription

public String shortDescription()
Provides a short description of the purpose of this class.

Specified by:
shortDescription in interface Parameterizable
Overrides:
shortDescription in class AbstractParameterizable
Returns:
Description of the class

getNumberOfNeighbors

public int getNumberOfNeighbors()
Returns the number of nearest neighbors considered

Returns:
number of neighbors considered

getDistanceFunction

public DistanceFunction<O,D> getDistanceFunction()
Returns the distance function used by the preprocessor.

Returns:
distance function used.

Release 0.2 (2009-07-06_1820)