Environment for
DeveLoping
KDD-Applications
Supported by Index-Structures

de.lmu.ifi.dbs.elki.distance.similarityfunction
Class FractionalSharedNearestNeighborSimilarityFunction<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.distance.AbstractMeasurementFunction<O,D>
          extended by de.lmu.ifi.dbs.elki.distance.similarityfunction.AbstractSimilarityFunction<O,D>
              extended by de.lmu.ifi.dbs.elki.distance.similarityfunction.AbstractPreprocessorBasedSimilarityFunction<O,SharedNearestNeighborsPreprocessor<O,D>,DoubleDistance>
                  extended by de.lmu.ifi.dbs.elki.distance.similarityfunction.FractionalSharedNearestNeighborSimilarityFunction<O,D>
Type Parameters:
O - object type
D - distance type
All Implemented Interfaces:
MeasurementFunction<O,DoubleDistance>, PreprocessorBasedMeasurementFunction<O,SharedNearestNeighborsPreprocessor<O,D>,DoubleDistance>, NormalizedSimilarityFunction<O,DoubleDistance>, SimilarityFunction<O,DoubleDistance>, PreprocessorClient<SharedNearestNeighborsPreprocessor<O,D>,O>, Parameterizable

public class FractionalSharedNearestNeighborSimilarityFunction<O extends DatabaseObject,D extends Distance<D>>
extends AbstractPreprocessorBasedSimilarityFunction<O,SharedNearestNeighborsPreprocessor<O,D>,DoubleDistance>
implements NormalizedSimilarityFunction<O,DoubleDistance>

SharedNearestNeighborSimilarityFunction with a pattern defined to accept Strings that define a non-negative Integer.

Author:
Arthur Zimek

Field Summary
private  ArrayList<Pair<O,SortedSet<Integer>>> cache
          Cache for objects not handled by the preprocessor
private  int cachesize
           
private  int numberOfNeighbors
          Holds the number of nearest neighbors to be used.
 
Fields inherited from class de.lmu.ifi.dbs.elki.distance.AbstractMeasurementFunction
distanceFactory
 
Fields inherited from class de.lmu.ifi.dbs.elki.logging.AbstractLoggable
debug, logger
 
Constructor Summary
FractionalSharedNearestNeighborSimilarityFunction(Parameterization config)
          Constructor, adhering to Parameterizable
 
Method Summary
 AssociationID<SortedSet<Integer>> getAssociationID()
          Returns the association ID for the association to be set by the preprocessor.
 Class<?> getDefaultPreprocessorClass()
          Returns the name of the default preprocessor.
private  SortedSet<Integer> getNeighbors(O obj)
          Wrapper to handle objects not preprocessed with a cache for performance.
 String getPreprocessorDescription()
          Returns the description for the preprocessor parameter.
 Class<SharedNearestNeighborsPreprocessor<O,D>> getPreprocessorSuperClass()
          Returns the super class for the preprocessor parameter.
 DoubleDistance similarity(Integer id1, Integer id2)
          Returns the similarity between the two objects specified by their object ids.
 DoubleDistance similarity(O o1, O o2)
          Computes the similarity between two given DatabaseObjects according to this similarity function.
 
Methods inherited from class de.lmu.ifi.dbs.elki.distance.similarityfunction.AbstractPreprocessorBasedSimilarityFunction
getPreprocessor, setDatabase
 
Methods inherited from class de.lmu.ifi.dbs.elki.distance.similarityfunction.AbstractSimilarityFunction
similarity
 
Methods inherited from class de.lmu.ifi.dbs.elki.distance.AbstractMeasurementFunction
getDatabase, getDistanceFactory, infiniteDistance, nullDistance, undefinedDistance, valueOf
 
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.distance.similarityfunction.SimilarityFunction
similarity
 
Methods inherited from interface de.lmu.ifi.dbs.elki.distance.MeasurementFunction
getDistanceFactory, infiniteDistance, nullDistance, setDatabase, undefinedDistance, valueOf
 

Field Detail

cachesize

private int cachesize

cache

private ArrayList<Pair<O extends DatabaseObject,SortedSet<Integer>>> cache
Cache for objects not handled by the preprocessor


numberOfNeighbors

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

Constructor Detail

FractionalSharedNearestNeighborSimilarityFunction

public FractionalSharedNearestNeighborSimilarityFunction(Parameterization config)
Constructor, adhering to Parameterizable

Parameters:
config - Parameterization
Method Detail

similarity

public DoubleDistance similarity(Integer id1,
                                 Integer id2)
Description copied from interface: SimilarityFunction
Returns the similarity between the two objects specified by their object ids.

Specified by:
similarity in interface SimilarityFunction<O extends DatabaseObject,DoubleDistance>
Parameters:
id1 - first object id
id2 - second object id
Returns:
the similarity between the two objects specified by their object ids

getNeighbors

private SortedSet<Integer> getNeighbors(O obj)
Wrapper to handle objects not preprocessed with a cache for performance.

Parameters:
obj - query object
Returns:
neighbors

similarity

public DoubleDistance similarity(O o1,
                                 O o2)
Description copied from interface: SimilarityFunction
Computes the similarity between two given DatabaseObjects according to this similarity function.

Specified by:
similarity in interface SimilarityFunction<O extends DatabaseObject,DoubleDistance>
Overrides:
similarity in class AbstractSimilarityFunction<O extends DatabaseObject,DoubleDistance>
Parameters:
o1 - first DatabaseObject
o2 - second DatabaseObject
Returns:
the similarity between two given DatabaseObjects according to this similarity function

getAssociationID

public AssociationID<SortedSet<Integer>> getAssociationID()
Description copied from interface: PreprocessorClient
Returns the association ID for the association to be set by the preprocessor.

Specified by:
getAssociationID in interface PreprocessorClient<SharedNearestNeighborsPreprocessor<O extends DatabaseObject,D extends Distance<D>>,O extends DatabaseObject>
Returns:
the association ID for the association to be set by the preprocessor, which is AssociationID.SHARED_NEAREST_NEIGHBORS_SET

getDefaultPreprocessorClass

public Class<?> getDefaultPreprocessorClass()
Description copied from interface: PreprocessorClient
Returns the name of the default preprocessor.

Specified by:
getDefaultPreprocessorClass in interface PreprocessorClient<SharedNearestNeighborsPreprocessor<O extends DatabaseObject,D extends Distance<D>>,O extends DatabaseObject>
Returns:
the name of the default preprocessor, which is SharedNearestNeighborsPreprocessor

getPreprocessorDescription

public String getPreprocessorDescription()
Description copied from interface: PreprocessorClient
Returns the description for the preprocessor parameter.

Specified by:
getPreprocessorDescription in interface PreprocessorClient<SharedNearestNeighborsPreprocessor<O extends DatabaseObject,D extends Distance<D>>,O extends DatabaseObject>
Returns:
the description for the preprocessor parameter

getPreprocessorSuperClass

public Class<SharedNearestNeighborsPreprocessor<O,D>> getPreprocessorSuperClass()
Description copied from interface: PreprocessorClient
Returns the super class for the preprocessor parameter.

Specified by:
getPreprocessorSuperClass in interface PreprocessorClient<SharedNearestNeighborsPreprocessor<O extends DatabaseObject,D extends Distance<D>>,O extends DatabaseObject>
Returns:
the super class for the preprocessor, which is SharedNearestNeighborsPreprocessor

Release 0.3 (2010-03-31_1612)